summaryrefslogtreecommitdiff
path: root/packages/oracle
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-10-10 06:34:52 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-10-10 06:34:52 +0000
commit8dbe7451a02d930a7f935d44eca406f857d714bf (patch)
tree5afcd546ac161cdec636dcbb779f69b40fde5437 /packages/oracle
parentcdca55e73c018951fac48716e4118ce95e32d1f8 (diff)
downloadfpc-8dbe7451a02d930a7f935d44eca406f857d714bf.tar.gz
* Patch from LaCo to bring implementation in line with other DB dyn units (bug ID 25118)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25732 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/oracle')
-rw-r--r--packages/oracle/src/oci.inc17
1 files changed, 9 insertions, 8 deletions
diff --git a/packages/oracle/src/oci.inc b/packages/oracle/src/oci.inc
index a75dbeee0c..f8edb30b9a 100644
--- a/packages/oracle/src/oci.inc
+++ b/packages/oracle/src/oci.inc
@@ -3378,10 +3378,11 @@ uses ctypes,
{$include ociap.inc}
{$IFDEF LinkDynamically}
-Procedure InitialiseOCI(LibraryName: AnsiString = ocilib);
+Function InitialiseOCI(const LibraryName: AnsiString = ocilib): integer;
Procedure ReleaseOCI;
var OCILibraryHandle : TLibHandle;
+ OCILoadedLibrary : AnsiString;
{$ENDIF}
implementation
@@ -3392,16 +3393,16 @@ implementation
var
RefCount : integer;
- LibName : AnsiString;
-
-Procedure InitialiseOCI(LibraryName: AnsiString = ocilib);
+
+function InitialiseOCI(const LibraryName: AnsiString = ocilib): integer;
begin
inc(RefCount);
+ Result:=RefCount;
if RefCount > 1 then
begin
- if CompareText(LibName,LibraryName)<>0 then
- Raise EInOutError.CreateFmt('Can not load Oracle client library "%s". it is already loaded as "%s".',[LibraryName,LibName]);
+ if CompareText(OCILoadedLibrary,LibraryName)<>0 then
+ Raise EInOutError.CreateFmt('Can not load Oracle client library "%s". it is already loaded as "%s".',[LibraryName,OCILoadedLibrary]);
exit;
end
else
@@ -3412,7 +3413,7 @@ begin
RefCount := 0;
Raise EInOutError.CreateFmt('Can not load Oracle client library "%s". Is it installed?',[LibraryName]);
end;
- libName:=LibraryName;
+ OCILoadedLibrary:=LibraryName;
end;
{ ORL.inc}
@@ -3912,7 +3913,7 @@ begin
begin
if not UnloadLibrary(OCILibraryHandle) then
inc(RefCount);
- LibName:='';
+ OCILoadedLibrary:='';
end;
end;