natiii 0 Denunciar post Postado Outubro 23, 2007 Gente, olhe tá dando o mesmo erro: Objeto Parameter definido incorretamente. As informações estão inconsistentes ou incompletas. O código coloquei assim: procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);begin FormatDateTime('dd/mm/yyyy', StrToDate(EditDataEmi.Text)); begin AdoQueryDataEmi.Close; AdoQueryDataEmi.Parameters.Clear; AdoQueryDataEmi.SQL.Add('Update Faturas'); AdoQueryDataEmi.SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('dd/mm/yyyy', StrToDate(EditDataEmi.Text)) + ''''); AdoQueryDataEmi.SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text); AdoQueryDataEmi.ExecSQL; end;end; E o outro código que fiz antes deu o mesmo erro: AdoQueryDataEmi.SQL.Add('Update Faturas set Faturas.DataEmissao = :DataEmi where Faturas.CDC = :cdc'); AdoQueryDataEmi.Parameters.ParamByName('DataEmi').Value := strToDate(EditDataEmi.Text); AdoQueryDataEmi.Parameters.ParamByName('cdc').Value:= EditCdcDataEmi.Text; AdoQueryDataEmi.ExecSQL; Mas esse erro já aconteceu uma outra vez, inclusive postei anteriormente, e o erro era que o campo estava digitado errado, era DataVencimento e eu estava colocando Vencimento. Só que dessa vez já verifiquei no Banco e os dados estao corretos, o campo se chama DataEmissao e CDC. Não sei mais o que pode ser..... :unsure: Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 23, 2007 Você fez o comando: AdoQueryDataEmi.Parameters.Clear;Tente alterando para: AdoQueryDataEmi.SQL.Clear;Ficando: procedure TFormDataEmissao.ButtonInserirDataEmiClick(Sender: TObject);beginAdoQueryDataEmi.Close;AdoQueryDataEmi.SQL.Clear;AdoQueryDataEmi.SQL.Add('Update Faturas');AdoQueryDataEmi.SQL.Add('SET Faturas.DataEmissao = ''' + FormatDateTime('dd/mm/yyyy', StrToDate(EditDataEmi.Text)) + '''');AdoQueryDataEmi.SQL.Add('where Faturas.CDC = ' + EditCdcDataEmi.Text);AdoQueryDataEmi.ExecSQL;end; Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 23, 2007 use desta forma!pelo índice do parametro! ADOQuery1.Parameters.ParamByName('nome').ParamType := ptInput;Ou, ao invés de usar o nome do parâmetro, use o indice...ADOQuery1.Parameters.Items[0].ParamType := ptInputADOQuery1.Parameters.Items[0].DataType := ftString;ADOQuery1.Parameters.Items[0].Value := 'Gerfferson Santos'; Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 23, 2007 Ei amigos, consegui resolver... Tentei fazer do jeito que estava fazendo no início... E o código ficou da seguinte forma: begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Clear; AdoQueryDataEmi.SQL.Add('Update Faturas set Faturas.DataEmissao = :DataEmissao where Faturas.CDC = :CDC'); AdoQueryDataEmi.Parameters.ParamByName('DataEmissao').Value:= StrToDate(EditDataEmi.Text); AdoQueryDataEmi.Parameters.ParamByName('CDC').Value:= EditCdcDataEmi.Text; AdoQueryDataEmi.ExecSQL; showmessage('Data de Emissão Inserida com sucesso.'); end; Acho que a diferença em relação ao primeiro código que fiz foi que coloquei o close e o clear e tmbém o ExecSQL. :) Muito obrigada pela ajuda! Mais tarde volto com mais dúvida! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Natiii Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 23, 2007 ótimo... :P Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 23, 2007 q bom natiii...no que for possível eu ajudarei e tenho certeza q o marcio tb =] Compartilhar este post Link para o post Compartilhar em outros sites
natiii 0 Denunciar post Postado Outubro 23, 2007 Ei amigos, mais uma coisinha... É que tô querendo melhorar o form, então quero que tenha uma condição if para localizar o CDC e caso o CDC não seja encontrado, mostrar a mensagem: CDC não encontrado...Só que eu não sei usar a condição com esse código de Adoquery...Gostaria de uma ajudinha de vocês... Pra entender melhor, eu tinha colocado dessa maneira, está errado, mas é só pra entender mais ou menos o que eu quero... begin AdoQueryDataEmi.Close; AdoQueryDataEmi.SQL.Clear; if (AdoQueryDataEmi.Locate('CDC', EditCdcDataEmi.Text, [])) then AdoQueryDataEmi.SQL.Add('Update Faturas set Faturas.DataEmissao = :DataEmissao where Faturas.CDC = :CDC'); AdoQueryDataEmi.Parameters.ParamByName('DataEmissao').Value:= StrToDate(EditDataEmi.Text); AdoQueryDataEmi.Parameters.ParamByName('CDC').Value:= EditCdcDataEmi.Text; AdoQueryDataEmi.ExecSQL; showmessage('Data de Emissão Inserida com sucesso.'); exit; end else showmessage('CDC não encontrado.'); end; end; Eu coloquei assim, mas está errado. Alguma idéia? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Natiii Compartilhar este post Link para o post Compartilhar em outros sites
icefusion 0 Denunciar post Postado Outubro 23, 2007 faz uma query de select antes.....e naum deixa ele fazer o update... Compartilhar este post Link para o post Compartilhar em outros sites