Ver la Versión Completa : Problema en consulta SQL con variables y format
ilichhernandez
14-11-2005, 14:38:29
Depues de haber leido varios hilos referentew al tema, llegue al siguiente codigo:pero me reclama el "%".... dice el sistema que no es valido el formato o el argumento es incompatible.....
procedure TForm1.Button1Click(Sender: TObject);
var consulta,campos,donde,orden : string;
begin
Consulta := 'Select % from resultados where % order by %';
query1.sql.text := format(consulta,[campos,donde,orden]);
query1.ExecSQL;
end;
ilich hernandez.
Gracias.........:(
vtdeleon
14-11-2005, 14:45:19
Saludos
No está clara tu duda, pero deduciendo
Consulta := 'Select %s from resultados where %s order by %s';
ilichhernandez
14-11-2005, 14:52:47
Le he echo la "s" que me faltaba y cuando lo ejecute quedo se cayo y me salio una ventana que dice que no hay sentencia SQL disponible y luego la ventana de la CPU.....lo que estoy tratando de hacer es poder entregar como parametro los campos a seleccionar, los campos para el ordenamiento y los campos del where....
procedure TForm1.Button1Click(Sender: TObject);
var consulta,campos,donde,orden : string;
begin
campos := '*';
donde := 'codigo_pricipal = "EC SAC 10 005" ';
orden := 'codigo_principal';
Consulta := 'Select %s from resultados where %s order by %s';
query1.sql.text := format(consulta,[campos,donde,orden]);
query1.ExecSQL;
end;
Gracias y saludos
vtdeleon
14-11-2005, 15:15:31
Saludos
Algo que se me pasó, es que veo que usas ExecSql, debes usar Open para sentencias "Select".
donde := 'codigo_pricipal = '+ quotedStr('EC SAC 10 005');
En princpio son comillas simples, a menos que uses Access creo recordar.
saludos
ilichhernandez
14-11-2005, 20:05:16
no hay caso de momento.... tira un error distinto ahora..., hasta el mensaje que sale va bien.... la consulta va en la query.sql.text, pero luego lanza el siguiente error :"Could not find object".....
procedure TForm1.Button1Click(Sender: TObject);
var consulta,campos,donde,orden : string;
begin
campos := '*';
donde := 'codigo_pricipal = '+ quotedStr('EC SAC 10 005');
orden := 'codigo_principal';
Consulta := 'Select %s from resultados where %s order by %s';
//query1.active := true;
query1.sql.text := format(consulta,[campos,donde,orden]);
showmessage(query1.sql.Text);
query1.open;
end;
Saludos y gracias
ilichhernandez
14-11-2005, 20:08:54
Ahora no lanza error, resulta que donde dice codigo_pricipal es "codigo_principal"...., gracias por sus ayudas compañeros....... eternamente agradecido......
ilich hernandez.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.