[gnome-db] bug with freetds and varchar



Hello,
I have simple query with a varchar(50) (Sqlserver2000, libgda1.1.99 and freetds0.62.4, 8.0 protocol )

SELECT  MArticulo.CodigoArticulo,MArticulo.Descripcion FROM MArticulo ORDER BY Descripcion

MArticulo.Descripcion is a varchar.

i get from tsql a correct result:

1> SELECT  MArticulo.CodigoArticulo,MArticulo.Descripcion+SPACE(1)AS Descripcion FROM MArticulo ORDER BY Descripcion
2> go
CodigoArticulo  Descripcion
2000001 801
2000006 801
2000007 802
2000002 802
2000003 803
2000004 804
2000005 805
4000007 ACERO 34x34 SATINADO
4000004 BASE COLOR AMARILLO
4000003 BASE COLOR AZUL
4000008 BASE COLOR FUCSIA
444444  BASE COLOR PRUEBA
4000001 BASE COLOR ROJO
4000002 BASE COLOR VERDE
4000006 BIZCOCHO DE 9mm
0000010 BORGONIA P LIST COLL 7,7x40
1111111 CENEFA PLANIFICACION
0000001 CENEFA PRUEBA-1-
0000002 CENEFA PRUEBA-2-
0000003 CENEFA PRUEBA-3-
0000012 DAVENPORT BEIGE LIST COLL 10x45cm
0000011 DUNA-PALMIRA LIST COLL 7x30cm
0000004 LIST. CADENAS -A- 12,5x40 cm.
0000005 LIST. CADENAS -B- 12,5x40 cm.
0000006 LIST. CADENAS -C- 12,5x40 cm.
0000007 LIST. CADENAS -D- 12,5x40 cm.
0000008 MADISON LIST COLL 13x45 cm
2100001 METAL 34x34 SAT
0000009 MIDIR MARFIL LIST. D 6x58cm
4000009 PERFIL ALUMINIO 300mm
4000005 PLACA DE VIDRIO DE 10mm
222222  SEMIELAB PRUEBA
8000    TONER IMPRESORA
0000    VARIOS

but with libgda I get a overwriting of the not used chars:
SQL_dm: 'SELECT  MArticulo.CodigoArticulo,MArticulo.Descripcion+SPACE(1)AS Descripcion FROM MArticulo ORDER BY Descripcion '
RESULTADO:
***********************************
CodigoArticulo:'2000001'
Descripcion:'801 '

-------------------------------------------------------------
CodigoArticulo:'2000006'
Descripcion:'801 '

-------------------------------------------------------------
CodigoArticulo:'2000007'
Descripcion:'802 '

-------------------------------------------------------------
CodigoArticulo:'2000002'
Descripcion:'802 '

-------------------------------------------------------------
CodigoArticulo:'2000003'
Descripcion:'803 '

-------------------------------------------------------------
CodigoArticulo:'2000004'
Descripcion:'804 '

-------------------------------------------------------------
CodigoArticulo:'2000005'
Descripcion:'805 '

-------------------------------------------------------------
CodigoArticulo:'4000007'
Descripcion:'ACERO 34x34 SATINADO '

-------------------------------------------------------------
CodigoArticulo:'4000004'
Descripcion:'BASE COLOR AMARILLO  '

-------------------------------------------------------------
CodigoArticulo:'4000003'
Descripcion:'BASE COLOR AZUL LLO  '
                                                  +++ --------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'4000008'
Descripcion:'BASE COLOR FUCSIA O  '
                                                       +-------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'4444448'
Descripcion:'BASE COLOR PRUEBA O  '
                                                       +-------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'4000001'
Descripcion:'BASE COLOR ROJO A O  '
                                                       +-------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'4000002'
Descripcion:'BASE COLOR VERDE  O  '
                                                       +-------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'4000006'
Descripcion:'BIZCOCHO DE 9mm   O  '
                                                    +-------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'0000010'
