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;


Helderpirapora

Helderpirapora

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!!!


Responder

Gostei + 0

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

Aceitar