![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBC
Firebird Database erstellen
Hallo,
habe ein Problem, eine DB mit Firebird zu erstellen! Benutze die Komponente "IBDAC" Was ist IBDatabase1 ?Diese Komponente finde ich nicht? Hier ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin IBDatabase1.DatabaseName := 'GameDB.fdb'; // Was ist IBDatabase1? Diese Komponente gibt es nicht! IBDatabase1.Params.Clear; IBDatabase1.Params.Add('USER ''SYSDBA'''); // Wenn hier USER_NAME angegeben wird funktioniert es nicht! IBDatabase1.Params.Add('PASSWORD ''masterkey'''); // Natürlich "nur" mit Leertaste IBDatabase1.Params.Add('PAGE_SIZE 4096'); IBDatabase1.Params.Add('DEFAULT CHARACTER SET WIN1250'); IBDatabase1.CreateDatabase; IBDatabase1.Connected := false; IBDatabase1.Params.Clear; IBDatabase1.Params.Add('USER_NAME=SYSDBA'); // Wenn hier USER angegeben wird funktioniert es nicht! IBDatabase1.Params.Add('PASSWORD=masterkey'); // Natürlich "nur" mit "=" IBDatabase1.Connected := true; IBTransaction1.Active := true; with IBTable1 do begin active:=false; // Tablen-Zugriff muss auf jeden Fall geschlossen sein TableName:='HIGHSCORE'; // Tabellen Name IN UPPERCASE!!! // SONST FUNKTIONIERT ES NICHT with FieldDefs do begin // Eine kleine Tabelle um Highscores zu speichern... clear; Add('ID', ftInteger, 0, false); // AUTOINC Gibt es nicht, folgt später!!! Add('Game', ftString, 20, false); Add('UserID', ftString, 8, false); Add('PlayScore', ftInteger, 0, false); Add('PlayLevel', ftInteger, 0, false); Add('Playername', ftString, 40, false); Add('PlayerURL', ftString, 80, false); Add('PlayereMail', ftString, 80, false); Add('PlayerMessenger', ftString, 80, false); Add('Datum', ftDateTime, 0, false); // NICHT ETWAR TIMESTAMP das gibt es nicht... end; CreateTable; end; |
AW: Firebird Database erstellen
Der Code ist für IBX und nicht für IBDac. IBDatabase1 ist vom Typ TIBDatabase.
Bei IBDAC heißt die Klasse TIBCConnection ![]() ![]() Ich würde die Tabelle auch per SQL erstellen lassen (TIBCQuery oder noch besser TIBCScript)
SQL-Code:
create table highscore (
id bigint not null, Game varchar(20) not null, UserID bigint not null, //Ich gehe davon aus, das ist ein FK PlayScore integer not null, PlayLevel ftInteger not null, Playername varchar(40) not null, //gehört in Usertabelle PlayerURL varchar(80) not null, // das auch PlayereMail varchar(80), //dito PlayerMessenger varchar(80) not null, //dito Datum, DateTime not null, //DateTime ist ein TimeStamp primary key (id)); |
AW: Firebird Database erstellen
Danke :-D
|
AW: Firebird Database erstellen
So,
wie kann ich jetzt überprüfen ob eine Database vorhanden ist, oder nicht!
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin begin IBCConnection1.Database := ExtractFilePath(Application.ExeName)+'Test.fdb'; IBCConnection1.Params.Clear; IBCConnection1.Params.Add('USER ''SYSDBA'''); IBCConnection1.Params.Add('PASSWORD ''masterkey'''); IBCConnection1.Params.Add('PAGE_SIZE 4096'); IBCConnection1.Params.Add('DEFAULT CHARACTER SET WIN1250'); IBCConnection1.CreateDatabase; IBCConnection1.Connected := false; IBCConnection1.Params.Clear; IBCConnection1.Params.Add('USER_NAME=SYSDBA'); IBCConnection1.Params.Add('PASSWORD=masterkey'); IBCConnection1.Connected := true; IBCTransaction1.Active := true; with IBCTable1 do begin active:=false; TableName:='TEST'; with FieldDefs do begin clear; Add('ID', ftInteger, 0, false); // AUTOINC Gibt es nicht, folgt später!!! Add('Game', ftString, 20, false); Add('UserID', ftString, 8, false); Add('PlayScore', ftInteger, 0, false); Add('PlayLevel', ftInteger, 0, false); Add('Playername', ftString, 40, false); Add('PlayerURL', ftString, 80, false); Add('PlayereMail', ftString, 80, false); Add('PlayerMessenger', ftString, 80, false); Add('Datum', ftDateTime, 0, false); // NICHT ETWAR TIMESTAMP das gibt es nicht... end; end; end; end; |
AW: Firebird Database erstellen
Zitat:
Delphi-Quellcode:
(ungetestet)
if FileExists(ExtractFilePath(Application.ExeName)+'Test.fdb') then
// Datenbank ist vorhanden // ok, öffnen und damit arbeiten else // Datenbank ist nicht vorhanden // (nach Rückfrage:) neue Datenbank erstellen ... end; |
AW: Firebird Database erstellen
Hallo,
doch noch ein Fehler? IBCTable.TableName // Steht nichts drin? Unter Eigenschaft 'TableName' ist das Ereignis leer?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin if FileExists(ExtractFilePath(Application.ExeName)+'Test.fdb') then begin IBCTable1.TableName := 'Test'; IBCTAble1.Active := true; end else begin IBCConnection1.Database := ExtractFilePath(Application.ExeName)+'Test.fdb'; IBCConnection1.Params.Clear; IBCConnection1.Params.Add('USER ''SYSDBA'''); IBCConnection1.Params.Add('PASSWORD ''masterkey'''); IBCConnection1.Params.Add('PAGE_SIZE 4096'); IBCConnection1.Params.Add('DEFAULT CHARACTER SET WIN1250'); IBCConnection1.CreateDatabase; IBCConnection1.Connected := false; IBCConnection1.Params.Clear; IBCConnection1.Params.Add('USER_NAME=SYSDBA'); IBCConnection1.Params.Add('PASSWORD=masterkey'); IBCConnection1.Connected := true; IBCTransaction1.Active := true; with IBCTable1 do begin active:=false; TableName:='TEST'; with FieldDefs do begin clear; Add('ID', ftInteger, 0, false); // AUTOINC Gibt es nicht, folgt später!!! Add('ICON', ftString, 20, false); Add('EINSATZNR', ftString, 10, false); Add('DATUM', ftString, 10, false); Add('ZEIT', ftString, 10, false); Add('EINSATZSTATUS', ftString, 10, false); Add('EINSATZSTICHWORT', ftString, 20, false); Add('EINSATZSTADT', ftString, 40, false); Add('EINSATZORT', ftString, 40, false); Add('EINSATZADRESSE', ftString, 40, false); Add('EINSATZMELDUNG', ftString, 100, false); Add('ELPNAME', ftString, 40, false); Add('ELPIP', ftString, 40, false); Add('EINSATZHINWEIS', ftString, 40, false); Add('EINSATZOBJEKT', ftString, 100, false); end; end; end; end; |
AW: Firebird Database erstellen
Hallo mkinzler
wie würde das anlegen über TIBCScript aussehen? |
AW: Firebird Database erstellen
Habe jetzt noch:
Delphi-Quellcode:
hinzugefügt!
CreateTable;
Fehlermeldung: Undeklarieter Bezeichner? |
AW: Firebird Database erstellen
Undeklarierter Bezeichner heißt: Diese Methode gibt es bei den IbDac-Queries nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz