Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Question obtener datos de registros de resultado de un query

hola amigos quisiera saber como podria hacer para saber la informacion o datos de ciertos campos que encuentra un query uso delphi2006 y mi bd es postgre,(no se preocupen por postgre es similar a mysql) les dejo estas instrucciones que funcionan para que puedan darse una idea de la similitud de postgre con las demas bases de datos, uso un database y un tquery


Código Delphi [-]
 
fs.Qs.SQL.Add('select * from Registros where no_folio=708');    
 fs.qs.ExecSQL;
 fs.Qs.Open;
  showmessage(fs.Qs.FieldByName('id_empleado').AsString+' '+fs.Qs.FieldByName('anio').AsString+''+fs.Qs.FieldByName('periodo').AsString);
      fs.Qs.close;

Esa instruccion me trae el resultado con el valor de cada campo en este caso que cumplio con esa clausula por ejemplo id_empleado=1 anio=2007 y periodo=1 pero solo me funciona si el resultado es un solo registro el que cumple la condicion, pero cuando se trata de varios digamos este query

Código Delphi [-]
fs.Qs.SQL.Add('select * from Registros where anio=2007');    
 fs.qs.ExecSQL;
 fs.Qs.Open;
  showmessage(fs.Qs.FieldByName('id_empleado').AsString+' '+fs.Qs.FieldByName('anio').AsString+''+fs.Qs.FieldByName('periodo').AsString);
      fs.Qs.close;

ese query me trae minimo 50 resultados pero pueden ser mas, loque yo quisiera saber es los datos de cada registro afectado es decir, encontro un registro con esa condicion, que obtenga el anio,periodo y id_empleado del primer registro que cumplio la condicion, luego se vaya al segundo y obtenga los mismos datos y asi sucesivamente hasta que termine con todos los registros que se vieron afectados por el query, lo que me interesa es saber como puedo obtener la informacion de todos los registros que encontro el query, espero haberme explicado bien, por su atencion muchas gracias
__________________
En movimiento...
Responder Con Cita
  #2  
Antiguo 14-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pregunto:
Lo que quieres es que cada registro se vea en un mensaje independiente y no la totalidad de ellos?.
Saludos
Responder Con Cita
  #3  
Antiguo 14-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Siguiendo con tu ejemplo, prueba lo siguiente:

Código Delphi [-]
fs.Qs.SQL.Add('select * from Registros where anio=2007');    
fs.Qs.Open;
fs.Qs.First;
while not fs.Qs.EOF do
begin
   showmessage(fs.Qs.FieldByName('id_empleado').AsString+' '+fs.Qs.FieldByName('anio').AsString+''+fs.Qs.FieldByName('periodo').AsString);
fs.Qs.Next;
end;
fs.Qs.close;


El while, con ayuda del First, EOF y Next, recorreran el Query que te trae dicho resultado de 50 o mas registros.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 14-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Pregunto:
Lo que quieres es que cada registro se vea en un mensaje independiente y no la totalidad de ellos?.
Saludos
no el mensaje solo lo ocupo para ver los registros, lo que necesito son los datos de cada registro que el query me encontro, y poderlos guardar en una variable para despues modificar esos registros encontrados en otra tabla creo que lo que busco es lo que puso jhony pero todavia no lo pruebo les informo en un momento
__________________
En movimiento...
Responder Con Cita
  #5  
Antiguo 14-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Cita:
Empezado por jhonny Ver Mensaje
Siguiendo con tu ejemplo, prueba lo siguiente:


Código Delphi [-]fs.Qs.SQL.Add('select * from Registros where anio=2007');
fs.Qs.Open;
fs.Qs.First;
while not fs.Qs.EOF do
begin
showmessage(fs.Qs.FieldByName('id_empleado').AsString+' '+fs.Qs.FieldByName('anio').AsString+''+fs.Qs.FieldByName('periodo').AsString);
fs.Qs.Next;
end;
fs.Qs.close;






El while, con ayuda del First, EOF y Next, recorreran el Query que te trae dicho resultado de 50 o mas registros.
Esto es lo que queria, gracias a ambos por ayudarme ahora dos dudas mas ,la primera es que con el while no se detiene cuando termina por que me arroja un registro de mas -1, supongo que es por que el next me lo hace una ves de mas despues de que ya llego al fin del query, y la otra es que si quisiera guardar los datos, creo que tendria que poner un arreglo, pero quisiera que me ayudaran un poco con la sintaxys, como lo declararia para que fuera variable el tamaño del arreglo, y si es que es buena opcion ocupar el arreglo para guardar los datos del query, solo los necesito para modificar otra tabla, una ves modificada la otra tabla ya no me sirven los datos aunque escribiendo en este momento, creo que acabo de resolver esa cosa, entonces me quedo con la primera duda,
__________________
En movimiento...
Responder Con Cita
  #6  
Antiguo 14-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Te sugiero que para aclarar esa duda que te queda, leas la ayuda en su topico TDataSet.Eof, allí te indican claramente cual es la función que cumple EOF... una vez leido esto vas a ver que EOF te indica el final de los registros (End-Of-File) y por eso el while lo evalua cada vez que tiene que hacerlo, hasta que dicha función nos devuelva True... No se si me hice entender, espero que si .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 15-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Talking

ok, mi error
Código Delphi [-]
fs.Qs.close;
el codigo esta bien, lo que pasa es que se cierra el query una linea antes, y en la proxima linea mostraba un mensaje con el resultado, pero como el query ya estaba cerrado pues no hay resultado, en fin piedritas del oficio, gracias jhonny
__________________
En movimiento...
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
obtener el resultado de un QRExpr thorv Impresión 2 14-02-2007 20:58:53
Obtener el resultado de una consulta zurech MySQL 3 13-07-2005 11:33:11
Resultado de un query en Delphi MRang14 SQL 3 18-11-2004 00:49:57
Usar el resultado de un Query ramonibk MS SQL Server 3 02-09-2004 13:54:00
resultado de un query en un campo memo vetustas Conexión con bases de datos 1 15-12-2003 23:47:05


La franja horaria es GMT +2. Ahora son las 13:39:37.


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