PDA

Ver la Versión Completa : Mostrar un solo registro en un dbgrid


Ivan_25
03-11-2005, 09:04:57
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
...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:


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
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
supongo que tambien ese componente tendra un RecordCount...


asi que:


//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
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
...de nada...

Un saludo

Antonio