Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

obtener datos de una base de datos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: obtener datos de una base de datos Responder citando

Estoy intentando obtener los datos de una base de datos de access, el problema es que hago la consulta y no me devulve aparentemente nada, yo tengo puesto esto :

Query2->OpenDatabase();
Query2->SQL->Clear();
Query2->SQL->Add("Select Nombre From clientes where nif="+ Edit3->Text +";");
Query2->ExecSQL();
String Valor=Query2->FieldByName("Nombre")->AsString;
Edit2->Text=Valor;
Edit4->Text=Query2->Text;

Nombre es de tipo texto y nif es un entero.

Inserto en Edit3 un numero el cual solo coincide con un registro en la base de datos.

Los edits los estoy usando para comprobar lo que devuelve, el edit 4 me devulve lo correcto la consulta bien planteada, pero el edit2 no me devuelve nada.

Espero que me puedan ayudar.

Un saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Rivo mira ExecSQL se utiliza para sentencias SQL que no devuelven resultados, tipo INSERT, UPDATE, DELETE y otras, y para las consultas tipo SELECT debes usar Open, que lo que hará será ejecutar la sentencia contra el SGBD y obtener un cursor, luego puedes iterar por el resultado con Next, esto así porque un SELECT podría devolver varias tuplas en vez de solo una.

Supongamos que tu consulta solo devuelve una, entonces debería ser algo así:

Código:

Query->SQL->Clear();
Query->SQL->Add("Select Nombre From clientes where nif="+ Edit3->Text +";");
Query->Prepare();
Query->Open();
Query->First();    // se posiciona en el primer registro del resultado
Edit2->Text=Query2->FieldByName("Nombre")->AsString;
// Lo que no se es que quieres hacer con lo siguiente:
// Edit4->Text=Query2->Text;
Query->Close();


Por cierto mejor que usar String, usa AnsiString.
Ciao.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Este codigo funciona mucho mejor que el que tenia yo Rolling Eyes , muchas gracias por resolverme la duda y aclararme unas cosillas sobre bases de datos en builder.

Un saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.