Naturalmente las Consultas que precisan de campos persistentes yo las armo en objetos distintos y las dejo formateadas y listas para usar, me refiero a consultas como estos ejemplos:
Código Delphi
[-] DmXX.QrActLinalba.Close;
DmXX.QrActLinalba.Sql.Clear;
DmXX.QrActLinalba.Sql.Add('Delete from Linalbar');
DmXX.QrActLinalba.Sql.Add('Where nAlbaran = '+QuotedStr(DmXX.AlbaNalbaran.Value ));
DmXX.QrActLinalba.ExecSql;
DmXX.QrActLinalba.Close;
Procedure Crear_Tabla_Temporal();
var
cNomTemp:String;
begin
cNomTemp:='C:\Wpan\TempFact.Db';
if FileExists(cNomTemp) then
DeleteFile(cNomTemp);
if Not FileExists(cNomTemp) then
begin
Try
DmXX.QrTemporales.Close;
DmXX.QrTemporales.Sql.Clear;
DmXX.QrTemporales.Sql.Add('Create Table '+QuotedStr(cNomTemp));
DmXX.QrTemporales.Sql.Add('(');
DmXX.QrTemporales.Sql.Add('Codigo Char(07),');
DmXX.QrTemporales.Sql.Add('Nombre Char(40),');
DmXX.QrTemporales.Sql.Add('Poblacion Char(25),');
DmXX.QrTemporales.Sql.Add('Contado Boolean,');
DmXX.QrTemporales.Sql.Add('Recargo Boolean,');
DmXX.QrTemporales.Sql.Add('Facturames Boolean,');
DmXX.QrTemporales.Sql.Add('Ruta Char(01),');
DmXX.QrTemporales.Sql.Add('Primary Key(Codigo)');
DmXX.QrTemporales.Sql.Add(')');
DmXX.QrTemporales.ExecSQL;
Except
ShowMessage('Error al crear la tabla temporal de facturas.');
end;
end;
end;
Function Comprobar_hay_Lineas_que_Facturar():Boolean;
Var
lTiene:Boolean;
begin
lTiene:=True;
DmXX.Qrhaylineas.Close;
DmXX.Qrhaylineas.Sql.Clear;
DmXX.Qrhaylineas.Sql.Add('Select Count(nCliente) from LinAlbar');
DmXX.Qrhaylineas.Sql.Add('Where nCliente = '+QuotedStr(DmXX.Tempo.Fields[0].AsString));
DmXX.QrHayLineas.Open;
if DmXX.QrHayLineas.Fields[0].AsInteger > 0 then
Result:=True
else
Result:=False;
end;
Un Saludo.