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.

RE:AdoDB:RecordSet:FielPut()

Foro de Xailer profesional en español
Responder
Angel
Mensajes: 135
Registrado: Mié Mar 21, 2007 1:11 pm

RE:AdoDB:RecordSet:FielPut()

Mensaje por Angel »

Ignacio Ortiz de Zúñiga escribió:
> Angel,
>
> Pues intenta mandarmela para Firebird 1.5.
>
> Gracias
>
Le recopilo en este post toda la información anterior:
El ejemplo, lo puede encontrar en
http://www.agelso.com/priv_angel/errorado.rar
El archivo error.log, esta presente en dicho zip. La BD de FireBird, la
he cambiado a la version 1.5.2 y el ODBC que uso, es el 'oficial' de
firebird. He reducido al mí­nimo código posible el error. Gracias.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

RE:AdoDB:RecordSet:FielPut()

Mensaje por ignacio »

Ángel,
Me temo que le tengo malas noticias :-(
El error reportado se producía por no salvar la información con el método
apropiado de ADO (métodos AppendChunk y GetChunk), y ese problema es de
fácil solución.
Sin embargo el peor problema es que el soporte de TOleauto de xHarbour no
distingue entre cadenas y conjunto de bytes e intenta siempre convertir a
formato Unicode cualquier texto que se le envíe. Por lo tanto, hasta que
xHarbour no resuelva dicho problema no es posible utilizar ADO con campos
tipo BLOB.
Nosotros, por nuestra parte, intentaremos implementar algún 'work around'
pero le anticipo que la solución no es sencilla y puede tardar algo de
tiempo.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ángel Fernández" <angel@agelso.com> escribió en el mensaje
news:474bfc00$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio Ortiz de Zúñiga escribió:
> > Angel,
> >
> > Pues intenta mandarmela para Firebird 1.5.
> >
> > Gracias
> >
>
> Le recopilo en este post toda la información anterior:
> El ejemplo, lo puede encontrar en
> http://www.agelso.com/priv_angel/errorado.rar
>
> El archivo error.log, esta presente en dicho zip. La BD de FireBird, la he
> cambiado a la version 1.5.2 y el ODBC que uso, es el 'oficial' de
> firebird. He reducido al mínimo código posible el error. Gracias.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Angel
Mensajes: 135
Registrado: Mié Mar 21, 2007 1:11 pm

RE:AdoDB:RecordSet:FielPut()

Mensaje por Angel »

Gracias Ignacio, unas ultimas pregunta:
¿Esto ocurre con todos los campos tipo BLOB que se intenten insertar
via-ado? ¿O solo si se maneja FireBird? Personalmente, no lo he
intentado con otro SGBD. ¿Ha implementado alguna función xHarbour para
el manejo de campos BLOB? ¿Puedo solucionar este problema si establezco
el CHARSET a UNICODE?
Saludos!
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

RE:AdoDB:RecordSet:FielPut()

Mensaje por ignacio »

Ángel,
Te va a pasar con cualquier tipo de campo y cualquier charset. La única
solución que se me ocurre de momento es usar la función StringToHex() para
convertir el bloque de bytes en hexadecimal antes de guardarlo y la función
HexToString() para recuperarlo, pero como te puedes imaginar ello incrementa
bastante el tamaño del archivo en le SGBD.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ángel Fernández" <angel@agelso.com> escribió en el mensaje
news:474d3ccd$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Gracias Ignacio, unas ultimas pregunta:
>
> ¿Esto ocurre con todos los campos tipo BLOB que se intenten insertar
> via-ado? ¿O solo si se maneja FireBird? Personalmente, no lo he
> intentado con otro SGBD. ¿Ha implementado alguna función xHarbour para el
> manejo de campos BLOB? ¿Puedo solucionar este problema si establezco el
> CHARSET a UNICODE?
>
> Saludos!
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder