Fórum Erro consulta com DBLookup #369455
29/03/2009
0
Olá pessoal to usando a seguinte função para gerar uma lista de exames executado por medicos as mesma função funciona para lista de exames por convenio mas po medico esta um erro e to doido mas não consigo saber qual o erro...
A função é esta:
quando eu efetuar a pesquiza clicando no botão esta dando o seguinte errro:
DYNAMIC SQL ERRO
SQL ERROR CODE = 206
COLUMN UNKNOWN
MED_CODMEDICO
AT LINE 4, COLUMN 6
ja revirei o sistema todo e não sei oq esta errado...
A função é esta:
var CodMed : String; Begin DM1.Medic.Locate(´MED_MEDICO´, DBPesquisa2.Text , []); CodMed := DM1.MedicMED_CODMEDICO.Value; With DM1.IBQuery1 Do Begin Close; SQL.Clear; SQL.Add( ´select C_EXAME, NOME, count(C_EXAME), VALOR´ ); SQL.Add( ´from PACEXA´ ); SQL.Add( ´Where DATA >= :DAT1 and DATA <= :DAT2 ´); If DBPesquisa2.Text <> ´´ Then Begin SQL.Add( ´ and MED_CODMEDICO = :COD ´ ); Params[02].AsString := CodMed; End; SQL.Add( ´Group by C_EXAME, NOME, VALOR´ ); Params[00].AsDate := DateEdit1.Date; Params[01].AsDate := DateEdit2.Date; Open; RxCalcEdit1.Clear; While not Dm1.IBQuery1.Eof do begin RxCalcEdit1.Value := RxCalcEdit1.Value + DM1.IBQuery1Total.Value; Dm1.IBQuery1.Next; end; If IsEmpty Then Begin MessageDlg(´Não há dados com as informações solicitadas!´, MtInformation,[MbOk],0); Exit; End; End;
quando eu efetuar a pesquiza clicando no botão esta dando o seguinte errro:
DYNAMIC SQL ERRO
SQL ERROR CODE = 206
COLUMN UNKNOWN
MED_CODMEDICO
AT LINE 4, COLUMN 6
ja revirei o sistema todo e não sei oq esta errado...
Tchucky
Curtir tópico
+ 0
Responder
Posts
29/03/2009
Rudá
A mensagem que está dando parece que é do sql (coluna desconhecida).
Tem certeza que o campo MED_CODMEDICO existe na tabela PACEXA?
Se for banco tipo SQL Server, Oracle veja a possibilidade ser ser case sensitive. outra coisa poderia ser é que você está setando como AsString o certo não seria AsInteger. Possa ser que o o componente esteja mudando o tipo do campo para string.
Tente colocar
Params[2].DataType:= ftInteger;
Params[2].ParamType:= ptInputOutput;
E veja se resolve.
Tem certeza que o campo MED_CODMEDICO existe na tabela PACEXA?
Se for banco tipo SQL Server, Oracle veja a possibilidade ser ser case sensitive. outra coisa poderia ser é que você está setando como AsString o certo não seria AsInteger. Possa ser que o o componente esteja mudando o tipo do campo para string.
Tente colocar
Params[2].DataType:= ftInteger;
Params[2].ParamType:= ptInputOutput;
E veja se resolve.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)