Transacao Aberta

15/09/2003

0

Pessoal quando executo o codigo abaixo para inserir ou ate mesmo quando eu altero um registro da um erro dizendo que ja existe uma transacao aberta, o erro ocorre na linha do StartTransaction.

Percebi que quando eu abro o arquivo IBQConpag e automaticamente aberta uma transacao, por isso que da o erro.
se eu executar a operacao com o arquivo fechado da certo.
Alguem sabe porque disso.

obs:
Coloquei o DefalutAction do transaction = TACommitRetaining.
Presico usar o UpdateSql?

Obrigado

Try
DMT.IBTransa.StartTransaction;
DMT.IBQConpag.Sql.Clear;
DMT.IBQConpag.SQL.Add( ´INSERT INTO CONPAG ´ );
DMT.IBQConpag.SQL.Add( ´( ID_CONPAG,COD_PLA,CODIGO,TIPO_DOC,COD_FOR,VALOR)´ );
DMT.IBQConpag.SQL.Add( ´VALUES ´);
DMT.IBQConpag.SQL.Add( ´( gen_id(GEN_CONPAG,1),:COD_PLA,:CODIGO,:TIPO_DOC,:COD_FOR,:VALOR)´ )

DMT.IBQConpag.ParamByName(´COD_PLA´).AsString:=planilha;
DMT.IBQConpag.ParamByName(´CODIGO´).AsString:=MECodigoDoc.Text;
DMT.IBQConpag.ParamByName(´TIPO_DOC´).AsString:=´NF´;
DMT.IBQConpag.ParamByName(´COD_FOR´).AsString:=fornecedor;
DMT.IBQConpag.ParamByName(´VALOR´).AsFloat:=CEValor.Value;

DMT.IBQConpag.execsql;
DMT.IBTransa.Commit;
except
DMT.IBTransa.Rollback;
end;


M@rcelo

M@rcelo

Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar