Cita:
Empezado por ecfisa
Hola Kenobi.
Lo primero que me llama la atención es que la consulta anterior funcione sin haber incluído la columna "proyectos" en la declaración GROUP BY ...
|
tienes razon, ese query no funciona ya que lo invente en el momento para no mostrar el codigo del query real, por aquello de proteger el codigo en producción, pero es muy similar.
Cita:
Empezado por ecfisa
Para reutilizar el mismo query, se me ocurre que podrías hacer algo similar a este ejemplo:
Código Delphi [-]
procedure UnDataModule.CountCategories(const Categoria: string);
begin
qyCat.Close;
qyCat.SQL.Clear;
qyCat.SQL.Add('SELECT PROYECTO, COUNT(CATEGORIAS)');
qyCat.SQL.Add('FROM PROYECTOS');
qyCat.SQL.Add('WHERE PROYECTO = :PARAM');
qyCat.SQL.Add('GROUP BY PROYECTO');
if Categoria = EmptyStr then
qyCat.SQL.Delete(2)
else
qyCat.parameters.ParamByName('PARAM').Value := Categoria;
qyCat.Open;
end;
|
así lo tengo hecho pero como mencione estoy buscando una alternativa para no crear el codigo del query( query.sql.add(codigo sql)) en tiempo de ejecución, me apete algo como :
Código Delphi
[-]
if length(param) > 1 then qyCat.parameters.ParamByName('PARAM').Value := Param
else 'DESACTIVO EL PARAMETRO SIN DESTRUIRLO, BORRARLO PARA QUE LA SENTENCIA SIGA IGUAL A LA CREADA EN DISEÑO, PERO
SE EJECUTE SIN EL PARAMETRO, AL MENOS EN ESTA LLAMADA'
Gracias por sus respuestas ....
P.D AgustinOrtu, así sea de memoria y no haya funcionado, en verdad agradezco tu intención y tu tiempo para responder, saludos