Cita:
Empezado por sac
PepeLolo cómo sustituís me podés dar un ejemplo? xq ese código parece muy bueno
|
Ejemplo:
En el evento Oncreate del form
Código Delphi
[-]cSqlCliente := sqlCliente.SQL.Text
lo que se hace es reservar la SQL original
Luego donde corresponda se sustituyen las marcas, yo siempre lo hago en el evento BeforeOpen de los componentes de datos
Código Delphi
[-]var cWhere, cSql :String;
Begin
cWhere := '';
cSql:= cSqlCliente;
If eProvincia.txt <> '' Then cWhere := cWhere + 'AND Provincia Like ' + Quotedstr(eProvincia.txt) + FF;
If eMunicipio.txt <> '' Then cWhere := cWhere + 'AND Municipio Like ' + Quotedstr(eMunicipio.txt) + FF
cSql := stringReplace(cSql, '/* WHERE */, cWhere, []);
SqlCliente.Sql.clear;
SqlCliente.Sql.Text := cSql;
End;
Con ORDER BY, lo mismo.
He puesto un ejemplo basico para que te hagas una idea y lo comprendas. Este modelo lo puedes complicar mucho, hasta convertirlo en completamente dinámico.
En mi caso, no hay una instrucción DML en la aplicación, todas se encuentran almacenadas en la BBDD y se recuperan en función del formulario y componentes de este.