Fórum Erro (dbExpress Erro: Ivalide Field Type) na hora de consulta! #384591
25/08/2010
0
Caros amigos do DevMedia, estou com um problema na montagem de um relatário, estou montando uma consulta para mostrar os dads em um DBGrid, essa consulta é filtrada por data, eu coloca as datas para o filtro e na hora que eu clico no botão pesquisa dá o seguinte erro:
"dbExpress Erro: Ivalide Field Type"
Estou usando o Seguinte Componentes:
SQLConnection
SQLQuery
DataSetPrivider
ClientDataSet
DataSource
Estou usando banco oracle 10g
Segue o codigo do botão Pesquisar:
procedure TFormPrincipal.SpeedButton1Click(Sender: TObject);
begin
if (StrToDate(Edit1.Text)<=StrToDate(Edit2.Text))then
begin
SQLBeno.Close;
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN :D1 and :D2');
SQLBeno.SQL.Add('ORDER BY DT_LIQ');
SQLBeno.Params[0].AsDateTime := StrToDate(Edit1.Text);
SQLBeno.Params[1].AsDateTime := StrToDate(Edit2.Text);
SQLBeno.Open;
end;
end;
Se alguém poder me ajudar eu agradeço.
Eliézio Mesquita
Eliézio Mesquita
Curtir tópico
+ 0Posts
25/08/2010
Eriley Barbosa
begin
if (StrToDate(Edit1.Text)<=StrToDate(Edit2.Text))then
begin
SQLBeno.Close;
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN ' + QuotedStr((Edit1.Text)) + ' and ' + QuotedStr((Edit2.Text)));
SQLBeno.SQL.Add(' ORDER BY DT_LIQ');
//SQLBeno.Params[0].AsDateTime := StrToDate(Edit1.Text);
//SQLBeno.Params[1].AsDateTime := StrToDate(Edit2.Text);
SQLBeno.Open;
end;
end;
Gostei + 0
25/08/2010
Eriley Barbosa
begin
if (StrToDate(Edit1.Text)<=StrToDate(Edit2.Text))then
begin
SQLBeno.Close;
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN ' + QuotedStr(Edit1.Text) + ' and ' + QuotedStr(Edit2.Text));
SQLBeno.SQL.Add(' ORDER BY DT_LIQ');
//SQLBeno.Params[0].AsDateTime := StrToDate(Edit1.Text);
//SQLBeno.Params[1].AsDateTime := StrToDate(Edit2.Text);
SQLBeno.Open;
end;
end;
Gostei + 0
25/08/2010
Eliézio Mesquita
Gostei + 0
25/08/2010
Eriley Barbosa
begin
if (StrToDate(Edit1.Text)<=StrToDate(Edit2.Text))then
begin
SQLBeno.Close;
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN :D1 and :D2');
SQLBeno.SQL.Add('ORDER BY DT_LIQ');
SQLBeno.Params[0].AsDate := StrToDate(Edit1.Text);
SQLBeno.Params[1].AsDate := StrToDate(Edit2.Text);
SQLBeno.Open;
end;
end;
Gostei + 0
25/08/2010
Eliézio Mesquita
SQLBeno.Close;
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN ' + QuotedStr((Edit1.Text)) + ' and ' + QuotedStr((Edit2.Text)));
SQLBeno.SQL.Add('ORDER BY DT_LIQ');
//SQLBeno.Params[0].AsDateTime := StrToDate(Edit1.Text);
//SQLBeno.Params[1].AsDateTime := StrToDate(Edit2.Text);
SQLBeno.Open;
Gostei + 0
25/08/2010
Eriley Barbosa
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN ' + QuotedStr((Edit1.Text)) + ' and ' + QuotedStr((Edit2.Text)));
SQLBeno.SQL.Add('ORDER BY DT_LIQ'); ShowMessage(SQLBeno.SQL.Text);
//SQLBeno.Params[0].AsDateTime := StrToDate(Edit1.Text);
//SQLBeno.Params[1].AsDateTime := StrToDate(Edit2.Text);
SQLBeno.Open; Ao aparecer o SQL na tela tecle ctrl + C e cole no oracle, retire as sujeiras e execute, veja se retorna algum registro.
Gostei + 0
25/08/2010
Eliézio Mesquita
O que será que pode ser agora?
Gostei + 0
25/08/2010
Eriley Barbosa
DataSetPrivider
ClientDataSet
DataSource
Você está abrindo o clientDataset?
Gostei + 0
25/08/2010
Eliézio Mesquita
Obrigado.
Gostei + 0
25/08/2010
Eriley Barbosa
Gostei + 0
25/08/2010
Eliézio Mesquita
SQLBeno.Close;
SQLBeno.SQL.Clear;
SQLBeno.SQL.Add('select CD_CLIENTE,CD_CARTAO,DT_BONUS,TP_OPERACAO,VL_BONUS,CD_EMPLIQ,DT_LIQ from UBENOLIEL.CTC_BONUS');
SQLBeno.SQL.Add('WHERE DT_LIQ BETWEEN ' + QuotedStr((Edit1.Text)) + ' and ' + QuotedStr((Edit2.Text)));
SQLBeno.SQL.Add('and TP_OPERACAO = 'C'');
SQLBeno.SQL.Add('ORDER BY DT_LIQ ');
ShowMessage(SQLBeno.SQL.Text);
SQLBeno.Open;
ClientBeno.Active := True;
Obrigado
Gostei + 0
25/08/2010
Junior Miranda
SQLBeno.SQL.Add(' AND TP_OPERACAO = ' + QuotedStr('C'));
[]'s
Gostei + 0
26/08/2010
Eliézio Mesquita
Obrigado e forte abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)