Vamos lá! Primeiro notei que estás sempre colocando '%' antes e depois, e utilizando os operadores = <> >= ... buenos, o % só deve ser utilizado com o LIKE e tb deve ser utilizado com muito cuidado, pois o banco não se utiliza dos índices para a instrução LIKE que tem % ante e depois do texto. Segundo é que tudo está sendo colocado como um texto, isto é, a propriedade Value está sempre recebendo uma string. Te aconcelho a atribuir o valor correto, isto é, se o campo que será comparado é uma data então atribua uma data ao parâmetro, exemplo: ADOQuery.Parameters.ParamByName('DtDigit').Value := Date;
Mesmo assim talvez seja necessário atribuir o tipo de dados do parametro, que se não me falha a memória é a propriedade DataType. Alessandro DUARTE de Moraes A.C. Santa Casa do Rio Grande. http://www.santacasarg.com.br ----- Original Message ----- From: Eduardo Mauricio Pessoa de Souza To: delphi-br@yahoogrupos.com.br Sent: Thursday, September 27, 2007 10:52 AM Subject: [delphi-br] ADOQuery - Erro com parametros Bom dia, Pessoal Sou programador a bastante tempo, porém, começo agora a trabalhar com Delphi. Montei um DBgrid que recebe dados de um ADOQuery, mas estou com problemas nos parâmetros. o Erro é o seguinte: Project Project1.EXE raised exception class EOleException with message 'Objeto Parameter definido incorretamente'. As informações são inconsistentes ou incompletas. procedure TForm1.BitBtn1Click(Sender: TObject); Var cQuery : String; begin cQuery := 'SELECT D1_FORNECE CLIENTE, D1_LOJA LOJA, D1_DTDIGIT DT_DEV, D1_NFORI DOC_ORIG, D1_DOC DOC_DEV, SUM(D1_TOTAL-D1_VALDESC) TOTAL '; cQuery := cQuery + 'FROM SD1010 '; cQuery := cQuery + 'WHERE D1_FILIAL = :Filial '; cQuery := cQuery + ' AND D_E_L_E_T_<> :Deletado '; cQuery := cQuery + ' AND D1_DTDIGIT>= :DtDigit '; cQuery := cQuery + ' AND D1_NFORI IN (SELECT DAI_NFISCA FROM DAI010 WHERE DAI_COD= :Carga AND DAI010.D_E_L_E_T_<> :Deletado AND DAI_FILIAL= :Filial '; cQuery := cQuery + 'GROUP BY D1_FORNECE, D1_LOJA, D1_DTDIGIT, D1_NFORI, D1_DOC '; cQuery := cQuery + 'ORDER BY D1_DTDIGIT '; ADOQuery1.close; ADOQuery1.SQL.Add(cQuery); ADOQuery1.Parameters.ParamByName('Filial').Value := #39+'%'+Edit1.Text+'%'+#39; ADOQuery1.Parameters.ParamByName ('DtDigit').Value := #39+'%'+Edit2.Text+'%'+#39; ADOQuery1.Parameters.ParamByName('Carga').Value := #39+'%'+Edit3.Text+'%'+#39; ADOQuery1.Parameters.ParamByName('Deletado').Value := #39+'%'+Edit4.Text+'%'+#39; ADOQuery1.Open; end; -- Eduardo Pessoa [As partes desta mensagem que não continham texto foram removidas] -------------------------- E-mail Seguro Vetorial.net Mensagem classificada como NÃO-SPAM. Para classificar como SPAM, encaminhe para [EMAIL PROTECTED] Chave de Identificação: 54568,46fbbc2c327881807729863 [As partes desta mensagem que não continham texto foram removidas]