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.

Pedido al equipo de Xailer - Agregar un cambio a la clase TODbcDataSet.

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:

Pedido al equipo de Xailer - Agregar un cambio a la clase TODbcDataSet.

Mensaje por Carlos Ortiz »

El tema basicamente se debe a que en la creación de dbf temporal no genera correctamente los campos cuyo largo es mayor de 64 caracteres, es como que lo recorta. Yo modifique la linea del aadd como esta en rojo mas abajo y asi me anduvo bien. Usamos Postgres por ODBC y todo anda bárbaro inclusive muy rápido, solo esto del largo del campo.
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, max(:nLen,:nSQLLen), max(:nDec,:nSQLDec) } )
END WITH
NEXT
Desde ya muchas gracias y me falta muy poco para migrar de la 1.99 a la 2.0.16.
--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Pedido al equipo de Xailer - Agregar un cambio a la clase TODbcDataSet.

Mensaje por ignacio »

Carlos,
Revisaremos su propuesta. No obstante le recomiendo que empiece a utilizar ADO por ODBC para conectarse con Postgres. Como ha podido comprobar en Xailer 2 desaconsejamos el uso del ODBC DataSource.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer/Xailer team]
http://www.xailer.com
http://www.xailer.info
"Carlos Ortiz" <cortizassist@hotmail.com> escribió en el mensaje de noticias:[email=4bbd6776@svctag-j7w3v3j....]4bbd6776@svctag-j7w3v3j....[/email]
El tema basicamente se debe a que en la creación de dbf temporal no genera correctamente los campos cuyo largo es mayor de 64 caracteres, es como que lo recorta. Yo modifique la linea del aadd como esta en rojo mas abajo y asi me anduvo bien. Usamos Postgres por ODBC y todo anda bárbaro inclusive muy rápido, solo esto del largo del campo.
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, max(:nLen,:nSQLLen), max(:nDec,:nSQLDec) } )
END WITH
NEXT
Desde ya muchas gracias y me falta muy poco para migrar de la 1.99 a la 2.0.16.
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Pedido al equipo de Xailer - Agregar un cambio a la clase TODbcDataSet.

Mensaje por Carlos Ortiz »

Ok, entendido pero según me parece hay conectores ODBC para la base de datos
que se nos ocurra no así en ADO, a lo mejor estoy desactualizado con esta
info?
por otro lado nuestra intención es correr los proyectos desarrollados en
xailer bajo servidor y terminales linux emuladas, no se si por ese lado me
traerá algún problema adicional conseguir un conector odbc o ado. Ya hemos
corrido alplicaciones xailer en linux y andan solo que algunos componentes
como los combos no se comportan visualmente bien (se ven muy amplios y muy
altos como que se va de pantalla) pero los exes arrancan perfectamente.
Muchas gracias Ignacio.
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
mensaje news:[email=4bbd91c2@svctag-j7w3v3j....]4bbd91c2@svctag-j7w3v3j....[/email]
Carlos,
Revisaremos su propuesta. No obstante le recomiendo que empiece a utilizar
ADO por ODBC para conectarse con Postgres. Como ha podido comprobar en
Xailer 2 desaconsejamos el uso del ODBC DataSource.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer/Xailer team]
http://www.xailer.com
http://www.xailer.info
"Carlos Ortiz" <cortizassist@hotmail.com> escribió en el mensaje de
noticias:[email=4bbd6776@svctag-j7w3v3j....]4bbd6776@svctag-j7w3v3j....[/email]
El tema basicamente se debe a que en la creación de dbf temporal no genera
correctamente los campos cuyo largo es mayor de 64 caracteres, es como que
lo recorta. Yo modifique la linea del aadd como esta en rojo mas abajo y asi
me anduvo bien. Usamos Postgres por ODBC y todo anda bárbaro inclusive muy
rápido, solo esto del largo del campo.
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, max(:nLen,:nSQLLen),
max(:nDec,:nSQLDec) } )
END WITH
NEXT
Desde ya muchas gracias y me falta muy poco para migrar de la 1.99 a la
2.0.16.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Pedido al equipo de Xailer - Agregar un cambio a la clase TODbcDataSet.

Mensaje por ignacio »

