mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-24 02:43:27 +01:00
126 lines
3.6 KiB
ObjectPascal
126 lines
3.6 KiB
ObjectPascal
(******************************************************************************
|
|
* *
|
|
* (c) 2005 CNOC v.o.f. *
|
|
* *
|
|
* File: SqldbExampleUnit.pp *
|
|
* Author: Joost van der Sluis (joost@cnoc.nl) *
|
|
* Description: This unit is used by the SQLdb examples *
|
|
* License: GPL *
|
|
* *
|
|
******************************************************************************)
|
|
unit SqldbExampleUnit;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes,
|
|
sqldb, pqconnection, IBConnection, ODBCConn,
|
|
mysql40conn, mysql41conn, mysql50conn;
|
|
|
|
var dbtype,
|
|
dbname,
|
|
dbuser,
|
|
dbpassword : string;
|
|
|
|
Fconnection : tSQLConnection;
|
|
Ftransaction : tSQLTransaction;
|
|
Fquery : tSQLQuery;
|
|
|
|
const
|
|
FPdevNames : Array[1..8] of string = ('Florian Klämpfl', 'Carl Eric Codère',
|
|
'Daniël Mantione', 'Jonas Maebe', 'Michael Van Canneyt',
|
|
'Peter Vreman', 'Pierre Muller', 'Marco van de Voort'
|
|
);
|
|
FPdevEmails : Array[1..8] of string = ('florian@freepascal.org', 'ccodere@spamidontlike.ieee.org',
|
|
'd.s.p.mantione@twi.tudelft.nl', 'jonas@SPAM.freepascal.ME.org.NOT', 'michael@freepascal.org',
|
|
'peter@freepascal.org', 'muller@cerbere.u-strasbg.fr', 'marcov@stack.nl'
|
|
);
|
|
// I know, this results in bogus-values...
|
|
FPdevBirthDates : Array[1..8] of TDateTime = (1-1-1991,2-2-1992,
|
|
3-3-1993, 4-4-1994, 5-5-1995,
|
|
6-6-1996, 7-7-1997, 8-8-1998
|
|
);
|
|
|
|
|
|
procedure ExitWithError(s : string);
|
|
procedure ReadIniFile;
|
|
|
|
procedure CreateFConnection;
|
|
procedure CreateFTransaction;
|
|
procedure CreateFQuery;
|
|
|
|
implementation
|
|
|
|
uses
|
|
inifiles;
|
|
|
|
procedure ExitWithError(s : string);
|
|
|
|
begin
|
|
writeln(s);
|
|
writeln('Execution aborted');
|
|
halt;
|
|
end;
|
|
|
|
procedure ReadIniFile;
|
|
|
|
var IniFile : TIniFile;
|
|
|
|
begin
|
|
IniFile := TIniFile.Create('database.ini');
|
|
dbtype := IniFile.ReadString('Database','Type','');
|
|
dbname := IniFile.ReadString('Database','Name','');
|
|
dbuser := IniFile.ReadString('Database','User','');
|
|
dbpassword := IniFile.ReadString('Database','Password','');
|
|
IniFile.Free;
|
|
end;
|
|
|
|
procedure CreateFConnection;
|
|
|
|
begin
|
|
if dbtype = 'mysql40' then Fconnection := tMySQL40Connection.Create(nil);
|
|
if dbtype = 'mysql41' then Fconnection := tMySQL41Connection.Create(nil);
|
|
if dbtype = 'mysql50' then Fconnection := tMySQL50Connection.Create(nil);
|
|
if dbtype = 'postgresql' then Fconnection := tpqConnection.Create(nil);
|
|
if dbtype = 'interbase' then Fconnection := tIBConnection.Create(nil);
|
|
if dbtype = 'odbc' then Fconnection := tODBCConnection.Create(nil);
|
|
|
|
if not assigned(Fconnection) then ExitWithError('Invalid database-type, check if a valid database-type was provided in the file ''database.ini''');
|
|
|
|
with Fconnection do
|
|
begin
|
|
DatabaseName := dbname;
|
|
UserName := dbuser;
|
|
Password := dbpassword;
|
|
open;
|
|
end;
|
|
end;
|
|
|
|
procedure CreateFTransaction;
|
|
|
|
begin
|
|
Ftransaction := tsqltransaction.create(nil);
|
|
with Ftransaction do
|
|
begin
|
|
database := Fconnection;
|
|
StartTransaction;
|
|
end;
|
|
end;
|
|
|
|
procedure CreateFQuery;
|
|
|
|
begin
|
|
Fquery := TSQLQuery.create(nil);
|
|
with Fquery do
|
|
begin
|
|
database := Fconnection;
|
|
transaction := Ftransaction;
|
|
end;
|
|
end;
|
|
|
|
|
|
end.
|
|
|