We tried to use the TOraSession's ExecprocEx method. It works fine, but as I see, it does not commit, however the OraSession's AutoCommit property is set to true. Clearly visible, that table locks remains in the database after a stored procedure call. But before, we didn't used the ExecProcEX, but we used a TOraStoredProc component, and it committed the changes to the database.
It is a problem for us.
We are using Delphi 2010, and the newest ODAC 9.0.2
I've tried with a very small test application, even ExecSQLEx does the same.
Code: Select all
procedure TForm244.Button1Click(Sender: TObject);
begin
ORASession1.Open;
ORASession1.AutoCommit : = True; // This is the default behavior, but I set it again. Does not matter :(
ORASession1.ExecSQLEx('update mydebug set c_ertek1= :x',['x','X']);
end;
The only solution is, (luckyli the ExecProcex is virtual), to encapsulate the inherited method call with commit rollback statements.