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 

Busqueda

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

Antes de nada decir que estoy comenzando con C++ Builder y ahí va, una duda muy simple verán, tengo una tabla con 2 campos ún identificador numérico y un nombre, y el usuario me da un identificador en tiempo de ejecución por ejemplo un 3 y le tengo que mostrar el nombre que corresponde con el número 3, la consulta sql que hago es:

Código:

select nombre
from table1
where codigo=???????

¿Cómo le indico que el codigo sea igual al que tengo almacenado en una variable en tiempo de ejecución?.
Gracias, por vuestra ayuda
Volver arriba
Mensaje    Asunto: Responder citando

En Builder hay algunos componentes para ejecutar Query's en SQL, suponiendo que utilizas los BDE, utiliza el componente TQuery, y haces lo siguiente:

Código:

AnsiString q = "select nombre from table1 where codigo=???????"
Query1->SQL->Add(q);
Query1->Open(); //Usa Open si el query te devuelte una tabla como los selects
Query1->ExecSQL();//Usa ExecSQL() si la consulta solo ejecuta una accion, ejemplo: Insert, update, delete


Recuerda que la consulta SQL, es AnsiString por lo quer tyodo lo tienes que convertir a ese tipo de dato, y ahh y si a la cadena le vas a mandar datos de tipo char, debes mandarlo apostrofado...

saludos
_________________
Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Open y ExecSQL son excluyentes
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Código:


AnsiString q = "select nombre from table1 where codigo='"+txtTuCampo->Text+"'";
Query1->SQL->Add(q);
Query1->Open();

_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Muchas gracias por vuestras respuestas, pero imaginaos que el campo lo obtengo de una variable en tiempo de ejecución, es decir un entero, "i", que en una función toma un determinado valor, como meto ese entero "i" dentro del where ¿sería poner:

¿where codigo = i?

en la clausula where de la consulta sql?

Gracias
Volver arriba
Mensaje    Asunto: Responder citando

Lo que pasas es una "cadena" para que interprete el manejador de la base de datos , es decir tu entero lo conviertes en string para que pueda ser "adicionado" a la "peticion" que envias por medio del objeto TQuery


Código:

AnsiString q = "select nombre from table1 where codigo="+IntToStr(iTuEntero));
Query1->SQL->Add(q);
Query1->Open();


** Ojo como es un valor numerico no le "mando" las comillas como en la respuesta anterior

La otra forma es usando un objeto TTable y el metodo de busqueda , donde indicas el campo indice (algo parecido al seek de xBase), en lo particular me he dado cuenta qeu no funciona muy bien que digamos, asi que uso solo querys

Suerte
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
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.