Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ver mas de un registro (https://www.clubdelphi.com/foros/showthread.php?t=56775)

aleja 27-05-2008 15:35:04

Ver mas de un registro
 
Buenos días, recurro de nuevo a la ayuda de uds. sigo haciendo mi sistemita, bastante lento por cierto, me cuesta mucho entender algunas cosas.
Tengo en mi programa prueba, 4 edits, donde vuelco los datos de una selección que hago de una tabla

Código SQL [-]
zquery1.Close;
zquery1.SQL.Clear;
zquery1.SQL.Add('select * from datospersonales where apellido like :apellido');
zquery1.ParamByName('apellido').AsString:=edit2.Text+'%';
zquery1.Open;
edit1.Text:= zquery1.Fields[1].AsString;
edit3.Text:= zquery1.Fields[3].AsString;

ahora eso solo me muestra el primer registro encontrado, como hago para ver los siguientes? si coloco un boton "siguiente"... como sería?
Desde ya mcuhas gracias...:p

BlueSteel 27-05-2008 15:45:25

Cita:

Empezado por aleja (Mensaje 289345)
Buenos días, recurro de nuevo a la ayuda de uds. sigo haciendo mi sistemita, bastante lento por cierto, me cuesta mucho entender algunas cosas.
Tengo en mi programa prueba, 4 edits, donde vuelco los datos de una selección que hago de una tabla


Código SQL [-]zquery1.Close;
zquery1.SQL.Clear;
zquery1.SQL.Add('select * from datospersonales where apellido like :apellido');
zquery1.ParamByName('apellido').AsString:=edit2.Text+'%';
zquery1.Open;
edit1.Text:= zquery1.Fields[1].AsString;
edit3.Text:= zquery1.Fields[3].AsString;




ahora eso solo me muestra el primer registro encontrado, como hago para ver los siguientes? si coloco un boton "siguiente"... como sería?
Desde ya mcuhas gracias...:p

Hola...

puedes hacerlo en forma manual, es decir, utilizando los componentes Edits (lo que actualmente usas)... y cuando presionas el boton pones un codigo como;

Código Delphi [-]
 
zquery1.Next; // Avanza el sgte registro
zquery1.Prior; // Retrocede un Registro

Aunque tendrás que reasignar los focos a los edits... es decir, cada vez que realices cualquiera de los eventos anteriores deberás poner

Código Delphi [-]
 
edit1.Text:= zquery1.Fields[1].AsString;
edit3.Text:= zquery1.Fields[3].AsString;

Tambien deberia funcionar de la sgte forma...
Código Delphi [-]
 
edit1.Text:= zquery1['campo1'];
edit3.Text:= zquery1['campo2'];


La otra forma de realizarlo es utilizando los sgtes componentes

un DataSource que este vinculado al zquery1
un DBGrid que este vinculado al DataSource (Opcional), esto te mostrará tantos registros puedas mostrar por pantalla...
tambien puedes utilizar los componentes DBEdits (en vez de los Edits), estos deben estar vinculados al DataSource...y al campo que quieras mostrar...
un DBNavigator que este vinculado al DataSource... esto te da los botones de recorrido de registros (registro anterior, siguientes, ir al principio, final, etc..), esto afectará tanto el DBGrid como los DBEdits...

espero que esto te sirva...

Salu2:p:D

aleja 27-05-2008 16:32:50

Muchas gracias por la respuesta, utilize lo primero que explicaste, coloco un boton de siguiente y escribo:

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
begin
zquery1.Next;
edit1.Text:= zquery1.Fields[1].AsString;
edit3.Text:= zquery1.Fields[3].AsString;
end;

me muestra el siguiente pero tb me muestra el 1 q me mostro, osea recien en el segundo click, me muestra siguiente registro, porq es eso?


La franja horaria es GMT +2. Ahora son las 17:56:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi