Select ´Data´
boa noite...mais uma vez venho recorrer a ajuda dos ´amigos´ do forum para me ajudarem a resolver um pequeno problema...
não estou conceguindo fazer uma ´busca´ por data...
o código é o seguinte...
Tabela.SQL.Add(´select * from dados.lancamentos_cx where cod_caixa=´+cod+´ and data =´+Dp_Data.Text+´´);
mas ja tentei tbm
Tabela.SQL.Add(´select * from tabela where cod_caixa=´+cod+´ and data :Patam1´);
e sempre retorna erro de sintaxe...oque devo fazer....
Alguem pode me ajudar??
Anderson
não estou conceguindo fazer uma ´busca´ por data...
o código é o seguinte...
Tabela.SQL.Add(´select * from dados.lancamentos_cx where cod_caixa=´+cod+´ and data =´+Dp_Data.Text+´´);
mas ja tentei tbm
Tabela.SQL.Add(´select * from tabela where cod_caixa=´+cod+´ and data :Patam1´);
e sempre retorna erro de sintaxe...oque devo fazer....
Alguem pode me ajudar??
Anderson
Andersonpgsql
Curtidas 0
Respostas
Martins
17/12/2006
Testei não, mas tenta assim, pode ser q algo esteja errado, mas é +/- isso.
Boa sorte!
Tabela.SQL.Add(´select * from tabela where cod_caixa =:pcod and data =:pData´); Tabela.Sql.ParamByName(´pcod´).AsInteger := suavariável ou edit ...; Tabela.Sql.ParamByName(´pcod´).AsDate := StrToDate(Editx.text); Tabela.Open;
Boa sorte!
GOSTEI 0
Andersonpgsql
17/12/2006
desta forma o erro parou...mas não ta buscando nada....vou postar uma parte maior do meu código pra ver se ajuda a alguem me ajudar...o banco que uso é postrgresql e a conexão é odbc e os componentes são query, provaider e clientdataset...
seque abaixo o código...
seque abaixo o código...
[b:61f9c9df11] cod:=inttostr(Dados_PT1.CDS_Caixascodigo.Value);
Dados_PT1.CDS_Lanc_Cx.Close;
begin
with Dados_PT1 do
begin
if LCB_Caixa.Text<>´´ then
begin
if Cb_Tp.ItemIndex=0 then
begin
Lancamento_Cx.Close;
Lancamento_Cx.SQL.Clear;
Lancamento_Cx.SQL.Add(´select * from dados.lancamentos_cx where cod_caixa= :Param1 and data =:Param2´);
Lancamento_Cx.Parameters.ParamByName(´Param1´).Value:=strtoint(cod);
Lancamento_Cx.Parameters.ParamByName(´Param2´).Value:=StrToDate(Dp_Data.Text);
Lancamento_Cx.Open;
end;
if Cb_Tp.ItemIndex=1 then
begin
Lancamento_Cx.Close;
Lancamento_Cx.SQL.Clear;
Lancamento_Cx.SQL.Add(´select * from dados.lancamentos_cx where cod_caixa=:Param0 and data Between :Param1 and :Param2´);
Lancamento_Cx.Parameters.ParamByName(´Param0´).Value:=strtoint(cod);
Lancamento_Cx.Parameters.ParamByName(´Param1´).Value:=strtodate(Dp_DtPr1.Text);
Lancamento_Cx.Parameters.ParamByName(´Param2´).Value:=strtodate(Dp_DtPr2.Text);
Lancamento_Cx.Open;
end;
end;
end;
end;
Dados_PT1.CDS_Lanc_Cx.Open;[/b:61f9c9df11]
GOSTEI 0
Andersonpgsql
17/12/2006
Por favor....alguem me ajude...ja postei o código no qual estou tendo dificuldade...
GOSTEI 0
Facc
17/12/2006
qual bd vc está usando?
pois dependendo vc terá que tratar a data...
pois dependendo vc terá que tratar a data...
exemplo ´18-dec-2006´
GOSTEI 0
Andersonpgsql
17/12/2006
Estou usando o postgre...tenho outra tabela onde faço isso tbm e da certo...sem erro sem nada...
GOSTEI 0
Emerson Nascimento
17/12/2006
tente trocar de .Value para .Date ou .DateTime e veja se muda alguma coisa...
GOSTEI 0
Andersonpgsql
17/12/2006
não tem como trocar...não sei se é por causa do banco ou dos componentes...mas só aceita value e asvariante...e não consulta em nem uma das formas...o interessante é que tenho outro form onde faço uma pesquisa bem semelhante e la funciona direitinho...que coisa estranha...
oque fazer?
oque fazer?
GOSTEI 0
Emerson Nascimento
17/12/2006
na verdade é
trocar de .Value para .AsDate ou .AsDateTime
trocar de .Value para .AsDate ou .AsDateTime
GOSTEI 0
Andersonpgsql
17/12/2006
não aceita, apenas value...ja tentei varias vezes...não sei se é por causa do banco...mas não aceita
GOSTEI 0