El módulo de agenda de contactos
Aquí con una letra seleccionada
El código en
https://gist.github.com/anonymous/6187111
y la función ActQAgenda
Código Delphi
[-]Function ActQAgenda(QRY:TIBQuery; TAB:TTabControl;Campo:String;TxtSql:string; MostrarMensaje:boolean=VMiLogico;Retornarmensaje:boolean=VMiLogico; RetornarQuerry:boolean=VMiLogico): Boolean;
var AntSql:string;
Letraagenda: string;
begin try
try
Letraagenda := TAB.Tabs[TAB.TabIndex];
if TAB.TabIndex = 0 then
BEGIN
QRY.Active:=false;
QRY.SQL.Clear;
QRY.SQL.Text:=TxtSql;
QRY.Active:=true;
Result:=true;
END else
BEGIN
AntSql:=QRY.SQL.Text;
QRY.Active:=false;
QRY.SQL.Clear;
QRY.SQL.Text:=TxtSql+' where UPPER('+Campo+') Between :LDESDE and :LHASTA';
QRY.ParamByName('LDESDE').AsString := Letraagenda;
QRY.ParamByName('LHASTA').AsString := Letraagenda + '||Z';
QRY.Active:=true;
Result:=true;
END;
except
on E: Exception do
begin
if MostrarMensaje=true then
begin
ShowMessage('Se ha producido un error: ' + Chr(13) + Chr(13)
+ 'Clase de error: ' + E.ClassName + Chr(13) + Chr(13)
+ 'Mensaje del error: ' + E.Message+ Chr(13) + Chr(13)
+' '+ Chr(13) + Chr(13)
+'Se volvera al estado anterior');
end;
QRY.Active:=False;
Result:=false;
end;
end;
finally
if Result=false then
begin
if Retornarmensaje=true then ShowMessage('Sentencia Sql que ha dado Error' + Chr(13) + Chr(13)+ QRY.SQL.Text);
if RetornarQuerry=true then
begin
QRY.Active:=false;
QRY.SQL.Clear;
QRY.SQL.Text:=TxtSql;
QRY.Active:=true;
end;
end;
end;
end;