MODULE SqlObxInit;
(**
project = "BlackBox"
organization = "www.oberon.ch"
contributors = "Oberon microsystems"
version = "System/Rsrc/About"
copyright = "System/Rsrc/About"
license = "Docu/BB-License"
changes = ""
issues = ""
**)
IMPORT Kernel, SqlDB;
CONST
protocol = "SqlOdbc";
id = ""; password = "";
datasource = "Test Database";
PROCEDURE Setup*;
VAR db: SqlDB.Database; res: INTEGER;
BEGIN
SqlDB.OpenDatabase(protocol, id, password, datasource, SqlDB.async, SqlDB.hideErrors, db, res);
IF db # NIL THEN
db.Exec("CREATE TABLE Companies (id INTEGER, name VARCHAR(255), ceo VARCHAR(255), employees INTEGER)");
db.Exec("CREATE TABLE Ownership (owner INTEGER, owned INTEGER, percent INTEGER)");
(* single company *)
db.Exec("INSERT INTO Companies VALUES (11, 'Test', 'Bill', 234)");
(* two companies (tree) *)
db.Exec("INSERT INTO Companies VALUES (12, 'Test', 'Bill', 234)");
db.Exec("INSERT INTO Companies VALUES (13, 'Test company AG', 'John', 45)");
db.Exec("INSERT INTO Ownership VALUES (12, 13, 100)");
(* four companies (with ring) *)
db.Exec("INSERT INTO Companies VALUES (14, 'Test', 'Bill', 234)");
db.Exec("INSERT INTO Companies VALUES (15, 'Test company AG', 'John', 45)");
db.Exec("INSERT INTO Companies VALUES (16, 'Test Services GmbH', 'Jim', 23000)");
db.Exec("INSERT INTO Companies VALUES (17, 'Test Commands & Co.', 'Mary', 523)");
db.Exec("INSERT INTO Ownership VALUES (14, 15, 50)");
db.Exec("INSERT INTO Ownership VALUES (15, 17, 100)");
db.Exec("INSERT INTO Ownership VALUES (16, 15, 50)");
db.Exec("INSERT INTO Ownership VALUES (15, 17, 100)");
(* four companies (tree) *)
db.Exec("INSERT INTO Companies VALUES (18, 'Test', 'Bill', 234)");
db.Exec("INSERT INTO Companies VALUES (19, 'Test company AG', 'John', 45)");
db.Exec("INSERT INTO Companies VALUES (20, 'Test Services GmbH', 'Jim', 23000)");
db.Exec("INSERT INTO Companies VALUES (21, 'Test Commands & Co.', 'Mary', 523)");
db.Exec("INSERT INTO Ownership VALUES (18, 19, 20)");
db.Exec("INSERT INTO Ownership VALUES (18, 20, 30)");
db.Exec("INSERT INTO Ownership VALUES (18, 21, 50)");
(* most complex example *)
db.Exec("INSERT INTO Companies VALUES (1, 'Test', 'Bill', 234)");
db.Exec("INSERT INTO Companies VALUES (2, 'Test company AG', 'John', 45)");
db.Exec("INSERT INTO Companies VALUES (3, 'Test Services GmbH', 'Jim', 23000)");
db.Exec("INSERT INTO Companies VALUES (4, 'Test Commands & Co.', 'Mary', 523)");
db.Exec("INSERT INTO Companies VALUES (5, 'Test Views KG', 'Frank', 17)");
db.Exec("INSERT INTO Companies VALUES (6, 'Test Genossenschaft', 'Hans', 2109)");
db.Exec("INSERT INTO Companies VALUES (7, 'Test Mentoring, Inc.', 'Marlis', 128)");
db.Exec("INSERT INTO Companies VALUES (8, 'Test Training Plc.', 'Paul', 4)");
db.Exec("INSERT INTO Companies VALUES (9, 'Test Trainers SA', 'Jean', 87)");
db.Exec("INSERT INTO Companies VALUES (10, 'Test Wrappers AB', 'Gordon', 912)");
db.Exec("INSERT INTO Ownership VALUES (1, 2, 100)");
db.Exec("INSERT INTO Ownership VALUES (1, 3, 100)");
db.Exec("INSERT INTO Ownership VALUES (2, 4, 100)");
db.Exec("INSERT INTO Ownership VALUES (2, 5, 100)");
db.Exec("INSERT INTO Ownership VALUES (3, 6, 100)");
db.Exec("INSERT INTO Ownership VALUES (3, 7, 100)");
db.Exec("INSERT INTO Ownership VALUES (7, 8, 100)");
db.Exec("INSERT INTO Ownership VALUES (5, 9, 49)");
db.Exec("INSERT INTO Ownership VALUES (8, 9, 51)");
db.Exec("INSERT INTO Ownership VALUES (9, 10, 100)");
db.Commit
END;
db := NIL;
Kernel.Cleanup (* garbage collector closes database *)
END Setup;
END SqlObxInit.