0

I have Symfony 3.4 + Doctrine 2 + FreeTDS + MSSQL Server 2005

I try to get decimal column from DB, and have little trouble.

If in db i have value like 100.00 i have in return 100. But i wish to get 100.00.

New information, i try run query with go... and same problem. I use

import (
    "database/sql"
    "fmt"
    _ "github.com/minus5/gofreetds"
)

type Data struct {
    value sql.NullFloat64
}

freetds.conf defult.

#   $Id: freetds.conf,v 1.12 2007-12-25 06:02:36 jklowden Exp $
#
# This file is installed by FreeTDS if no file by the same 
# name is found in the installation directory.  
#
# For information about the layout of this file and its settings, 
# see the freetds.conf manpage "man freetds.conf".  

# Global settings are overridden by those in a database
# server specific section
[global]
        # TDS protocol version
    tds version = auto

    # Whether to write a TDSDUMP file for diagnostic purposes
    # (setting this to /tmp is insecure on a multi-user system)
;   dump file = /tmp/freetds.log
;   debug flags = 0xffff

    # Command and connection timeouts
;   timeout = 10
;   connect timeout = 10
    
    # If you get out-of-memory errors, it may mean that your client
    # is trying to allocate a huge buffer for a TEXT field.  
    # Try setting 'text size' to a more reasonable limit 
    text size = 64512

    # If you experience TLS handshake errors and are using openssl,
    # try adjusting the cipher list (don't surround in double or single quotes)
    # openssl ciphers = HIGH:!SSLv2:!aNULL:-DH

# A typical Sybase server
[egServer50]
    host = symachine.domain.com
    port = 5000
    tds version = 5.0

# A typical Microsoft server
[egServer70]
    host = ntmachine.domain.com
    port = 1433
    tds version = 7.0

  • Do you mean SQL Server 2014? This is mostly likely being stripped off by Symfony / Doctrine / PHP. – FlipperPA Jul 13 '20 at 00:59
  • @FlipperPA sorry, little mistake. 2005. Yep, terrible old version. > stripped off by Symfony / Doctrine / PHP I think about this, but with mssql 2008 and standart PDO_SQLSRV (no freetds, official Microsoft dirver), float dont stripped. (But offcial driver dont work with 2005 version :( ) – Никита Рассамахин Jul 13 '20 at 13:05
  • @FlipperPA i check with Go, just database/sql and gofreetds driver, same problem. – Никита Рассамахин Jul 13 '20 at 13:32
  • Ooof, for 2005, that complicates things. Be sure to pass `TDS_Version=7.2` as part of your connection string (I'm not 100% how to do that in modern Symfony). If that doesn't do the trick, can you do a test of `SELECT 1.23, 1.00` versus `SELECT CAST(1.23 AS DECIMAL(10, 2)), CAST(1.00 AS DECIMAL(10, 2))`? In Python, I get `1.23, 1.00` returned for both queries, but that's against SQL Server 2016. – FlipperPA Jul 14 '20 at 01:21
  • @FlipperPA i got 1.23 and 1 in both query. In Go and Php. – Никита Рассамахин Jul 14 '20 at 11:20
  • Unfortunately, I don't have a SQL Server 2005 installation to test against. – FlipperPA Jul 14 '20 at 13:27

0 Answers0