Nao Converte data pra string. O que tem de errado?

Delphi

26/11/2003

ola pessoal.

Estou desenvolvendo uma aplicação com banco de dados Interbase. Criei um formulario pra filtrar os dados por data de inclusão.

Por exemplo:
Estou no cadastro de participantes e quero chamar somente os registros que foram enseridos entre duas datas. Clico em um botao ele chama o formulario onde vou colocar data inicial e data final.
Até ai tudo bem.

criei as seguintes variaveis.
//armazena datas no formato string
valdata1, valdata2, val1, val2: STRING;


Esse é o codigo que esta associado ao onclick do botao.

if FrmPesquisaData = nil then
FrmPesquisaData:=TFrmPesquisaData.Create(Self);
FrmPesquisaData.WindowState:=wsNormal;

StatusBar1.Panels[2].Text:= ´ Registros incluidos entre: ´ + valdata1 + ´ e ´ + valdata2;
strsql:= ´ SELECT * FROM ´ + nometabela;
strsql:= strsql + ´ WHERE DATA_INC >= ´ + #39 + val1 + 39;
strsql:= strsql + ´ AND DATA_INC <= ´ + #39 + val2 + 39;

Executar:= sentencasql;
Executar:= exibePanels;
Executar:= navegacao;
Executar:= habilitabotoes;

Ele da um erro dizendo que nao consegue converter os dados pra STRING.

quem puder me ajudar, por favor.
desde de ja agradeço.


Rodrigo Muller

Rodrigo Muller

Curtidas 0

Respostas

Rafael Heise

Rafael Heise

26/11/2003

Primeiro, eu acho que você precisa usar no formato mm/dd/yyyy para filtrar via sql. Segunda, deve estar entre ´ ´ (aspas simples) no seu sql.
Faça o seguinte:

no lugar de
[color=red:2607e95ef0]val1[/color:2607e95ef0]
coloque
[color=green:2607e95ef0]QuotedStr(FormatDataTime(´mm/dd/yyyy´,StrToDate(val1)))[/color:2607e95ef0]

e o mesmo para val2.
Ok?
dai acho que vai funcs...
valeu


GOSTEI 0
Leonardo.moulin

Leonardo.moulin

26/11/2003

uma outra maneira, e é a que eu uso é a seguinte:

with Query1 do
Begin
close;
sql.Clear;
sql.add(´select * from TABELA where data between :PDATAINI and :pdatafim´);
parambyname(´PDATAINI´).AsDateTime := StrToDate(Edit1.Text);
parambyname(´PDATAFIM´).AsDateTime := StrToDate(Edit2.Text);
Open;
end;


Espero ter ajudado


Leonardo Moulin


GOSTEI 0
Rodrigo Muller

Rodrigo Muller

26/11/2003

valeu pessoal


GOSTEI 0
POSTAR