Erro! Quero atualizar apenas um registro e não todos!!!!!!!!

Firebird

14/04/2004

Olá amigos,
é o seguinte:

Uso D7/IBX

Tenho um DBGrid que me mostra os valores retornados de uma consulta. Quando dou um duplo clique em cima de um dos resultados, ele abre um form com as propriedades relativas ao registro selecionado, para modificação. Aí que está o problema.
Quando eu modifico este registro, ele modifica todos os outros que coincidem com a chave primária, no caso cod_material.

Como devo proceder para ele alterar apenas o registro em questão?


DmAtualiza.Trans.Active:=false;
try
 Screen.Cursor := crSqlWait;
 DmAtualiza.Trans.StartTransaction;
 DmAtualiza.QryAtualiza.Sql.Clear;
 DmAtualiza.QryAtualiza.Sql.add(´Update custo_mat_prima´);
 DmAtualiza.QryAtualiza.Sql.add(´Set cod_material = :cod_material, descricao = :Descricao, Tipo_moeda = :Tipo_moeda, ´);
 DmAtualiza.QryAtualiza.Sql.Add(´fornecedor1 = :fornecedor1, prazo1 = :prazo1, taxa1 = :taxa1, preco1 = :preco1, ´);
 DmAtualiza.QryAtualiza.Sql.Add(´custo1 = :custo1, obs = :obs´);
 DmAtualiza.QryAtualiza.Sql.Add(´Where cod_material = :cod_material´);
 DmAtualiza.QryAtualiza.ParamByName(´Cod_material´).asString := edt_cod.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Descricao´).asString := edt_descricao.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Tipo_moeda´).asString := edt_moeda.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Fornecedor1´).asString := edt_fornecedor.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Prazo1´).asString := edt_prazo.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Taxa1´).asString := edt_taxa.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Preco1´).asString := edt_preco.Text;
 DmAtualiza.QryAtualiza.ParamByName(´Custo1´).asString := edt_custo.Text;
 DmAtualiza.QryAtualiza.ParamByName(´OBS´).asString := memo_obs.Text;
 DmAtualiza.QryAtualiza.execsql;
 DmAtualiza.Trans.Commit;
except
   DmAtualiza.Trans.RollbackRetaining;
end;
Screen.Cursor:=crDefault;
messagebox(0,´Os dados foram ALTERADOS corretamente!!´,´Êxito!´,mb_ok+mb_iconquestion);
end;



Anarchybra

Anarchybra

Curtidas 0

Respostas

Xisto

Xisto

14/04/2004

experimente adicionar um campo autoincremento a tabela e fazer a localizacao para alteracao atraves deste campo, já que a chave que a
chave esta se repetindo na consulta.
[]s
Xisto


GOSTEI 0
POSTAR