Registriert seit: 6. Nov 2009
493 Beiträge
FreePascal / Lazarus
|
AW: Position der Labels unverständlich?
27. Feb 2013, 22:00
Delphi-Quellcode:
procedure TForm1.DBerstellen1Click(Sender: TObject);
var dbFile: String; // DB Verzeichniss
db: TSQLiteDatabase; // Klasse
sSQL, sSQL1, sSQL2, sSQL3, sSQL4, sSQL5, sSQL6: String;
begin
dbFile := ExtractFilePath(ParamStr(0)) + ' Database.db';
db := TSQLiteDatabase.Create(dbFile);
try
// Tabelle entleiher wird, sofern sie existiert, gelöscht
if db.TableExists(' entleiher') then
begin
sSQL1 := ' DROP TABLE entleiher';
db.execSQL(sSQL1);
end;
// Tabelle author wird, sofern sie existiert, gelöscht
if db.TableExists(' author') then
begin
sSQL2 := ' DROP TABLE author';
db.execSQL(sSQL2);
end;
// Tabelle category wird, sofern sie existiert, gelöscht
if db.TableExists(' category') then
begin
sSQL3 := ' DROP TABLE category';
db.execSQL(sSQL3);
end;
// Tabelle publisher wird, sofern sie existiert, gelöscht
if db.TableExists(' publisher') then
begin
sSQL4 := ' DROP TABLE publisher';
db.execSQL(sSQL4);
end;
// Tabelle place wird, sofern sie existiert, gelöscht
if db.TableExists(' place') then
begin
sSQL5 := ' DROP TABLE place';
db.execSQL(sSQL5);
end;
// Tabelle language wird, sofern sie existiert, gelöscht
if db.TableExists(' language') then
begin
sSQL6 := ' DROP TABLE language';
db.execSQL(sSQL6);
end;
// Tabelle media wird, sofern sie existiert, gelöscht
if db.TableExists(' media') then
begin
sSQL := ' DROP TABLE media';
db.execSQL(sSQL);
end;
// Enable foreign key constraints
db.execSQL(' PRAGMA foreign_keys = ON;');
// Tabelle entleiher anlegen
sSQL1 := ' CREATE TABLE entleiher ([id_entleiher] INTEGER PRIMARY KEY NOT NULL,';
sSQL1 := sSQL1 + ' [efirstname] VARCHAR (255) NOT NULL,';
sSQL1 := sSQL1 + ' [elastname] VARCHAR (255) NOT NULL,';
sSQL1 := sSQL1 + ' [telefon] VARCHAR (255),';
sSQL1 := sSQL1 + ' [email] VARCHAR (255), UNIQUE(efirstname, elastname));';
// Tabelle author anlegen
sSQL2 := ' CREATE TABLE author ([id_author] INTEGER PRIMARY KEY NOT NULL,';
sSQL2 := sSQL2 + ' [aname] VARCHAR (255) NOT NULL, UNIQUE(aname));';
// Tabelle category anlegen
sSQL3 := ' CREATE TABLE category ([id_category] INTEGER PRIMARY KEY NOT NULL,';
sSQL3 := sSQL3 + ' [catname] VARCHAR (255) NOT NULL, UNIQUE(catname));';
// Tabelle publisher anlegen
sSQL4 := ' CREATE TABLE publisher ([id_publisher] INTEGER PRIMARY KEY NOT NULL,';
sSQL4 := sSQL4 + ' [pubname] VARCHAR (255) NOT NULL, UNIQUE(pubname));';
// Tabelle place anlegen
sSQL5 := ' CREATE TABLE place ([id_place] INTEGER PRIMARY KEY NOT NULL,';
sSQL5 := sSQL5 + ' [planame] VARCHAR (255) NOT NULL, UNIQUE(planame));';
// Tabelle language anlegen
sSQL6 := ' CREATE TABLE language ([id_language] INTEGER PRIMARY KEY NOT NULL,';
sSQL6 := sSQL6 + ' [langname] VARCHAR (255) NOT NULL, UNIQUE(langname));';
// Tabelle media wird angelegt
sSQL := ' CREATE TABLE media ([id_media] INTEGER PRIMARY KEY NOT NULL,';
sSQL := sSQL + ' [mediatitle] VARCHAR (255) NOT NULL,';
sSQL := sSQL + ' [description] VARCHAR (255),';
sSQL := sSQL + ' [status] INTEGER NOT NULL,';
sSQL := sSQL + ' [isbn] VARCHAR (255),';
sSQL := sSQL + ' [edition] INTEGER,';
sSQL := sSQL + ' [publicationyear] INTEGER,';
sSQL := sSQL + ' [fk_publisher_id] INTEGER,';
sSQL := sSQL + ' [fk_place_id] INTEGER,';
sSQL := sSQL + ' [fk_category_id] INTEGER NOT NULL,';
sSQL := sSQL + ' [fk_language_id] INTEGER NOT NULL,';
sSQL := sSQL + ' [fk_author_id] INTEGER,';
sSQL := sSQL + ' [fk_entleiher_id] INTEGER,';
sSQL := sSQL + ' FOREIGN KEY(fk_publisher_id) REFERENCES publisher(id_publisher) ON DELETE RESTRICT,';
sSQL := sSQL + ' FOREIGN KEY(fk_place_id) REFERENCES place(id_place) ON DELETE RESTRICT,';
sSQL := sSQL + ' FOREIGN KEY(fk_category_id) REFERENCES category(id_category) ON DELETE RESTRICT,';
sSQL := sSQL + ' FOREIGN KEY(fk_language_id) REFERENCES language(id_language) ON DELETE RESTRICT,';
sSQL := sSQL + ' FOREIGN KEY(fk_author_id) REFERENCES author(id_author) ON DELETE RESTRICT,';
sSQL := sSQL + ' FOREIGN KEY(fk_entleiher_id) REFERENCES entleiher(id_entleiher) ON DELETE RESTRICT);';
// Create Befehl wird ausgeführt
db.execSQL(sSQL1);
db.execSQL(sSQL2);
db.execSQL(sSQL3);
db.execSQL(sSQL4);
db.execSQL(sSQL5);
db.execSQL(sSQL6);
db.execSQL(sSQL);
// Transaktion beginnt
db.BeginTransaction;
// entleiher Tabelle füllen
sSQL1 := ' INSERT INTO entleiher(efirstname, elastname, telefon, email)';
sSQL1 := sSQL1 + ' VALUES ("Alexander", "Bayer", "0123-567890", "alex@bayer_xyz.de");';
// author Tabelle füllen
sSQL2 := ' INSERT INTO author(aname)';
sSQL2 := sSQL2 + ' VALUES ("Dr. Werner Gimp");';
// category Tabelle füllen
sSQL3 := ' INSERT INTO category(catname)';
sSQL3 := sSQL3 + ' VALUES ("Buch");';
// publisher Tabelle füllen
sSQL4 := ' INSERT INTO publisher(pubname)';
sSQL4 := sSQL4 + ' VALUES ("CLW");';
// place Tabelle füllen
sSQL5 := ' INSERT INTO place(planame)';
sSQL5 := sSQL5 + ' VALUES ("Rof");';
// language Tabelle füllen
sSQL6 := ' INSERT INTO language(langname)';
sSQL6 := sSQL6 + ' VALUES ("Deutsch");';
// media Tabelle füllen
sSQL := ' INSERT INTO media(fk_author_id, mediatitle, description, status, isbn,';
sSQL := sSQL + ' edition, publicationyear, fk_publisher_id, fk_place_id, fk_category_id, fk_language_id, fk_author_id, fk_entleiher_id) VALUES (1, "Java", "Das ist die Besch.", 1,';
sSQL := sSQL + ' "3-3434-78", 3, 2012, 1, 1, 1, 1, 1, 1);';
// Insert Befehl wird ausgeführt
db.ExecSQL(sSQL1);
db.ExecSQL(sSQL2);
db.ExecSQL(sSQL3);
db.ExecSQL(sSQL4);
db.ExecSQL(sSQL5);
db.ExecSQL(sSQL6);
db.ExecSQL(sSQL);
// Transaktion endet
db.Commit;
finally
db.Free;
end;
ShowMedia();
end;
|