estoy tratando de construir una sentencia sql dinamica, mas sin embargo me marca errores.
Necesito buscar por rango de fechas y por nombre mas no he podido.
no se si esta bien la forma en que lo plamo o quizas haya algun caracter que sea diferente.
aqui esta el codigo....
Código Delphi
[-]
var FIni, FFin :String;
A,M,D : Word;
begin
if Form1.IBQuery1.Active then
begin
form1.IBQuery1.Close;
form1.IBQuery1.SQL.Clear;
Memo1.Text :='';
end;
with form1 do
begin
IBQuery1.SQL.Add('SELECT');
IBQuery1.SQL.Add('servicios.`status`,');
IBQuery1.SQL.Add('servicios.id_ser,');
IBQuery1.SQL.Add('servicios.f_recep,');
IBQuery1.SQL.Add('servicios.f_ini,');
IBQuery1.SQL.Add('servicios.nombre,');
IBQuery1.SQL.Add('servicios.ofi_dir,');
IBQuery1.SQL.Add('servicios.f_ter,');
IBQuery1.SQL.Add('servicios.ob_sol,');
IBQuery1.SQL.Add('servicios.m_correc,');
IBQuery1.SQL.Add('servicios.m_prev,');
IBQuery1.SQL.Add('servicios.software,');
IBQuery1.SQL.Add('servicios.red,');
IBQuery1.SQL.Add('servicios.`diseño`,');
IBQuery1.SQL.Add('servicios.soporte,');
IBQuery1.SQL.Add('servicios.impresion,');
IBQuery1.SQL.Add('servicios.sol,');
IBQuery1.SQL.Add('servicios.sol_via_email,');
IBQuery1.SQL.Add('servicios.sol_via_ofi,');
IBQuery1.SQL.Add('servicios.sol_via_oral,');
IBQuery1.SQL.Add('servicios.sol_via_tel,');
IBQuery1.SQL.Add('servicios.sol_via_otro,');
IBQuery1.SQL.Add('servicios.sol_via_ofi_num,');
IBQuery1.SQL.Add('servicios.sol_via_memo,');
IBQuery1.SQL.Add('servicios.ac_rea,');
IBQuery1.SQL.Add('servicios.obser,');
IBQuery1.SQL.Add('servicios.respon,');
IBQuery1.SQL.Add('servicios.dir_resp,');
IBQuery1.SQL.Add('servicios.img');
IBQuery1.SQL.Add('FROM');
IBQuery1.SQL.Add('servicios');
IBQuery1.SQL.Add('WHERE');
IBQuery1.SQL.Add('servicios.nombre ='+Edit1.Text+'');
if (JvDateTimePicker1.Date = JvDateTimePicker2.Date) then
begin
IBQuery1.SQL.Add('Date_Format(servicios.f_ini,''%d/%m/%Y'') = '+ QuotedStr(DateToStr(JvDateTimePicker1.Date)) +'');
Memo1.Text := 'si paso';
end else begin
DecodeDate(JvDateTimePicker1.Date,A,M,D);
FIni := IntToStr(A) + '/' + IntToStr(M)+ '/' + IntToStr(D);
DecodeDate(JvDateTimePicker2.Date,A,M,D);
FFin := IntToStr(A) + '/' + IntToStr(M)+ '/' + IntToStr(D);
IBQuery1.SQL.Add('ANd');
IBQuery1.SQL.Add('servicios.f_ini BETWEEN '+QuotedStr(Fini) + ' AND ' + QuotedStr(FFin));
Memo1.Lines.Add (Form1.IBQuery1.SQL.Text);
IBQuery1.Open;