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 

Consultas SQL dinámicas II

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Consultas SQL dinámicas II Responder citando

Hola amigos,


Supongo que recordareis mi consulta sobre el mismo tema. La cuestión es que he seguido cada consejo que me habeis mandado, pero por alguna razón no ha funcionado ninguno.

Intento de nuevo la pregunta:

Imaginemos:
(tabla2->FieldByName("NOMBRE")->AsString) tiene como valor actual "Pepe"
la siguiente vez puede que tenga como valor actual "Juan", etc....
Tal como tengo la consulta, no interpreta que tiene "Pepe", aunque realmente lo tiene como valor actual.

consulta->Active=False;
consulta->SQL->Clear();
consulta->SQL->Add("SELECT COUNT(nombre)AS contador");
consulta->SQL->Add("FROM tabla");
consulta->SQL->Add("WHERE nombre='");
consulta->SQL->Add(tabla2->FieldByName("NOMBRE")->AsString);
consulta->SQL->Add("' AND telefono=");
consulta->SQL->Add(tabla->FieldByName("TELEFONO")->AsInteger);
consulta->Active=True;


En cambio si le pongo la consulta del siguiente modo, funciona correctamente, pero no es el caso que necesito:

consulta->SQL->Add("WHERE nombre='Pepe'");
consulta->SQL->Add("AND telefono=");
consulta->SQL->Add(tabla->FieldByName("TELEFONO")->AsInteger);

Necesito que en cada momento valore el nombre que tiene y se lo pase a WHERE, dando un resultado correcto.

Un saludo y michas gracias


Volver arriba
Mensaje    Asunto: Consultas SQL dinámicas II Responder citando

Prueba esto

consulta->Active=False;
consulta->SQL->Clear();
consulta->SQL->Add("SELECT COUNT(nombre)AS contador");
consulta->SQL->Add("FROM tabla");
consulta->SQL->Add("WHERE nombre= ");
consulta->SQL->Add("'"+tabla2->FieldByName("NOMBRE")->AsString+ "'");
consulta->SQL->Add( AND telefono=");
consulta->SQL->Add(tabla->FieldByName("TELEFONO")->AsInteger);
consulta->Active=True;

Volver arriba
Mensaje    Asunto: Consultas SQL dinámicas II Responder citando

Hola, yo lo haría con parámetros, es decir;
AnsiString sql;
sql = "Select count(Nombre) from tabla1 where nombre = :nombre and telefono = :telefono"
if (consulta->Active)
consulta->Close();
consulta->Add(sql);
consulta->Open;

Sin olvidar que tienes que poner que la consulta tira de la tabla2, es decir, antes de abrir la consulta tienes que poner

dsTabla2->DataSet = tabla2;
consulta->DataSource = dsTabla2;

Pruebalo yo lo he hecho varias veces
Un saludo

Volver arriba
Mensaje    Asunto: Consultas SQL dinámicas II Responder citando

Hola a todos,


Gracias a vuestra ayuda he conseguido hacerlo funcionar.

Un saludo y gracias a todos.

Volver arriba
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.