![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBC
Firebird CreateTable Fehlermeldung
Hallo,
die Table wird in der Database nicht angelegt!
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin if FileExists(ExtractFilePath(Application.ExeName)+'ELP.fdb') then begin //IBCTable1.TableName := 'EINSATZ'; //IBCTAble1.Active := true; end else begin IBCConnection1.Database := ExtractFilePath(Application.ExeName)+'ELP.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:='EINSATZ'; 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; CreateTable; // Undeklarierter Bezeichner ??? end; end; end; |
AW: Firebird CreateTable Fehlermeldung
Verstehe es einfach nicht! Müsste doch gehen oder nicht!
Code:
Data.DB.TDataSet.FieldDefs
Übergeordnet: TDataSet Delphi property FieldDefs: TFieldDefs read FFieldDefs write SetFieldDefs; C++ __property TFieldDefs* FieldDefs = {read=FFieldDefs, write=SetFieldDefs}; Eigenschaften Typ Sichtbarkeit Quelle Unit Übergeordnet property public Data.DB.pas Data.DB.hpp Data.DB TDataSet Beschreibung Zeigt auf die Liste der Felddefinitionen für die Datenmenge. FieldDefs enthält die Felddefinitionen einer Datenmenge. Sie können diesen Wert in Ihren Anwendungen zwar lesen, um die Felddefinitionen zu ermitteln, sollten die Definitionen aber nur beim Erstellen einer neuen Tabelle mit CreateTable oder CreateDataSet ändern. Um auf die Felder und Feldwerte in einer Datenmenge zuzugreifen, verwenden Sie die Eigenschaften Fields, AggFields und FieldValues sowie die Methode FieldsByName. Anmerkung: Wenn die Datenmenge Objektfelder enthält, repräsentiert FieldDefs eine hierarchische Ansicht der Daten. Um die Definitionen als nichthierarchische Ansicht abzurufen, verwenden Sie stattdessen FieldDefList. |
AW: Firebird CreateTable Fehlermeldung
auch mit einer Query ohne Erfolg! Was mache ich falsch?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin if FileExists(ExtractFilePath(Application.ExeName)+'ELP.fdb') then begin IBCTable1.TableName := 'EINSATZ'; IBCTAble1.Active := true; end else begin IBCConnection1.Database := ExtractFilePath(Application.ExeName)+'ELP.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 IBCQuery1 do begin SQL.Clear; SQL.Add('create table "EINSATZ"'); SQL.Add('('); SQL.Add(' ID autoinc,'); SQL.Add(' Gruppe char(20),'); SQL.Add(' Name char(30),'); SQL.Add(' Vorname char(30),'); SQL.Add(' Strasse char(30),'); SQL.Add(' Hausnr char(10),'); SQL.Add(' PLZ Char(10),'); SQL.Add(' Ort char(20),'); SQL.Add(' Telefon char(30),'); SQL.Add(' primary key(ID)'); SQL.Add(')'); execsql; end; |
AW: Firebird CreateTable Fehlermeldung
Was bedeutet "ohne Erfolg"? Fehlermeldung? Keine Tabelle? Fehlerhafte Tabelle?
|
AW: Firebird CreateTable Fehlermeldung
Also die Database ist da (ELP.fdb) aber
in der Database ist keine Tabelle vorhanden! Fehlermeldung: Dynamic SQL Error SQL error code= -204 Table unknown EINSATZ At line1, column15. |
AW: Firebird CreateTable Fehlermeldung
Firebird ist eine Transactionsorientierte Datenbank
Ohne abschließendes Commit oder Autocommit (nicht empfehlenswert) in den Einstellungen werden Änderungen nicht sichtbar Wie sind die Einstellungen der Transactionskomponente |
AW: Firebird CreateTable Fehlermeldung
Die Eigenschaft "Auto Commit ist auf "true" gesetzt!
|
AW: Firebird CreateTable Fehlermeldung
Vielleicht schaust du dir mal
![]()
Delphi-Quellcode:
und einem abschließendem
IBTransaction1.StartTransaction;
Delphi-Quellcode:
arbeitet.
IBTransaction1.Commit;
|
AW: Firebird CreateTable Fehlermeldung
Delphi-Quellcode:
Autoinc dann per Generator+Trigger.
SQL.Add(' ID bigint not null,');
|
AW: Firebird CreateTable Fehlermeldung
Zitat:
Wieso steht der Tabellenname in doppelten Anführungsstrichen? Hab kein Firebird am Start zum Test, aber wenn Du die Tabelle mit Quotes anlegst, musst Du sie auch genau so abfragen. Oder wie stellst Du die Existenz der Tabelle fest? Lieber die Quotes weglassen, dann ist GroßKleinSchreibung beim Abfragen (DML) egal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 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