Fórum conversion error from string #365371
23/10/2008
0
Prezados, sou novo aqui no forum.
Estou tentando realizar uma consulta através de uma função retirada de uma das ediçoes da revista clubedelphi.
Eu modifiquei a função e nao sei se esta correta. Antes eram passados os seguintes parametros da antiga função:
function PesquisarContasReceber(ACampo, AValor: string; ATipoPesquisa:
Integer): Boolean;
eu criei uma nova função:
function PesquisarFluxo(ACampo, ACampo1, AValor, AValor1: string): Boolean;
Na primeira função que funciona corretamente, o parametro Avalor , recebe um o conteudo de um edit,
já na segunda função, o parametro Avalor, e Avalor1, recebem o conteudo de um DateEdit, sendo que é convertido para string no momento da chamada da função.
So que é gerado o erro ´Conversion error from string ´dd/mm/aaaa´ ´
Segue abaixo o código da função
function TdmdPrincipal.PesquisarFluxo(ACampo,ACampo1, AValor, AValor1: string): Boolean;
begin
with dmdPrincipal, sqlContas_Receber, SQL do
begin
cdsContas_Receber.Close;
Clear;
Params.Clear;
Add(´SELECT´);
Add(´ CODIGO, VLR_REAL, VLR_PAGO, DT_VECTO, DT_PAGTO, EMISSAO´);
Add(´FROM´);
Add(´ CONTAS_RECEBER´);
Add(´WHERE ´);
{Monta a cláusula Where}
Add(´(´ + ACampo + ´ >= :´ + ACampo + ´)´);
Add(´ and (´ + ACampo1 + ´ <= :´ + ACampo1 + ´)´);
cdsContas_Receber.FetchParams;
cdsContas_Receber.Params.ParamByName(ACampo).AsString := AValor;
cdsContas_Receber.Params.ParamByName(ACampo1).AsString := AValor1;
Add(´ AND STATUS <> ´´I´´ ´);
Add(´ORDER BY´);
Add(´ CODIGO´);
cdsContas_Receber.Open;
Result := not cdsContas_Receber.IsEmpty;
end;
end;
e a chamada da função
procedure TfrmFluxo.SpeedButton2Click(Sender: TObject);
var
ini,fim:string;
begin
ini:=DateToStr(dtFiltroIni.Date);
fim:=DateToStr(dtFiltroFim.Date);
with dmdPrincipal do
begin
if not PesquisarFluxo(cbxPesquisa.Items[cbxPesquisa.ItemIndex], cbxPesquisa.Items[cbxPesquisa.ItemIndex],
ini,fim) then
MessageDlg(´Nada selecionado para filtro.´, mtInformation, [mbOk], 0);
end;
end;
Estou tentando realizar uma consulta através de uma função retirada de uma das ediçoes da revista clubedelphi.
Eu modifiquei a função e nao sei se esta correta. Antes eram passados os seguintes parametros da antiga função:
function PesquisarContasReceber(ACampo, AValor: string; ATipoPesquisa:
Integer): Boolean;
eu criei uma nova função:
function PesquisarFluxo(ACampo, ACampo1, AValor, AValor1: string): Boolean;
Na primeira função que funciona corretamente, o parametro Avalor , recebe um o conteudo de um edit,
já na segunda função, o parametro Avalor, e Avalor1, recebem o conteudo de um DateEdit, sendo que é convertido para string no momento da chamada da função.
So que é gerado o erro ´Conversion error from string ´dd/mm/aaaa´ ´
Segue abaixo o código da função
function TdmdPrincipal.PesquisarFluxo(ACampo,ACampo1, AValor, AValor1: string): Boolean;
begin
with dmdPrincipal, sqlContas_Receber, SQL do
begin
cdsContas_Receber.Close;
Clear;
Params.Clear;
Add(´SELECT´);
Add(´ CODIGO, VLR_REAL, VLR_PAGO, DT_VECTO, DT_PAGTO, EMISSAO´);
Add(´FROM´);
Add(´ CONTAS_RECEBER´);
Add(´WHERE ´);
{Monta a cláusula Where}
Add(´(´ + ACampo + ´ >= :´ + ACampo + ´)´);
Add(´ and (´ + ACampo1 + ´ <= :´ + ACampo1 + ´)´);
cdsContas_Receber.FetchParams;
cdsContas_Receber.Params.ParamByName(ACampo).AsString := AValor;
cdsContas_Receber.Params.ParamByName(ACampo1).AsString := AValor1;
Add(´ AND STATUS <> ´´I´´ ´);
Add(´ORDER BY´);
Add(´ CODIGO´);
cdsContas_Receber.Open;
Result := not cdsContas_Receber.IsEmpty;
end;
end;
e a chamada da função
procedure TfrmFluxo.SpeedButton2Click(Sender: TObject);
var
ini,fim:string;
begin
ini:=DateToStr(dtFiltroIni.Date);
fim:=DateToStr(dtFiltroFim.Date);
with dmdPrincipal do
begin
if not PesquisarFluxo(cbxPesquisa.Items[cbxPesquisa.ItemIndex], cbxPesquisa.Items[cbxPesquisa.ItemIndex],
ini,fim) then
MessageDlg(´Nada selecionado para filtro.´, mtInformation, [mbOk], 0);
end;
end;
Helderpirapora
Curtir tópico
+ 0
Responder
Posts
23/10/2008
Jc
Provavelmente a data que vc esta pegando do DataEdit esta em outro formato, diferente de dd/mm/aaaa.
Responder
Gostei + 0
23/10/2008
Helderpirapora
Obrigado pela ajuda.
A chamada da função ficou assim:
procedure TfrmFluxo.SpeedButton2Click(Sender: TObject);
var
ini,fim:string;
begin
ini:=FormatDateTime(´mm/dd/yyyy´,dtFiltroini.Date);
fim:=FormatDateTime(´mm/dd/yyyy´,dtFiltroFim.Date);
with dmdPrincipal do
begin
if not PesquisarFluxo(cbxPesquisa.Items[cbxPesquisa.ItemIndex], cbxPesquisa.Items[cbxPesquisa.ItemIndex],
ini,fim) then
MessageDlg(´Nada selecionado para filtro.´, mtInformation, [mbOk], 0);
end;
end;
Daí foi só correr pro abraço!!!
A chamada da função ficou assim:
procedure TfrmFluxo.SpeedButton2Click(Sender: TObject);
var
ini,fim:string;
begin
ini:=FormatDateTime(´mm/dd/yyyy´,dtFiltroini.Date);
fim:=FormatDateTime(´mm/dd/yyyy´,dtFiltroFim.Date);
with dmdPrincipal do
begin
if not PesquisarFluxo(cbxPesquisa.Items[cbxPesquisa.ItemIndex], cbxPesquisa.Items[cbxPesquisa.ItemIndex],
ini,fim) then
MessageDlg(´Nada selecionado para filtro.´, mtInformation, [mbOk], 0);
end;
end;
Daí foi só correr pro abraço!!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)