Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Mostrar un solo registro en un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=26775)

Ivan_25 03-11-2005 09:04:57

Mostrar un solo registro en un dbgrid
 
Hola a todos!!!. Tengo un dbgrid en el que muestro datos de una consulta SQL (conexion ADO). Tambien tengo unos campos de busqueda, y lo que quiero hacer es que a medida que vaya introduciendo algo en estos campos me muestre los registros correspondientes en el mismo dbgrid. Lo he intentado con Locate, pero no me funciona, asi que estoy utilizando este codigo:

this->ADOQListacandidatos->SQL->Clear();
this->ADOQListacandidatos->SQL->Add("Select * from candidatos where id like '%"+ECodigo->Text.Trim()+"%'");
this->DBGCandidatos->DataSource = DSListacandidatos;

pero no me muestra nada en el dbgrid. He probado a hacer el where de la consulta con '=' en lugar de like, pero tampoco funciona. ¿Podeis ayudarme?. Muchas gracias.

alt126 03-11-2005 10:07:56

una sugerencia
 
...mas que nada, podrias probar la consulta en la base de datos primero, y cuando veas que la consulta es correcta...entonces ver que puede fallar.

A grandes rasgos, no veo nada erroneo....

por si te sirve..asi hago yo las consultas en access:

Cita:

Datos->Consulta->SQL->Clear();
Datos->Consulta->SQL->Add("SELECT Campo FROM Tabla WHERE Campo=:a");
Datos->Consulta->Params->Items[0]->AsString = Edit1->Text;
Datos->Consulta->ExecSQL();
Datos->Consulta->Active=true;
Viendo tu codigo y suponiendo que se haga de la misma forma...te faltaria ejecutar la consulta con ExecSQL...

Un saludo

Antonio

Ivan_25 03-11-2005 10:44:46

Gracias alt_126
 
Sigue sin mostrarme nada en el dbgrid, pero gracias por tu ayuda. Si se te ocurre otra cosa te agradeceria que me lo dijeras.
Un saludo.

alt126 03-11-2005 10:59:51

prueba lo siguiente...
 
supongo que tambien ese componente tendra un RecordCount...


asi que:

Cita:

//Asi sabras cuantas filas te devuelve...porque puede que el problema sea
//la consulta.
int numero_filas = Datos->Consulta->RecordCount;
Un saludo

Antonio

Ivan_25 03-11-2005 11:31:12

Ya funciona
 
ADOQListacandidatos->SQL->Clear();
ADOQListacandidatos->SQL->Add("Select * from candidatos where Telefono like '%"+ETelefono->Text.Trim()+ "%'");
ADOQListacandidatos->ExecSQL();
ADOQListacandidatos->Active = true;
this->DBGCandidatos->DataSource = this->DSListacandidatos;

Gracias por todo.

alt126 03-11-2005 12:40:13

pos eso...
 
...de nada...

Un saludo

Antonio


La franja horaria es GMT +2. Ahora son las 14:27:01.

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