Skip to content

Commit

Permalink
'Fix'
Browse files Browse the repository at this point in the history
  • Loading branch information
glprog committed Sep 8, 2019
1 parent fbe3856 commit bfe537c
Show file tree
Hide file tree
Showing 7 changed files with 163 additions and 45 deletions.
11 changes: 5 additions & 6 deletions MiniREST.SQL.Base.pas
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
interface

uses MiniREST.SQL.Intf, MiniREST.SQL.Common, SyncObjs, {$IFNDEF FPC}Generics.Collections,
{$ELSE} Contnrs, fgl,{$IFEND} SysUtils, Classes;
{$ELSE}fgl,{$IFEND} SysUtils, Classes;

type

Expand Down Expand Up @@ -35,8 +35,8 @@ TMiniRESTSQLConnectionFactoryBase = class abstract(TInterfacedObject, IMiniRES
procedure RemoveConnectionToNotifyFree(AConnection: IMiniRESTSQLConnection);
procedure ReleaseConnection(AConnection: IMiniRESTSQLConnection); virtual;
function InternalGetconnection: IMiniRESTSQLConnection; virtual; abstract;
constructor Create(const AConnectionCount: Integer);
public
constructor Create(const AConnectionCount: Integer);
destructor Destroy; override;
function GetConnection: IMiniRESTSQLConnection;
function GetObject: TObject;
Expand All @@ -53,8 +53,8 @@ TMiniRESTSQLConnectionBase = class abstract(TInterfacedObject, IMiniRESTSQLCon
function _Release: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
function GetObject: TObject; virtual; abstract;
procedure SetOwner(AOwner: Pointer);
constructor Create(AOwner : IMiniRESTSQLConnectionFactory);
public
constructor Create(AOwner : IMiniRESTSQLConnectionFactory);
procedure StartTransaction; virtual; abstract;
procedure Commit; virtual; abstract;
procedure Rollback; virtual; abstract;
Expand Down Expand Up @@ -109,8 +109,6 @@ implementation
{ TMiniRESTSQLConnectionFactoryBase }

constructor TMiniRESTSQLConnectionFactoryBase.Create(const AConnectionCount: Integer);
var
I: Integer;
begin
FConnectionsCount := AConnectionCount;
{$IFNDEF FPC}
Expand Down Expand Up @@ -173,6 +171,7 @@ function TMiniRESTSQLConnectionFactoryBase.GetConnection: IMiniRESTSQLConnection
TMiniRESTSQLConnectionBase(Result).FEstaNoPool := False;

finally
FSemaphore.Release(1);
FCriticalSection.Leave;
end;
{$IFEND}
Expand Down Expand Up @@ -257,7 +256,7 @@ function TMiniRESTSQLConnectionBase._Release: Integer; {$IFNDEF WINDOWS}cdecl{$E
begin
if (FRefCount = 1) and (FOwner <> nil) and (not FEstaNoPool) then
TMiniRESTSQLConnectionFactoryBase(FOwner).ReleaseConnection(Self);
Result := inherited;
Result := inherited _Release;
end;

{ TMiniRESTSQLPrimaryKeyInfo }
Expand Down
2 changes: 1 addition & 1 deletion MiniREST.SQL.Common.pas
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

interface

uses SysUtils, DB {$IFNDEF FPC}, Rtti{$ENDIF};
uses SysUtils, Variants{$IFNDEF FPC},DB, Rtti{$ENDIF};

type
TMiniRESTSQLDatabaseType = (dbtUnknown, dbtFirebird);
Expand Down
6 changes: 2 additions & 4 deletions MiniREST.SQL.SQLDb.pas
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
interface

uses Classes, SysUtils, MiniREST.SQL.Intf, MiniREST.SQL.Base, MiniREST.SQL.Common, DB,
sqldb, IBConnection, fpjsondataset, fgl;
sqldb, IBConnection, fgl;

type
TLogEvent = procedure (Sender : TSQLConnection; EventType : TDBEventType; Const Msg : String);
Expand Down Expand Up @@ -224,7 +224,6 @@ procedure TMiniRESTSQLConnectionSQLDb.Connect;
LStringList: TStringList;
LName: string;
I: Integer;
LValue: string;
begin
LStringList := TStringList.Create;
try
Expand Down Expand Up @@ -404,7 +403,6 @@ function TMiniRESTSQLQuerySQLDb.ParamByName(const AParamName: string): IMiniREST
function TMiniRESTSQLQuerySQLDb.AddParam(AParam: IMiniRESTSQLParam): IMiniRESTSQLQuery;
var
LParam: IMiniRESTSQLParam;
LAchou: Boolean;
begin
//FParams.AddOrSetData(AParam.GetParamName, AParam);
for LParam in FParams do
Expand Down Expand Up @@ -484,7 +482,6 @@ procedure TMiniRESTSQLConnectionFactorySQLDb.ReleaseConnection(AConnection: IMin
try
FQueue.Add(AConnection);
TMiniRESTSQLConnectionBaseCrack(AConnection.GetObject).FEstaNoPool := True;
RemoveConnectionToNotifyFree(AConnection);
Inc(FAvailableConnections);
finally
RTLeventSetEvent(FConnectionReleaseEvent);
Expand All @@ -500,6 +497,7 @@ function TMiniRESTSQLConnectionParamsSQLDb.GetLogEvent: TLogEvent;
function TMiniRESTSQLConnectionParamsSQLDb.SetLogEvent(const ALogEvent: TLogEvent): IMiniRESTSQLConnectionParamsSQLDb;
begin
FLogEvent := ALogEvent;
Result := Self;
end;

procedure TMiniRESTSQLConnectionSQLDb.SetMiniRESTSQLParamToSQLParam(AMiniRESTSQLParam: IMiniRESTSQLParam; ASQLParam: TParam);
Expand Down
9 changes: 5 additions & 4 deletions unittest/SQL/MiniRESTSQLTest.lpi
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<Version Value="11"/>
<PathDelim Value="\"/>
<General>
<SessionStorage Value="InProjectDir"/>
Expand All @@ -17,9 +17,10 @@
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
<FormatVersion Value="2"/>
<Modes Count="1">
<Mode0 Name="default"/>
</Modes>
</RunParams>
<RequiredPackages Count="3">
<Item1>
Expand Down
170 changes: 146 additions & 24 deletions unittest/SQL/MiniRESTSQLTest.lps
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,29 @@
<Filename Value="test.sql.sqldb.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="Test.SQL.SQLDb"/>
<EditorIndex Value="-1"/>
<TopLine Value="29"/>
<CursorPos X="43" Y="35"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="25"/>
<CursorPos X="38" Y="37"/>
<UsageCount Value="222"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<TopLine Value="329"/>
<CursorPos Y="347"/>
<EditorIndex Value="4"/>
<TopLine Value="27"/>
<CursorPos X="33" Y="36"/>
<UsageCount Value="222"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="..\..\MiniREST.SQL.Common.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<TopLine Value="78"/>
<CursorPos X="36" Y="90"/>
<EditorIndex Value="2"/>
<CursorPos X="24" Y="5"/>
<UsageCount Value="222"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="..\..\MiniREST.SQL.Firebird.pas"/>
Expand All @@ -57,19 +60,19 @@
<Unit6>
<Filename Value="Test.SQL.Default.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<TopLine Value="417"/>
<CursorPos X="35" Y="425"/>
<EditorIndex Value="3"/>
<TopLine Value="4"/>
<CursorPos X="32" Y="14"/>
<UsageCount Value="222"/>
<Loaded Value="True"/>
</Unit6>
<Unit7>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="-1"/>
<TopLine Value="289"/>
<CursorPos Y="302"/>
<TopLine Value="107"/>
<CursorPos X="33" Y="116"/>
<UsageCount Value="219"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\objpas\classes\lists.inc"/>
Expand Down Expand Up @@ -157,10 +160,128 @@
<UsageCount Value="105"/>
</Unit19>
</Units>
<General>
<ActiveWindowIndexAtStart Value="-1"/>
</General>
<JumpHistory HistoryIndex="-1"/>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="..\..\MiniREST.SQL.Common.pas"/>
<Caret Line="5" Column="24"/>
</Position1>
<Position2>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="341" Column="22" TopLine="342"/>
</Position2>
<Position3>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="14" Column="25" TopLine="4"/>
</Position3>
<Position4>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="84" Column="33" TopLine="68"/>
</Position4>
<Position5>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="85" Column="25" TopLine="69"/>
</Position5>
<Position6>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="344" Column="46" TopLine="331"/>
</Position6>
<Position7>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="466" Column="27" TopLine="458"/>
</Position7>
<Position8>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="14" Column="32" TopLine="4"/>
</Position8>
<Position9>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="498" Column="27" TopLine="498"/>
</Position9>
<Position10>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="39" Column="57" TopLine="29"/>
</Position10>
<Position11>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="125" Column="53" TopLine="104"/>
</Position11>
<Position12>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="57" Column="64" TopLine="46"/>
</Position12>
<Position13>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="36" Column="32" TopLine="28"/>
</Position13>
<Position14>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="209" Column="62" TopLine="205"/>
</Position14>
<Position15>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="257" Column="64" TopLine="241"/>
</Position15>
<Position16>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="36" Column="32" TopLine="28"/>
</Position16>
<Position17>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="9" Column="8"/>
</Position17>
<Position18>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="14" Column="32" TopLine="4"/>
</Position18>
<Position19>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="36" Column="33" TopLine="28"/>
</Position19>
<Position20>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="226" Column="14" TopLine="217"/>
</Position20>
<Position21>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="405" Column="29" TopLine="396"/>
</Position21>
<Position22>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="116" Column="33" TopLine="107"/>
</Position22>
<Position23>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="500" Column="18" TopLine="488"/>
</Position23>
<Position24>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="14" Column="32" TopLine="4"/>
</Position24>
<Position25>
<Filename Value="..\..\MiniREST.SQL.Base.pas"/>
<Caret Line="36" Column="33" TopLine="27"/>
</Position25>
<Position26>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="116" Column="33" TopLine="107"/>
</Position26>
<Position27>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="7" Column="22"/>
</Position27>
<Position28>
<Filename Value="test.sql.sqldb.pas"/>
<Caret Line="34" Column="37" TopLine="19"/>
</Position28>
<Position29>
<Filename Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Caret Line="116" Column="33" TopLine="107"/>
</Position29>
<Position30>
<Filename Value="Test.SQL.Default.pas"/>
<Caret Line="14" Column="32" TopLine="4"/>
</Position30>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>
<Modes Count="0" ActiveMode="default"/>
Expand Down Expand Up @@ -190,23 +311,23 @@
<WatchKind Value="wpkWrite"/>
<Source Value="..\..\MiniREST.SQL.Base.pas"/>
<InitialEnabled Value="False"/>
<Line Value="145"/>
<Line Value="143"/>
</Item3>
<Item4>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<InitialEnabled Value="False"/>
<Line Value="256"/>
<Line Value="255"/>
</Item4>
<Item5>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<InitialEnabled Value="False"/>
<Line Value="257"/>
<Line Value="256"/>
</Item5>
<Item6>
<Kind Value="bpkSource"/>
Expand All @@ -229,7 +350,8 @@
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="..\..\MiniREST.SQL.SQLDb.pas"/>
<Line Value="350"/>
<InitialEnabled Value="False"/>
<Line Value="349"/>
</Item8>
</BreakPoints>
<Watches Count="6">
Expand Down
Loading

0 comments on commit bfe537c

Please sign in to comment.