FreeDTS odbc linux: communication error nvarchar vs univarchar

37 views
Skip to first unread message

PICCORO McKAY Lenz

unread,
Dec 20, 2016, 8:47:46 AM12/20/16
to venenuxmassenkoh, venenuxsarisari, vegnuli
FreeDTS es un software ODBC para comunicarse con Bases de datos Mocosoft y Sybase/SAP, pero tiene un bug importante en ODBC

hoy confirmado, aunque soporta el tipo de datos nvarchar el soporte nunca ha sido probado, ...

...y como dice el ruso, los que usan software libre no tiene los equipos ni el entonro completo de juguetes...

como yo tengo muchos juguetes y el entorno bastante cargado de cosas importante, pude corroborar el soporte no es completo, hay un problema a nivel de protocolo, :  https://github.com/FreeTDS/freetds/issues/88#issuecomment-268239586

aunque el odbc mapea bien las nvarchar (utf8 a utf16) hay problemas a nivel de comunicacion y resulta en este error al usar los tipos de datos NVARCHAR Y UNIVARCHAR tanto de mocosoft y sybase/sap

EJEMPLO, conectandose usando un DSN-less ODBC a sybase cramos una tabla y consultamos:

SQL> CREATE TABLE entidad AS ( col1 NVARCHAR(10) );
SQL> SELECT * FROM entidad;
[37000][unixODBC][FreeTDS][SQL Server]SQL Anywhere Error -85: Communication error
[01000][unixODBC][FreeTDS][SQL Server]TDS: cannot resolve datatype 'univarchar'
[ISQL]ERROR: Could not SQLExecute

SOLUCION MIENTRAS SE RESUELVE EL BUG:
SIN embargo momentaneamente pueden solucionar asi:

SQL> SELECT CAST(col1 AS VARCHAR(4000)) AS col1 FROM entidad

CUALQUEIR AVANCE EN EL BUG por favor comenten para que el software libre avance de verdad y no con las herramienticas de novatos, el software libre no avanza porque los que lo usan no estan donde deben, en empresas pariendo con el entorno, en vez de estancarse profesionakmente bajo la excusa "necesito comer"

asi que comenten y idan q el bug se resuelva, ayuden los demas, no sean unos sinverguenzas q solo usan y no colaboran

Lenz McKAY Gerardo (PICCORO)

Venenux sarisarinama Mail list

unread,
Dec 26, 2016, 4:19:32 PM12/26/16
to venenuxmassenkoh, venenuxsarisari, vegnuli
SOLUCIONADO PARCIALMENTE: 
Al fin avances, el nvarchar esta sopòrtado ya ...


alli postie las pruebas y por ahora de los dos datos mas importante (NVARCHAR y NTEXT) al menos NVARCHAR esta soportado y en buen estado

sin embargo se descubrio otro bug a nivel de la libreria, : que imposibilita usar este avance: https://github.com/FreeTDS/freetds/issues/92 tambien a nivel de protocolo, por ahora via DNS se puede usar tablas proxy 

los paquetes mientras tanto los pego solo para debian lenny/squeeze y venenux, pro ahora usan openssl, despues lo hare contra libgcryp pues necesitan una correccion, conectan contra cuanlquier DB mocosoft 2012 y sybase aqui adjuntos, estos paquetes aun sirve, al menos via odbc y unixodbc se puede usar tal como en el issue de github demostre funcionan
freetds_0.95-0_i386.changes
freetds-bin_0.95-0_i386.deb
freetds-common_0.95-0_all.deb
freetds-dev_0.95-0_i386.deb
libct4_0.95-0_i386.deb
libsybdb5_0.95-0_i386.deb
tdsodbc_0.95-0_i386.deb

PICCORO McKAY Lenz

unread,
Dec 27, 2016, 8:42:09 AM12/27/16
to Venenux sarisarinama Mail list, venenuxmassenkoh, vegnuli
He descubierto que en debian el protocolo TDS por defecto es 4.2, sybase solo es compatible con 5.0 sea el sabor ASE o AnyWhere por ende en el odbc.ini hay que agregar un parametro al DSN que sea asi:

