Erro! Quero atualizar apenas um registro e não todos!!!!!!!!
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?
é 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
Curtidas 0
Respostas
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
chave esta se repetindo na consulta.
[]s
Xisto
GOSTEI 0