Ninguém? Nenhum palpite? Em Delphi, fazia assim por exemplo:
frmDm.qryConsPesq.Close;
frmDm.qryConsPesq.Parameters.ParamByName('prmNumProt').Value := '%' + edtNumProt.Text + '%';
If dblcInst.Text = ' Then
frmDm.qryConsPesq.Parameters.ParamByName('prmInst').Value := '%'
Else
frmDm.qryConsPesq.Parameters.ParamByName('prmInst').Value := dblcInst.Text;
If Trim(edtDatEntrInic.Text) = ' Then
frmDm.qryConsPesq.Parameters.ParamByName('prmDatEntrInic').Value := StrToDate('01/01/1900')
Else
frmDm.qryConsPesq.Parameters.ParamByName('prmDatEntrInic').Value := StrToDate(edtDatEntrInic.Text);
If Trim(edtDatEntrFin.Text) = ' Then
frmDm.qryConsPesq.Parameters.ParamByName('prmDatEntrFin').Value := StrToDate('31/12/2099')
Else
frmDm.qryConsPesq.Parameters.ParamByName('prmDatEntrFin').Value := StrToDate(edtDatEntrFin.Text);
frmDm.qryConsPesq.Open;