TDS_Version = 5.0


en el paquete de freetds de venenux este sera por defecto ya que 4.2 es para sqlserver 2000 y sybase 6, ademas de truncar varchar a 255, es cambiable si se especifica a juro en el odbc.ini o en el freetds.conf o en el conector de cada implementacion (sea php, C, perl etc)

cualquier otra cosa sigo posteando

Lenz McKAY Gerardo (PICCORO)

PICCORO McKAY Lenz

unread,
Dec 27, 2016, 9:31:32 AM12/27/16
to Venenux sarisarinama Mail list, venenuxmassenkoh, vegnuli
ralize un pull request para esto los que les interese el parche para utf16 en freedts 0.95 forza el uso de unicode en sybase ASE y anyWhere https://github.com/FreeTDS/freetds/issues/88#issuecomment-269333100

Lenz McKAY Gerardo (PICCORO)
El 27 de diciembre de 2016, 09:42, PICCORO McKAY Lenz<mckayg...@gmail.com> escribió:
He descubierto que en debian el protocolo TDS por defecto es 4.2, sybase solo es compatible con 5.0 sea el sabor ASE o AnyWhere por ende en el odbc.ini hay que agregar un parametro al DSN que sea asi:

TDS_Version = 5.0


en el paquete de freetds de venenux este sera por defecto ya que 4.2 es para sqlserver 2000 y sybase 6, ademas de truncar varchar a 255, es cambiable si se especifica a juro en el odbc.ini o en el freetds.conf o en el conector de cada implementacion (sea php, C, perl etc)

cualquier otra cosa sigo posteando

Lenz McKAY Gerardo (PICCORO)

PICCORO McKAY Lenz

unread,
Jan 3, 2017, 3:30:24 AM1/3/17
to Venenux sarisarinama Mail list, venenuxmassenkoh, vegnuli
Informacion minima de como manejar CORRECTAMENTE ODBC para SAP SYBASE usando el SAB sybase odbc o Freedts


Esta informacion solo selimita al ODBC,en futuro voy proveer paquetes y ademas informacion completa de sybase en linux, la cual es practicamente inexistente.

PReviamente ya habia publicado info de odbc para postgres por si hay interesados:



Lenz McKAY Gerardo (PICCORO)

Venenux sarisarinama Mail list

unread,
Apr 25, 2017, 10:57:49 AM4/25/17
to Venenux sarisarinama Mail list, venenuxmassenkoh, vegnuli
ACTUALIZACIONES freetds y los recientes commits ahora puede retraer campos nvarchar me falta probar el tdstest y el script de coneccion a ver si tambien se soluciono pero dado he perdido mi disco duro voy tener que sacrificar uno de mi recursos apra que yo pueda tener el disco, dado es mas importante tener donde colocar la informacion que donde probar..

PICCORO McKAY Lenz

unread,
Feb 20, 2019, 1:24:38 PM2/20/19
to Venenux sarisarinama Mail list, venenuxmassenkoh, vegnuli
El mar., 25 de abr. de 2017 a la(s) 10:57, Venenux sarisarinama Mail list (venenux...@googlegroups.com) escribió:
ACTUALIZACIONES freetds y los recientes commits ahora puede retraer campos nvarchar me falta probar el tdstest y el script de coneccion a ver si tambien se soluciono pero dado he perdido mi disco duro voy tener que sacrificar uno de mi recursos apra que yo pueda tener el disco, dado es mas importante tener donde colocar la informacion que donde probar..

con al version 1.00.104 este problema del NVARCHAR y NCHAR ademas de la conversion por codigo de caracters via odbc funciona perfectamente, inclusive coloca la letra "ñ" y todo ..

Venenux sarisarinama Mail list

unread,
Feb 22, 2019, 4:34:11 PM2/22/19
to Venenux sarisarinama Mail list, venenuxmassenkoh, vegnuli
ya arriba lso paquetes para debian 4, 5, y6 .. y con esto freetds para todos los debian disponible
Reply all
Reply to author
Forward
0 new messages