fpc/packages/fcl-db/examples/loadlibdemo.pp
michael 53c03717d5 * SQL DB loader implemented
git-svn-id: trunk@22163 -
2012-08-21 19:41:51 +00:00

87 lines
1.8 KiB
ObjectPascal

program loadlibdemo;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
sysutils, Classes, sqldb,sqldblib,
pqconnection,
ibconnection,
mysql55conn,
mysql51conn,
mysql50conn,
mysql41conn,
mysql40conn;
Procedure List;
Var
S : TStringList;
I : Integer;
begin
S:=TStringList.Create;
try
getConnectionList(S);
Writeln('Available connection types:');
For I:=0 to S.Count-1 do
Writeln(S[i],', Default library name: ',GetConnectionDef(S[i]).DefaultLibraryName);
finally
S.free;
end;
end;
Procedure LoadLib(CT,LN : String);
Var
D : String;
begin
With TSQLDBLibraryLoader.Create(Nil) do
try
ConnectionType:=CT;
D:=LibraryName;
if (LN<>'') then
LibraryName:=LN;
Writeln('Loading library for connector',ct,' (default: ',D,', actual:', LibraryName,')');
try
LoadLibrary;
except
On E : Exception do
begin
Writeln('Error loading library : ',E.Message);
Exit;
end;
end;
Writeln('UnLoading library for connector',ct,' (default: ',D,', actual:', LibraryName,')');
try
UnLoadLibrary;
except
On E : Exception do
Writeln('Error unloading library : ',E.Message);
end;
finally
Free;
end;
end;
begin
if (ParamCount<1) or (paramcount>2) then
begin
Writeln('Usage : ');
Writeln('loadlibdemo list');
Writeln(' - lists all connection types');
Writeln('loadlibdemo conntype');
Writeln(' - Load default library for given connection type');
Writeln('loadlibdemo conntype libname');
Writeln(' - Load alternative library for given connection type');
end
else if (ParamStr(1)='list') then
List
else
LoadLib(Paramstr(1),ParamStr(2));
end.