GARANTIR DESCONTO

Fórum Pesquisa entre datas usando Cliendataset? #276882

12/04/2005

0

Alguem sabe como fazer uma pesquisa entre datas usando o Clientdataset?

[b:661ae397f5]NOTA:[/b:661ae397f5]
1- Quando estava trabalhando com BDE + Query e funcionava a pesquisa.
2 - Atualmente estou usando DBEXPRESS: Sqlconection + Sqldataset + Datasetprovider + Clientdataset (só dá mensagem de erro na pesquisa :oops: )

Agradeço desde já a quem puder me ajudar


End Else

End Else

Responder

Posts

12/04/2005

Emerson Nascimento

qual a mensagem de erro?
vc setou a opção poAllowCommandText para True?


Responder

Gostei + 0

13/04/2005

Cabelo

Qual banco??

Qual SQL??

Qual mensagem de erro?


Responder

Gostei + 0

13/04/2005

End Else

Qual banco?? Qual SQL?? Qual mensagem de erro?


O banco é o Firebird 1.5

o código que digitei é esse:

procedure TFContasaPagar.BitBtn1Click(Sender: TObject);
begin
DM.cds_c_pagar.CommandText:=sql;
dm.cds_c_pagar.close;
with dm.cds_c_pagar do
begin
CommandText:=(´SELECT * FROM PAGAR where DATA between´);
CommandText:=CommandText+´:D1 =´+Edit1.Text;
CommandText:=CommandText+´ AND ´;
CommandText:=CommandText+´:D2 =´+Edit2.Text;
CommandText:=CommandText+´ ORDER BY DATA´;
Open;
end;

A mensagem de erro que aparece é essa:

Token unknown - line 1, char 41 =.


Responder

Gostei + 0

13/04/2005

End Else

qual a mensagem de erro? vc setou a opção poAllowCommandText para True?



Sim já esta com essa opção em TRUE

O banco que estou usando é o Firebird 1.5

o código que digitei é esse:

procedure TFContasaPagar.BitBtn1Click(Sender: TObject);
begin
dm.cds_c_pagar.CommandText:=sql;
dm.cds_c_pagar.close;
with dm.cds_c_pagar do
begin
CommandText:=(´SELECT * FROM PAGAR WHERE DATA BETWEEN´);
CommandText:=CommandText+´1 =´+Edit1.Text;
CommandText:=CommandText+´ AND ´;
CommandText:=CommandText+´2 =´+Edit2.Text;
CommandText:=CommandText+´ ORDER BY DATA´;
Open;
end;

A mensagem de erro que aparece é essa:

Token unknown - line 1, char 41 =.


Responder

Gostei + 0

14/04/2005

Emerson Nascimento

seriam duas formas possíveis:

essa:
procedure TFContasaPagar.BitBtn1Click(Sender: TObject); 
begin 
  dm.cds_c_pagar.close; 
  with dm.cds_c_pagar do 
  begin 
    CommandText:=´SELECT * FROM PAGAR where DATA between ´+Edit1.Text+´ AND ´+Edit2.Text+ 
                 ´ ORDER BY DATA´;
    Open; 
  end;
end;
que não é uma forma muito recomendada, pois depende muito do formato de data digitado e do formato de data do banco. supondo que vc digitou algo como ´21/12/2004´ e no banco esteja configurado o formato de datas como MM/DD/YYYY, você receberá uma mensagem de erro, pois não existe o mês ´21´. entendeu?

a forma que eu te recomendo é essa, pelo uso de parâmetros. eu recomendo que você passe a utilizar parâmetros, pois dessa forma não é necessário se preocupar com a formatação dos dados:
procedure TFContasaPagar.BitBtn1Click(Sender: TObject); 
begin 
  dm.cds_c_pagar.close; 
  with dm.cds_c_pagar do 
  begin 
    CommandText:=´SELECT * FROM PAGAR where DATA between :DataIni AND :DataFim ´+
                 ´ORDER BY DATA´;
    Params.ParamByName(´DataIni´).AsDateTime := StrToDate(DateTimePicker1.Date);
    Params.ParamByName(´DataFim´).AsDateTime := StrToDate(DateTimePicker2.Date);
    Open; 
  end;
end;

o componente DateTimePicker está na paleta Win32.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar