In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Problema con odbcDataSet para campos char > 64 de largo...

Foro público de Xailer en español
Responder
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Problema con odbcDataSet para campos char > 64 de largo...

Mensaje por Carlos Ortiz »

Usando Postgres via ODBC.
Xailer 1.99
luego del select abro el dataset creado de un TodbcDataSet y el hay un campo
que tiene 100 char de largo y me retorna solo los primeros 64 caracteres.
Será xailer o xharbour?
probe definiendo el rdd de clipper 5.3, el nativo de xharbour para 64 bits y
dbfcdx y siempre igual.
Muchas gracias.
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Problema con odbcDataSet para campos char > 64 de largo...

Mensaje por Carlos Ortiz »

Hemos retocado la siguiente parte del código de Xailer oDBCDataSet.prg, en realidad ToDBCDataSet por que al hacer los select en aquellos campos que en el motor son superiores a 64 char los recortaba a ese tamaño, no se dónde se pierde Xailer y le clava 64 cuando por ejemplo en el motor mide 100 de largo, lo resaltado mas abajo en rojo funciona bien, si tendrá algún otro impacto? no lo sabemos, esperamos comentarios.
Muchas gracias.
....
aStruct := {}
FOR nFor := 1 TO Len( aFields )
cField := ValidField( aFields[ nFor, SQL_INFO_NAME ], aStruct )
WITH OBJECT ::AddField( aFields[ nFor, SQL_INFO_NAME ] )
:cDisplayName := :cName
:cDbfName := cField
:cType := aFields[ nFor, SQL_INFO_TYPE ]
:nSQlType := aFields[ nFor, SQL_INFO_SQLTYPE ]
:nLen := aFields[ nFor, SQL_INFO_LEN ]
:nSQLLen := aFields[ nFor, SQL_INFO_SQLLEN ]
:nDec := aFields[ nFor, SQL_INFO_DEC ]
:nSQLDec := aFields[ nFor, SQL_INFO_SQLDEC ]
:lAllowsNull := aFields[ nFor, SQL_INFO_NULLABLE ]
// AAdd( aStruct, { cField, :cType, :nLen, :nDec } )
AAdd( aStruct, { cField, :cType, max(:nLen,:nSQLLen), max(:nDec,:nSQLDec) } )
END WITH
NEXT
DbCreate(.....
--
Responder