Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

natiii

[Resolvido] Inserir Dado no banco, pesquisando anteriormente capo

Recommended Posts

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

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

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

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

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

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

faz uma query de select antes.....e naum deixa ele fazer o update...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.