Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 28-05-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Hola Fonx, Prueba :

Código Delphi [-]
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 ,EST_NT');
    SQLQuery.OPEN;
end;


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.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 28-05-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 28-05-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Lo siento fonx, no acabo de comprender esto:

Quieres decir que esto SI funciona:
Código SQL [-]
select FECHA_NT ,EST_NT from valnotas

Y que esto otro NO funciona:
Código SQL [-]
select * from valnotas

Si es así, no veo cual puede ser el problema....
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #5  
Antiguo 28-05-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
Así es, con el select *, cogiendo el date, el smallint y el blob no funciona , 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.
Responder Con Cita
  #6  
Antiguo 28-05-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 31-05-2007
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 21
ramiretor Va por buen camino
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:

Código Delphi [-]

 qry.Open;
 qry.Last;
 qry.RecordCount;

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
__________________
Ernesto R.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Campo Blob IVAND SQL 4 09-01-2012 11:57:45
Como puedo mostrar información (Urgente) JavierO Tablas planas 1 20-07-2005 20:40:19
Error en SELECT al coger un Campo (Veces Leido) DarkByte SQL 5 13-09-2004 00:20:22
campo blob acertij022 Conexión con bases de datos 1 19-08-2004 00:10:32


La franja horaria es GMT +2. Ahora son las 14:41:57.


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
Copyright 1996-2007 Club Delphi