Descripcion:'BORGONIA P LIST COLL 7,7x40 '

-------------------------------------------------------------
CodigoArticulo:'1111111'
Descripcion:'CENEFA PLANIFICACION 7,7x40 '

-------------------------------------------------------------
CodigoArticulo:'0000001'
Descripcion:'CENEFA PRUEBA-1- ION 7,7x40 '

-------------------------------------------------------------
CodigoArticulo:'0000002'
Descripcion:'CENEFA PRUEBA-2- ION 7,7x40 '

-------------------------------------------------------------
CodigoArticulo:'0000003'
Descripcion:'CENEFA PRUEBA-3- ION 7,7x40 '

-------------------------------------------------------------
CodigoArticulo:'0000012'
Descripcion:'DAVENPORT BEIGE LIST COLL 10x45cm '

-------------------------------------------------------------
CodigoArticulo:'0000011'
Descripcion:'DUNA-PALMIRA LIST COLL 7x30cm 5cm '
                                                                          +-------------------------------------------------->error
-------------------------------------------------------------
CodigoArticulo:'0000004'
Descripcion:'LIST. CADENAS -A- 12,5x40 cm. 5cm '

-------------------------------------------------------------
CodigoArticulo:'0000005'
Descripcion:'LIST. CADENAS -B- 12,5x40 cm. 5cm '

-------------------------------------------------------------
CodigoArticulo:'0000006'
Descripcion:'LIST. CADENAS -C- 12,5x40 cm. 5cm '

-------------------------------------------------------------
CodigoArticulo:'0000007'
Descripcion:'LIST. CADENAS -D- 12,5x40 cm. 5cm '

-------------------------------------------------------------
CodigoArticulo:'0000008'
Descripcion:'MADISON LIST COLL 13x45 cm m. 5cm '

-------------------------------------------------------------
CodigoArticulo:'2100001'
Descripcion:'METAL 34x34 SAT L 13x45 cm m. 5cm '

-------------------------------------------------------------
CodigoArticulo:'0000009'
Descripcion:'MIDIR MARFIL LIST. D 6x58cm . 5cm '

-------------------------------------------------------------
CodigoArticulo:'4000009'
Descripcion:'PERFIL ALUMINIO 300mm x58cm . 5cm '

-------------------------------------------------------------
CodigoArticulo:'4000005'
Descripcion:'PLACA DE VIDRIO DE 10mm 8cm . 5cm '

-------------------------------------------------------------
CodigoArticulo:'2222225'
Descripcion:'SEMIELAB PRUEBA DE 10mm 8cm . 5cm '

-------------------------------------------------------------
CodigoArticulo:'8000225'
Descripcion:'TONER IMPRESORA DE 10mm 8cm . 5cm '

-------------------------------------------------------------
CodigoArticulo:'0000225'
Descripcion:'VARIOS MPRESORA DE 10mm 8cm . 5cm '

-------------------------------------------------------------

If I use MArticulo.Descripcion+SPACE(15)AS Descripcion I get a correct result, because all spaces are equals.
example

select Descripción

"hello" (first result)
"1 llo" (not "1")
"2 llo" (not "2")

but with  select Descripción +SPACE(15) ,for example, I get

"hello               "
"1             "
"2              "


I get this error with older releases of libgda.


I am seachin in source code,gda-tds-types.c , function  gda_freetds_set_gdavalue, line 245
/* FIXME: TDS_VARCHAR returned for which types? */
case SYBCHAR:
case SYBNVARCHAR:
case SYBVARCHAR:
case SYBTEXT:
case SYBNTEXT:
case XSYBCHAR:
case XSYBVARCHAR:
/* FIXME: unicode types
case XSYBNCHAR:
case XSYBNVARCHAR:
*/
gda_value_set_string (field, g_strdup(val));


I have changed this line by gda_value_set_string (field,val);
and woorks too, but I get the same error.

Any idea?





--
Miguel Angel Pons <miponme navegalia com>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]