Browse Source

- Changed for dyn.linking
- Made the query read-only

joost 20 years ago
parent
commit
fa3ce88bbd
1 changed files with 6 additions and 17 deletions
  1. 6 17
      fcl/db/sqldb/testsqldb.pp

+ 6 - 17
fcl/db/sqldb/testsqldb.pp

@@ -2,10 +2,6 @@ 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)
@@ -23,15 +19,11 @@ program testsqldb;
 
 {$mode objfpc}{$H+}
 
-{$define pqconnection}
-{$define MySQLConnection}
-{$define IBConnection}
-
 uses
   Classes,
-{$ifdef pqconnection}     pqconnection, {$endif}
-{$ifdef MySQLConnection}  mysql4conn, {$endif}
-{$ifdef IBConnection}     IBConnection, {$endif}
+  pqconnection,
+  mysql4conn,
+  IBConnection,
   sqldb;
 
 var connection  : tSQLConnection;
@@ -42,15 +34,10 @@ var connection  : tSQLConnection;
 
 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);
@@ -68,6 +55,8 @@ begin
     begin
       SQL.clear;
       sql.add('select * from ' + paramstr(3));
+      ReadOnly := True; // If the query is writeable, a transaction must be assigned
+                        // to the database.
       open;
 
       while not eof do