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.
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.
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()
- ignacio
- Site Admin
- Mensajes: 9459
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
RE:AdoDB:RecordSet:FielPut()
Á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.
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
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
RE:AdoDB:RecordSet:FielPut()
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!
¿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
- Site Admin
- Mensajes: 9459
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
RE:AdoDB:RecordSet:FielPut()
Á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!
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
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com