No puedo coger la información de un campo BLOB
Hola, he buscado post anteriores pero ninguno me ha ayudado en lo que necesito. Uso Delphi5 y MySQL, y quiero cargar registros de la base de datos que contienen 3 campos: date, smallint, blob. El blob tiene texto, con formato supongo pq tiene marcas de parrafo.
En la select si selecciono solo el date y el smallint me coge bien los registros pero si hago un select * no me coge ninguno, el recordcount me devuelve -1. Este es el código que uso: procedure TFGenScripts.btValnotasClick(Sender: TObject); var i:integer; fecha, blob: string; begin script.Clear; label2.caption :=''; primera:= true; SQLQuery.ClearSQL; SQLQuery.SQL.Add('select * from valnotas order by FECHA_NT asc,EST_NT asc'); SQLQuery.ExecSQL; if SQLQuery.RecordCount > 0 then begin SQLQuery.Dataset.First; while not SQLQuery.Dataset.Eof do begin // el código de aquí no es relevante, simplemente trato los registros. // en principio me interesa poder coger el blob de la base de datos, // luego el procesarlo será otro cantar. end; end; label2.caption :='Proceso finalizado'; end; Gracias de antemano por las respuestas, un saludo |
Hola Fonx, Prueba :
RecordCount no es funcional en este tipo de base de datos. Si quieres asegurarte que tienes contenido en ese Query, puede hacerlo relalizando previamente un Select Count(*) ..... where xxx que te devolverá el número de registros que cumplen la condición. |
Gracias Ardilla pero no es el problema. La conexión ya esta abierta, y si hago esto:
'select FECHA_NT ,EST_NT from valnotas order by FECHA_NT ,EST_NT' me coge todos los registros que quiero, pero si hago el select * no me coge ninguno, por lo que el problema lo tengo con el tipo de dato BLOB :confused: |
|
Así es, con el select *, cogiendo el date, el smallint y el blob no funciona :confused:, no se, preguntaré a algún compañero de aquí del trabajo a ver si alguien sabe algo...
Puede que sea porque el SQLQuery es una instancia de una clase (TIABDatos) que igual no es una clase estandar del delphi5 sino que ha sido programada por alquien y puede que por eso choca con el tipo blob. |
bueno, di con ello, así que no hago perder más el tiempo a nadie :)
El tema es que el recordcount no funciona bien, por lo que lo quité y me quedo solo con while not SQLQuery.Dataset.Eof do begin .... end Como comenté antes, estoy utilizando una librería para el acceso a datos que hizo un programador de donde estoy ahora, quizás en esa parte del recordcount hay algún tipo de bug, porque me devolvía -1 y sin embargo si hay información en el dataset. Gracias por todo y un saludo :) |
Hola:
Bueno es que no es problema de lo que el programador anterior hizo, yo te comento que hace tiempo use la combinación BDE - Oracle y ultimamente BDE - DB2 y fue los mismo, lo que hago regularmente es:
Y con eso recupero el número de registros que trae el Set de datos, solo que hacerlo asi trae una consecuencia grave, si el número de registros es grande, llamar al Last es estropear el programa. Por último te comento que he trabajado con componentes DBExpress para las mismas bases de datos y funciona como originalmente lo tienes Saludos |
La franja horaria es GMT +2. Ahora son las 15:51:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi