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)
-   -   ¿Como realizo una consulta? (https://www.clubdelphi.com/foros/showthread.php?t=22462)

majosf 16-06-2005 10:24:14

¿Como realizo una consulta?
 
Hola!! Soy nueva en esto de Delphi. Tengo un Edit y un DBgrid, en el edit quiero poner el DNI de un socio y en el dbgrid quiero q me aparezcan los datos de dicho socio? ¿Como lo hago? He hecho un DQuery xo no me sale!!

Ayuda por favor es para el pfc!!

Adeuuuuuu!

alfredosg19 16-06-2005 13:20:30

Espero que sea lo que busca.
 
Hola, no se si he entendido bien lo que buscas, supongo que primero tienes que saber en que columna tienes guardados los DNI. Ahora tienes que comparar cada vez lo que hay dentro del edit con cada fila.

var fila,columna: Integer;
columna:=3;(serà la columna donde tengas los DNI, por ejemplo la 3.)
Begin
For fila:=1 to sgHorari.RowCount-1 do
//Dejamos la primera fila para los titulos
Begin
if edit.text=sgHorari.Cell[columna,fila] then
Showmessage(sgHorari.Cells[columna+1,fila]);//te mostrarà el contenido de la siguiente columna con un mensaje emergente, igual puedes hacer con todos.
End;

Te aconsejo de todas formas que te mires el ADO y las conexiones con bases de datos que es mejor que trabajar con edits y StringGrids.
Pues nada que te vaya bien. Adios (Adeu).

Toñico 16-06-2005 16:15:51

Hola Majosf,

Ya que el DBGrid lo debes de tener asociado a un origen de datos tipo Table o Query, puedes usar la opción de búsqueda sobre la propia tabla.

Un ejemplo sencillo sería:

Código:


Código Delphi [-]
 
If Not Query.Locate('Campo_DNI',EditDNI.Text,[loCaseInsensitive]) then
  ShowMessage('DNI no encontrado');

Si encuentra el dni, se posicionará el DBGrid en el registro encontrado.

Un saludo.

Nelson Polanco 17-06-2005 17:37:53

Es mejor hacer un query y pasarle edit1 como parametro y luego tus datos saldran en el DBgrid. Ejemplo:

Begin
Query1.close;
Query1.sql.clear;
Query1.sql.add('Select * from tabla Where dni = :edit1.text');
Query1.open;

If Query1.IsEmpty Then
Begin
ShowMessage('DNI no encontrado');
End;
End;

Si existe dicho dni saldran tus datos. Espero te sirva. Suerte...

Enan0 17-06-2005 20:55:41

Cita:

Empezado por Nelson Polanco
Es mejor hacer un query y pasarle edit1 como parametro y luego tus datos saldran en el DBgrid. Ejemplo:

Begin
Query1.close;
Query1.sql.clear;
Query1.sql.add('Select * from tabla Where dni = :edit1.text');
Query1.open;

If Query1.IsEmpty Then
Begin
ShowMessage('DNI no encontrado');
End;
End;

Si existe dicho dni saldran tus datos. Espero te sirva. Suerte...

Bueno estubo casi Perfecto para mi gusto pero yo pondria en el ONCHAGE del EDIT lo suiguiente:

Código Delphi [-]
 AdoDATAset1.close;
 AdoDataset1.ParamCheck:=true;
  AdoDataset1.CommandText:='Select * from tabla Where dni like :MyDNI';
 AdoDataset1.Parameters.ParamByName['MyDNI'].value:=edit1.text;
  AdoDataset1.Open;
  
 (*el If empty lo sacamos porque esta consulta se ejecuta en cada
    cambio del edit y simplemente tendrias que enlazarlo al dbgrid*)
  End;


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

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