fpc/fcl/db/sqldb/examples/sqldbexampleunit.pp
joost d1f1e5adf4 + added support for MySQL 5.0
+ added mysql_stmt_* calls to dyn. loaded mysql-library

git-svn-id: trunk@1800 -
2005-11-22 00:52:58 +00:00

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.