Carlos,
Le comento que siga utilizando el mismo driver ODBC de Postgre, pero en vez
de atacarlo directamente con el control TODBCDataSource, lo haga a través de
ADO con el objeto TADODateSource.
Una de las grandes ventajas de ADO es que incorpora un origen de datos para
conectarse a través de cualquier driver ODBC. De esta forma el motor ADO es
capaz de hacer operaciones con los recordsets que incluso el nativo de ODBC
no es capaz ya que le añade la funcionalidad que a este le falta. Incluso en
muchas ocasiones el acceso a través de ADO mejora la velocidad ya que
utiliza técnicas de cache de datos y busquedas en dicha cache que el motor
ODBC por si sólo no hace.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Equipo de Xailer/Xailer team]
http://www.xailer.com
http://www.xailer.info
"Carlos Ortiz" <cortizassist@hotmail.com> escribió en el mensaje de
noticias:4bbde787$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ok, entendido pero según me parece hay conectores ODBC para la base de
> datos que se nos ocurra no así­ en ADO, a lo mejor estoy desactualizado con
> esta info?
>
> por otro lado nuestra intención es correr los proyectos desarrollados en
> xailer bajo servidor y terminales linux emuladas, no se si por ese lado me
> traerá algún problema adicional conseguir un conector odbc o ado. Ya hemos
> corrido alplicaciones xailer en linux y andan solo que algunos componentes
> como los combos no se comportan visualmente bien (se ven muy amplios y muy
> altos como que se va de pantalla) pero los exes arrancan perfectamente.
>
> Muchas gracias Ignacio.
>
>
> "Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
> mensaje news:[email=4bbd91c2@svctag-j7w3v3j....]4bbd91c2@svctag-j7w3v3j....[/email]
> Carlos,
>
> Revisaremos su propuesta. No obstante le recomiendo que empiece a utilizar
> ADO por ODBC para conectarse con Postgres. Como ha podido comprobar en
> Xailer 2 desaconsejamos el uso del ODBC DataSource.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> [Equipo de Xailer/Xailer team]
> http://www.xailer.com
> http://www.xailer.info
> "Carlos Ortiz" <cortizassist@hotmail.com> escribió en el mensaje de
> noticias:[email=4bbd6776@svctag-j7w3v3j....]4bbd6776@svctag-j7w3v3j....[/email]
> El tema basicamente se debe a que en la creación de dbf temporal no
> genera correctamente los campos cuyo largo es mayor de 64 caracteres, es
> como que lo recorta. Yo modifique la linea del aadd como esta en rojo mas
> abajo y asi me anduvo bien. Usamos Postgres por ODBC y todo anda bárbaro
> inclusive muy rápido, solo esto del largo del campo.
>
> 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, max(:nLen,:nSQLLen),
> max(:nDec,:nSQLDec) } )
> END WITH
> NEXT
>
> Desde ya muchas gracias y me falta muy poco para migrar de la 1.99 a la
> 2.0.16.
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
Carlos Ortiz
Mensajes: 873
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Pedido al equipo de Xailer - Agregar un cambio a la clase TODbcDataSet.

Mensaje por Carlos Ortiz »

Pero muchas gracias por la aclaración entonces, habia algo que no sabía y ud
si. Ire probando.
Muchas gracias Ignacio.
"Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
mensaje news:4bbdf673$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Carlos,
>
> Le comento que siga utilizando el mismo driver ODBC de Postgre, pero en
> vez de atacarlo directamente con el control TODBCDataSource, lo haga a
> través de ADO con el objeto TADODateSource.
>
> Una de las grandes ventajas de ADO es que incorpora un origen de datos
> para conectarse a través de cualquier driver ODBC. De esta forma el motor
> ADO es capaz de hacer operaciones con los recordsets que incluso el nativo
> de ODBC no es capaz ya que le añade la funcionalidad que a este le falta.
> Incluso en muchas ocasiones el acceso a través de ADO mejora la velocidad
> ya que utiliza técnicas de cache de datos y busquedas en dicha cache que
> el motor ODBC por si sólo no hace.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> [Equipo de Xailer/Xailer team]
> http://www.xailer.com
> http://www.xailer.info
>
> "Carlos Ortiz" <cortizassist@hotmail.com> escribió en el mensaje de
> noticias:4bbde787$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Ok, entendido pero según me parece hay conectores ODBC para la base de
>> datos que se nos ocurra no así en ADO, a lo mejor estoy desactualizado
>> con esta info?
>>
>> por otro lado nuestra intención es correr los proyectos desarrollados en
>> xailer bajo servidor y terminales linux emuladas, no se si por ese lado
>> me traerá algún problema adicional conseguir un conector odbc o ado. Ya
>> hemos corrido alplicaciones xailer en linux y andan solo que algunos
>> componentes como los combos no se comportan visualmente bien (se ven muy
>> amplios y muy altos como que se va de pantalla) pero los exes arrancan
>> perfectamente.
>>
>> Muchas gracias Ignacio.
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoNameToAvoidSpam@xailer.com> escribió en el
>> mensaje news:[email=4bbd91c2@svctag-j7w3v3j....]4bbd91c2@svctag-j7w3v3j....[/email]
>> Carlos,
>>
>> Revisaremos su propuesta. No obstante le recomiendo que empiece a
>> utilizar ADO por ODBC para conectarse con Postgres. Como ha podido
>> comprobar en Xailer 2 desaconsejamos el uso del ODBC DataSource.
>>
>> Un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> [Equipo de Xailer/Xailer team]
>> http://www.xailer.com
>> http://www.xailer.info
>> "Carlos Ortiz" <cortizassist@hotmail.com> escribió en el mensaje de
>> noticias:[email=4bbd6776@svctag-j7w3v3j....]4bbd6776@svctag-j7w3v3j....[/email]
>> El tema basicamente se debe a que en la creación de dbf temporal no
>> genera correctamente los campos cuyo largo es mayor de 64 caracteres, es
>> como que lo recorta. Yo modifique la linea del aadd como esta en rojo mas
>> abajo y asi me anduvo bien. Usamos Postgres por ODBC y todo anda bárbaro
>> inclusive muy rápido, solo esto del largo del campo.
>>
>> 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, max(:nLen,:nSQLLen),
>> max(:nDec,:nSQLDec) } )
>> END WITH
>> NEXT
>>
>> Desde ya muchas gracias y me falta muy poco para migrar de la 1.99 a la
>> 2.0.16.
>>
Responder