Boa tarde pessoal
Estou com um problema com o update no postgresql, ocorreram poucas vezes este ano, mas causa um grande estrago.
o cliente altera um cadastro e no momento de salvar o postgresql salva todos os registros da tabela com o mesmo dado
eu estou usando o postgre 9.5 com sqlrdd, e costumo usar assim:
clSql := UPDATE "sup0007" SET ;
CodEmp = ::avCarrega[1]:cCodEmp ,;
NomEmp = ::avCarrega[1]:cNomEmp ,;
FanEmp = ::avCarrega[1]:cFanEmp ,;
EndEmp = ::avCarrega[1]:cEndEmp ,;
RedEmp = ::avCarrega[1]:cRedEmp ,;
NumCep = ::avCarrega[1]:cNumCep ,;
Bairro = ::avCarrega[1]:cBairro ,;
TelEmp = ::avCarrega[1]:cTelEmp ,;
TelEm2 = ::avCarrega[1]:cTelEm2 ,;
Ativar = clAtivar ,;
UltUsu = oCarVar:cUser ,;
UltMod = date() ,;
Operad = oCarVar:cUser ,;
Updated= date() ;
WHERE sr_recno = ?
alParam := {::avCarrega[1]:SR_RECNO}
SR_BeginTransaction()
Try
oSql := SR_GetConnection()
apCode := SR_SQLParse( clSql, @nErr, @nPos )
cResu := SR_SQLCodeGen( apCode, alParam, oSql:nSystemID )
nErr := oSql:Exec( cResu )
este é um exemplo usando a sqlrdd pra converter o codigo, mas tenho outro caso que uso o comando direto no oSql:Exec sem passar pelo sr_sqlcodegen e também deu o problema.
este comando acima, gera o comando abaixo para o postgre
UPDATE
"sup0007"
SET
"codemp" = E'3000286',
"nomemp" = E'CONTE COMIGO',
"fanemp" = E'CONTE',
"endemp" = E'RUA BEABA,98',
"redemp" = ' ',
"numcep" = E'89837-000',
"bairro" = E'CENTRO',
"telemp" = E'3999999',
"telem2" = E'89999427',
"ativar" = E'FF',
"ultusu" = E'AUGUSTO',
"ultmod" = E'2019-10-01',
"operad" = E'AUGUSTO',
"updated" = E'2019-10-01' WHERE "sr_recno" = 1595
Não vejo erro no comando, isto ocorre muitas vezes em todo meu sistema, mas este erro ocorreu poucas vezes.
Alguém tem ideia do que pode ser? Algo na Tabela, no banco, etc.