forked from danieleteti/loggerpro
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from danieleteti/v2.0
Merge Changes from head repository
- Loading branch information
Showing
11 changed files
with
1,647 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
227 changes: 227 additions & 0 deletions
227
samples/150_DB_appender_firedac/FDConnectionConfigU.pas
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,227 @@ | ||
unit FDConnectionConfigU; | ||
|
||
interface | ||
|
||
const | ||
CON_DEF_NAME = 'LoggerProConnectionX'; | ||
|
||
procedure CreateFirebirdPrivateConnDef(AIsPooled: boolean); | ||
procedure CreateInterbasePrivateConnDef(AIsPooled: boolean); | ||
procedure CreateMySQLPrivateConnDef(AIsPooled: boolean); | ||
procedure CreateMSSQLServerPrivateConnDef(AIsPooled: boolean); | ||
procedure CreatePostgresqlPrivateConnDef(AIsPooled: boolean); | ||
procedure CreateSqlitePrivateConnDef(AIsPooled: boolean); | ||
|
||
implementation | ||
|
||
uses | ||
System.Classes, | ||
System.IOUtils, | ||
FireDAC.Comp.Client, | ||
FireDAC.Moni.Base, | ||
FireDAC.Moni.FlatFile, | ||
FireDAC.Stan.Intf, | ||
FireDAC.Phys.PG | ||
; | ||
|
||
|
||
var | ||
gFlatFileMonitor: TFDMoniFlatFileClientLink = nil; | ||
|
||
procedure CreateMySQLPrivateConnDef(AIsPooled: boolean); | ||
var | ||
LParams: TStringList; | ||
begin | ||
{ | ||
docker run --detach --env MARIADB_USER=example-user --env MARIADB_PASSWORD=my_cool_secret --env MARIADB_ROOT_PASSWORD=root -p 3306:3306 mariadb:latest | ||
} | ||
|
||
LParams := TStringList.Create; | ||
try | ||
LParams.Add('Database=activerecorddb'); | ||
LParams.Add('Protocol=TCPIP'); | ||
LParams.Add('Server=localhost'); | ||
LParams.Add('User_Name=root'); | ||
LParams.Add('Password=root'); | ||
LParams.Add('TinyIntFormat=Boolean'); { it's the default } | ||
LParams.Add('CharacterSet=utf8mb4'); // not utf8!! | ||
LParams.Add('MonitorBy=FlatFile'); | ||
if AIsPooled then | ||
begin | ||
LParams.Add('Pooled=True'); | ||
LParams.Add('POOL_MaximumItems=100'); | ||
end | ||
else | ||
begin | ||
LParams.Add('Pooled=False'); | ||
end; | ||
FDManager.AddConnectionDef(CON_DEF_NAME, 'MySQL', LParams); | ||
finally | ||
LParams.Free; | ||
end; | ||
end; | ||
|
||
procedure CreateMSSQLServerPrivateConnDef(AIsPooled: boolean); | ||
var | ||
LParams: TStringList; | ||
begin | ||
{ | ||
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=!SA_password!" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest | ||
} | ||
|
||
// [ACTIVERECORDB_SQLSERVER] | ||
// Database=activerecorddb | ||
// OSAuthent=Yes | ||
// Server=DANIELETETI\SQLEXPRESS | ||
// DriverID=MSSQL | ||
// | ||
|
||
LParams := TStringList.Create; | ||
try | ||
LParams.Add('Database=activerecorddb'); | ||
LParams.Add('OSAuthent=Yes'); | ||
LParams.Add('Server=DANIELETETI\SQLEXPRESS'); | ||
if AIsPooled then | ||
begin | ||
LParams.Add('Pooled=True'); | ||
LParams.Add('POOL_MaximumItems=100'); | ||
end | ||
else | ||
begin | ||
LParams.Add('Pooled=False'); | ||
end; | ||
FDManager.AddConnectionDef(CON_DEF_NAME, 'MSSQL', LParams); | ||
finally | ||
LParams.Free; | ||
end; | ||
end; | ||
|
||
procedure CreateFirebirdPrivateConnDef(AIsPooled: boolean); | ||
var | ||
LParams: TStringList; | ||
begin | ||
LParams := TStringList.Create; | ||
try | ||
LParams.Add('Database=' + TPath.GetFullPath(TPath.Combine('..\..', | ||
'data\ACTIVERECORDDB.FDB'))); | ||
LParams.Add('Protocol=TCPIP'); | ||
LParams.Add('Server=localhost'); | ||
LParams.Add('User_Name=sysdba'); | ||
LParams.Add('Password=masterkey'); | ||
LParams.Add('CharacterSet=UTF8'); | ||
if AIsPooled then | ||
begin | ||
LParams.Add('Pooled=True'); | ||
LParams.Add('POOL_MaximumItems=100'); | ||
end | ||
else | ||
begin | ||
LParams.Add('Pooled=False'); | ||
end; | ||
FDManager.AddConnectionDef(CON_DEF_NAME, 'FB', LParams); | ||
finally | ||
LParams.Free; | ||
end; | ||
end; | ||
|
||
procedure CreateInterbasePrivateConnDef(AIsPooled: boolean); | ||
var | ||
LParams: TStringList; | ||
begin | ||
LParams := TStringList.Create; | ||
try | ||
LParams.Add('Database=' + TPath.GetFullPath(TPath.Combine('..\..', | ||
'data\ACTIVERECORDDB.IB'))); | ||
LParams.Add('Protocol=TCPIP'); | ||
LParams.Add('Server=localhost'); | ||
LParams.Add('User_Name=sysdba'); | ||
LParams.Add('Password=masterkey'); | ||
LParams.Add('CharacterSet=UTF8'); | ||
if AIsPooled then | ||
begin | ||
LParams.Add('Pooled=True'); | ||
LParams.Add('POOL_MaximumItems=100'); | ||
end | ||
else | ||
begin | ||
LParams.Add('Pooled=False'); | ||
end; | ||
FDManager.AddConnectionDef(CON_DEF_NAME, 'IB', LParams); | ||
finally | ||
LParams.Free; | ||
end; | ||
end; | ||
|
||
procedure CreatePostgresqlPrivateConnDef(AIsPooled: boolean); | ||
var | ||
LParams: TStringList; | ||
begin | ||
LParams := TStringList.Create; | ||
try | ||
LParams.Add('Database=activerecorddb'); | ||
LParams.Add('Protocol=TCPIP'); | ||
LParams.Add('Server=localhost'); | ||
LParams.Add('User_Name=postgres'); | ||
LParams.Add('Password=postgres'); | ||
//LParams.Add('MonitorBy=FlatFile'); | ||
|
||
// https://quality.embarcadero.com/browse/RSP-19755?jql=text%20~%20%22firedac%20guid%22 | ||
LParams.Add('GUIDEndian=Big'); | ||
if AIsPooled then | ||
begin | ||
LParams.Add('Pooled=True'); | ||
LParams.Add('POOL_MaximumItems=100'); | ||
end | ||
else | ||
begin | ||
LParams.Add('Pooled=False'); | ||
end; | ||
FDManager.AddConnectionDef(CON_DEF_NAME, 'PG', LParams); | ||
finally | ||
LParams.Free; | ||
end; | ||
end; | ||
|
||
procedure CreateSqlitePrivateConnDef(AIsPooled: boolean); | ||
var | ||
LParams: TStringList; | ||
lFName: string; | ||
begin | ||
LParams := TStringList.Create; | ||
try | ||
lFName := TPath.Combine(TPath.GetDirectoryName(ParamStr(0)), | ||
'..\..\data\activerecorddb.db'); | ||
LParams.Add('Database=' + lFName); | ||
LParams.Add('StringFormat=Unicode'); | ||
if AIsPooled then | ||
begin | ||
LParams.Add('Pooled=True'); | ||
LParams.Add('POOL_MaximumItems=100'); | ||
end | ||
else | ||
begin | ||
LParams.Add('Pooled=False'); | ||
end; | ||
FDManager.AddConnectionDef(CON_DEF_NAME, 'SQLite', LParams); | ||
finally | ||
LParams.Free; | ||
end; | ||
end; | ||
|
||
initialization | ||
|
||
gFlatFileMonitor := TFDMoniFlatFileClientLink.Create(nil); | ||
gFlatFileMonitor.FileColumns := [tiRefNo, tiTime, tiThreadID, tiClassName, tiObjID, tiMsgText]; | ||
gFlatFileMonitor.EventKinds := [ | ||
ekVendor, ekConnConnect, ekLiveCycle, ekError, ekConnTransact, | ||
ekCmdPrepare, ekCmdExecute, ekCmdDataIn, ekCmdDataOut]; | ||
gFlatFileMonitor.ShowTraces := False; | ||
gFlatFileMonitor.FileAppend := False; | ||
gFlatFileMonitor.FileName := TPath.ChangeExtension(ParamStr(0), '.trace.log'); | ||
gFlatFileMonitor.Tracing := True; | ||
|
||
finalization | ||
|
||
gFlatFileMonitor.Free; | ||
|
||
end. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
object MainForm: TMainForm | ||
Left = 0 | ||
Top = 0 | ||
Caption = 'LoggerPro SAMPLE' | ||
ClientHeight = 142 | ||
ClientWidth = 584 | ||
Color = clBtnFace | ||
Font.Charset = DEFAULT_CHARSET | ||
Font.Color = clWindowText | ||
Font.Height = -11 | ||
Font.Name = 'Tahoma' | ||
Font.Style = [] | ||
Visible = True | ||
TextHeight = 13 | ||
object Button1: TButton | ||
Left = 8 | ||
Top = 8 | ||
Width = 137 | ||
Height = 57 | ||
Caption = 'DEBUG' | ||
TabOrder = 0 | ||
OnClick = Button1Click | ||
end | ||
object Button2: TButton | ||
Left = 151 | ||
Top = 8 | ||
Width = 137 | ||
Height = 57 | ||
Caption = 'INFO' | ||
TabOrder = 1 | ||
OnClick = Button2Click | ||
end | ||
object Button3: TButton | ||
Left = 294 | ||
Top = 8 | ||
Width = 137 | ||
Height = 57 | ||
Caption = 'WARNING' | ||
TabOrder = 2 | ||
OnClick = Button3Click | ||
end | ||
object Button4: TButton | ||
Left = 437 | ||
Top = 8 | ||
Width = 137 | ||
Height = 57 | ||
Caption = 'ERROR' | ||
TabOrder = 3 | ||
OnClick = Button4Click | ||
end | ||
object Button5: TButton | ||
Left = 8 | ||
Top = 71 | ||
Width = 280 | ||
Height = 57 | ||
Caption = 'Multithread logging' | ||
TabOrder = 4 | ||
OnClick = Button5Click | ||
end | ||
end |
Oops, something went wrong.