diff --git a/fcl/db/sqldb/testsqldb.pp b/fcl/db/sqldb/testsqldb.pp new file mode 100644 index 0000000000..f0ce2bf32d --- /dev/null +++ b/fcl/db/sqldb/testsqldb.pp @@ -0,0 +1,87 @@ +program testsqldb; + +{ A very simple example for sqldb, written by Joost van der Sluis (2004) + + Usage: + remove the defines for the databases whose clients aren't installed, or + the linking will fail. + + The following parameters are used, in given order: + + parameter1 = databasetype (mysql,interbase,postgresql - case sensitive) + parameter2 = databasename + parameter3 = tablename + parameter4 = username, optional + parameter5 = password, optional + + This example will only display the data for each record in the given table. + Examples: + + ./testsqldb postgresql testdb fpdev + ./testsqldb interbase /home/firebird/dbtest.fdb sysdba 123456 +} + +{$mode objfpc}{$H+} + +{$define pqconnection} +{$define MySQLConnection} +{$define IBConnection} + +uses + Classes, +{$ifdef pqconnection} pqconnection, {$endif} +{$ifdef MySQLConnection} mysql4conn, {$endif} +{$ifdef IBConnection} IBConnection, {$endif} + sqldb; + +var connection : tSQLConnection; + transaction : tSQLTransaction; + query : tSQLQuery; + tel : integer; + dbtype : string; + +begin + dbtype := paramstr(1); +{$ifdef MySQLConnection} + if dbtype = 'mysql' then connection := tMySQLConnection.Create(nil); +{$endif} +{$ifdef pqconnection} + if dbtype = 'postgresql' then connection := tpqConnection.Create(nil); +{$endif} +{$ifdef IBConnection} + if dbtype = 'interbase' then connection := tIBConnection.Create(nil); +{$endif} + if not assigned(connection) then exit; // probably an invalid database type given + + connection.DatabaseName := paramstr(2); + connection.UserName := paramstr(4); + connection.Password := paramstr(5); + connection.open; + + transaction := tsqltransaction.create(nil); + transaction.database := connection; + + query := tsqlquery.Create(nil); + query.DataBase := connection; + query.transaction := transaction; + with query do + begin + SQL.clear; + sql.add('select * from ' + paramstr(3)); + open; + + while not eof do + begin + for tel := 0 to query.FieldCount -1 do + write(fields[tel].asstring+' '); + writeln; + next; + end; + + close; + query.free; + end; + transaction.free; + connection.free; +end. +