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;
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)