Ver Mensaje Individual
  #7  
Antiguo 27-09-2015
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Reputación: 18
Kenobi Va por buen camino
Estoy en busca de una opcion mejor, si es que existe

Cita:
Empezado por ecfisa Ver Mensaje
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 Ver Mensaje
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
Responder Con Cita