Hello,
If oracle session has been killed, reconnect occurs when I set TSQLStoredProc.ProcedureName
Found this http://forums.devart.com/viewtopic.php? ... ect#p92780
To disable auto-reconnecting to the server, you should set the Reconnect parameter to False
SQLConnection1.Params.Values['Reconnect'] := 'False';
but that does not work for me
version 5.1.3.0 delphi xe2
Thanks
Cannot disable auto reconnect
Re: Cannot disable auto reconnect
Hello,
The Reconnect parameter is only responsible for connection when the connection is broken. As I wrote earlier, the error occurring when setting a procedure name is restrained inside DBExpress in the TCustomSQLDataSet.SetParamsFromProcedure method and is not transmitted to the outside.
P.S. dbExpress driver for Oracle 6.7.1
The Reconnect parameter is only responsible for connection when the connection is broken. As I wrote earlier, the error occurring when setting a procedure name is restrained inside DBExpress in the TCustomSQLDataSet.SetParamsFromProcedure method and is not transmitted to the outside.
P.S. dbExpress driver for Oracle 6.7.1
Re: Cannot disable auto reconnect
Connection is broken (session is killed from another session)
Reconnect parameter is set to False
but connection is established again
is there a way to prevent reconnectiong? what do i do wrong?
Reconnect parameter is set to False
but connection is established again
is there a way to prevent reconnectiong? what do i do wrong?
Re: Cannot disable auto reconnect
We can't reproduce this behavior on the latest driver version 6.7.11. Please execute the following code and let us know the result.
Code: Select all
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils,
SqlExpr,
DB,
DBXDevartOracle;
var
SQLConnection, SQLConnectionKill: TSQLConnection;
SQLQueryKill: TSQLQuery;
SQLStoredProc: TSQLStoredProc;
begin
SQLConnection := TSQLConnection.Create(nil);
try
SQLConnection.LibraryName := 'dbexpoda40.dll';
SQLConnection.DriverName := 'DevartOracle';
SQLConnection.GetDriverFunc := 'getSQLDriverORA';
SQLConnection.VendorLib := 'oci.dll';
SQLConnection.Params.Values['Reconnect'] := 'False';
SQLConnection.LoginPrompt := false;
SQLConnection.Params.Add('Database=orcl');
SQLConnection.Params.Add('User_Name=scott');
SQLConnection.Params.Add('Password=tiger');
SQLConnection.Connected := true;
SQLStoredProc := TSQLStoredProc.Create(nil);
try
SQLStoredProc.SQLConnection := SQLConnection;
SQLConnectionKill := TSQLConnection.Create(nil);
try
SQLConnectionKill.LibraryName := 'dbexpoda40.dll';
SQLConnectionKill.DriverName := 'DevartOracle';
SQLConnectionKill.GetDriverFunc := 'getSQLDriverORA';
SQLConnectionKill.VendorLib := 'oci.dll';
SQLConnectionKill.LoginPrompt := false;
SQLConnectionKill.Params.Add('Database=orcl');
SQLConnectionKill.Params.Add('User_Name=sys');
SQLConnectionKill.Params.Add('Password=********');
SQLConnectionKill.Params.Add('RoleName=SYSDBA');
SQLConnectionKill.Connected := True;
SQLQueryKill := TSQLQuery.Create(nil);
SQLQueryKill.SQLConnection := SQLConnectionKill;
SQLQueryKill.SQL.Text := 'select sid||'',''||serial#||'',@''||inst_id from gv$session where username=''SCOTT''';
SQLQueryKill.Open;
SQLConnectionKill.ExecuteDirect('alter system kill session ''' + SQLQueryKill.Fields[0].AsString + '''');
SQLQueryKill.Close;
try
SQLStoredProc.StoredProcName := 'SP_TEST';
except
on E: Exception do
Writeln(e.Message);
end;
SQLQueryKill.Open;
if not SQLQueryKill.IsEmpty then
Writeln('Error')
else
Writeln('Ok')
finally
SQLConnectionKill.Free;
end;
finally
SQLStoredProc.Free;
end;
finally
SQLConnection.Free;
Readln;
end;
end.
Re: Cannot disable auto reconnect
That works fine on the version 5.1.3
we found out that the problem appeared when LoadParamsOnConnect parameter had been set to True
Thank you very much!
we found out that the problem appeared when LoadParamsOnConnect parameter had been set to True
Thank you very much!
Re: Cannot disable auto reconnect
glad to see that you solved the problem. If you have any other questions, feel free to contact us