1
Database / Re:gambas 3.19.1 con ODBC + MSSQL 2016: problemi query di raggruppamento
« il: 09 Maggio 2024, 11:25:21 »
Per Milio: potresti fornirci qualche dettaglio in più sul tuo scenario operativo? (quali ODBC e versioni Gambas/Distro linux?)
Grazie
Distro: Kubuntu 22.04
Versione Gambas: 3.19.1
ODBC: FreeTDS (versione pacchetto 1.3.6-1)
tdsodbc (versione pacchetto 1.3.6-1)
Per il collegamento al Database nel file freetds.conf:
Codice: [Seleziona]
[Mago]
host = 192.168.1.75
port = 1305
tds version = 8.0
client charset = UTF-8
Parametri nel file odbcinst.ini:
Codice: [Seleziona]
[Ms-Sql]
Description=
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Driver64=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
Setup64=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount=1
CPTimeout=
CPTimeToLive=
DisableGetFunctions=
DontDLCLose=
ExFetchMapping=
Threading=
FakeUnicode=
IconvEncoding=
Trace=
TraceFile=
TraceLibrary=
CPReuse=
parametri nel file odbc.ini:
Codice: [Seleziona]
[Mago]
Description=Ms-Sql
Driver=Ms-Sql
Servername=Mago
Database=LavanderiaNET
UID=######
PWD=######
Port=1305
...con FreeTDS il raggruppamento funziona correttamente, ma va in crash nel caso in cui uno dei campi di aggregazione della select contiene un valore null.
Io ho provato a fare dei test in questo modo:
ho modifcato il dato nel database mettendo il valore Null nel campo 'UM' in un record a caso contenente l'articolo '29'
poi ho eseguito questo codice:
Codice: [Seleziona]
hRes = DbMago.Exec("SELECT SUM(ritirato) as somma, cliente, UM FROM SI_BolletteRighe WHERE articolo = '29' group by cliente, UM;")
For Each hRes
Print hRes["somma"], hRes["cliente"], IIf(IsNull(hRes["UM"]), "NULL", hRes["UM"])
Next
e mi ritorna correttamente in console senza andare in crash:
Codice: [Seleziona]
2 1887 NULL
1 1034 PZ
274 1862 PZ
5 1887 PZ
22 1911 PZ
245 2278 PZ
361 2311 PZ