Nao Converte data pra string. O que tem de errado?
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.
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
Curtidas 0
Respostas
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
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
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
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
26/11/2003
valeu pessoal
GOSTEI 0