|
@@ -165,12 +165,15 @@ var dbtype,
|
|
|
|
|
|
|
|
|
|
procedure InitialiseDBConnector;
|
|
procedure InitialiseDBConnector;
|
|
|
|
+procedure FreeDBConnector;
|
|
|
|
|
|
implementation
|
|
implementation
|
|
|
|
|
|
uses
|
|
uses
|
|
inifiles;
|
|
inifiles;
|
|
|
|
|
|
|
|
+var DBConnectorRefCount: integer;
|
|
|
|
+
|
|
constructor TDBConnector.create;
|
|
constructor TDBConnector.create;
|
|
begin
|
|
begin
|
|
CreateFieldDataset;
|
|
CreateFieldDataset;
|
|
@@ -233,6 +236,7 @@ procedure InitialiseDBConnector;
|
|
var DBConnectorClass : TPersistentClass;
|
|
var DBConnectorClass : TPersistentClass;
|
|
i : integer;
|
|
i : integer;
|
|
begin
|
|
begin
|
|
|
|
+ if DBConnectorRefCount>0 then exit;
|
|
testValues[ftString] := testStringValues;
|
|
testValues[ftString] := testStringValues;
|
|
testValues[ftFixedChar] := testStringValues;
|
|
testValues[ftFixedChar] := testStringValues;
|
|
for i := 0 to testValuesCount-1 do
|
|
for i := 0 to testValuesCount-1 do
|
|
@@ -256,6 +260,14 @@ begin
|
|
if assigned(DBConnectorClass) then
|
|
if assigned(DBConnectorClass) then
|
|
DBConnector := TDBConnectorClass(DBConnectorClass).create
|
|
DBConnector := TDBConnectorClass(DBConnectorClass).create
|
|
else Raise Exception.Create('Unknown db-connector specified');
|
|
else Raise Exception.Create('Unknown db-connector specified');
|
|
|
|
+ inc(DBConnectorRefCount);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure FreeDBConnector;
|
|
|
|
+begin
|
|
|
|
+ dec(DBConnectorRefCount);
|
|
|
|
+ if DBConnectorRefCount=0 then
|
|
|
|
+ FreeAndNil(DBConnector);
|
|
end;
|
|
end;
|
|
|
|
|
|
{ TTestDataLink }
|
|
{ TTestDataLink }
|
|
@@ -340,10 +352,11 @@ end;
|
|
|
|
|
|
procedure TDBBasicsTestSetup.OneTimeTearDown;
|
|
procedure TDBBasicsTestSetup.OneTimeTearDown;
|
|
begin
|
|
begin
|
|
- FreeAndNil(DBConnector);
|
|
|
|
|
|
+ FreeDBConnector;
|
|
end;
|
|
end;
|
|
|
|
|
|
initialization
|
|
initialization
|
|
ReadIniFile;
|
|
ReadIniFile;
|
|
|
|
+ DBConnectorRefCount:=0;
|
|
end.
|
|
end.
|
|
|
|
|