![]() |
Datenbank: Firebird embedded • Zugriff über: Zeos
DB-Tabelle um Datenfeld erweitern
Hallo alle zusammen,
Ich beschäftige mich nun endlich mit Firebird als Datenbank, um von Paradox wegzukommen. Erst mal experimentell. Ich habe da ein kleines Problem. Ich möchte eine vorhandene Tabelle um eine Spalte(Feld) erweitern. Da erhalte eine Fehlermeldung:
Code:
Die Fehlermeldung kommt im ALTER Table Statment.
SQL Error: unsuccessful metadata update T1. Error Code -607. This operation is not defined for system tables.
Delphi-Quellcode:
Was ist falsch?function TForm1.Teste_Feld_In_Tabelle(Bez: string): boolean; var i: Byte; begin result := false; with data do for i := 0 to ZQuery.FieldDefs.Count - 1 do begin if Bez = ZQuery.FieldDefs[i].Name then Result := True; end; end; procedure TForm1.FormCreate(Sender: TObject); var vFirst: Boolean; begin with data do begin vFirst := False; ZConn.User := 'SYSDBA'; ZConn.Password := 'egal'; ZConn.Database := '.\TestFb.fdb'; if not fileExists('.\TestFb.fdb') then begin vFirst := True; ZConn.Properties.Add('CreateNewDatabase=CREATE DATABASE ' + QuotedStr('.\TestFb.fdb') + ' USER ' + QuotedStr('sysdba') + ' PASSWORD ' + QuotedStr('masterkey') + ' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1'); end; ZConn.Properties.Add('Dialect=3'); ZConn.Connected := true; if vFirst then begin ZQuery.SQL.Clear; ZQuery.SQL.Add('Create TABLE T1 (P1 INTEGER NOT NULL PRIMARY KEY);'); ZQuery.ExecSQL; end; ZQuery.SQL.Add('SELECT P1 FROM T1;'); ZQuery.Active := True; ZQuery.Close; ZQuery.SQL.Clear; ZQuery.SQL.Add('SELECT * FROM T1;'); //SELECT TOP 0 * FROM T1 ging auch nicht ZQuery.open; //Testen, ob NAME schon vorhanden if Teste_Feld_In_Tabelle('Name') = False then begin ZQuery.SQL.Clear; ZQuery.SQL.Add('ALTER TABLE T1 ADD Name Char (30);'); ZQuery.ExecSQL; end; ZQuery.SQL.Clear; ZQuery.SQL.Add('SELECT * FROM T1 WHERE p1 > 20;'); ZQuery.open; ZQuery.Last; end; end; mfg |
Re: DB-Tabelle um Datenfeld erweitern
Kommt es beim Erzeugen der Tabelle oder später?
|
Re: DB-Tabelle um Datenfeld erweitern
Hallo mkinzler,
Die Tabelle ist schon da. Ich habe auch ein DBDrid auf der Form und konnte schon Daten eingeben. Nun hatte ich das Programm um diese Zeilen erweitert:
Delphi-Quellcode:
und nun kommt die Fehlermeldung.if Teste_Feld_In_Tabelle('Name') = False then begin ZQuery.SQL.Clear; ZQuery.SQL.Add('ALTER TABLE T1 ADD Name Char (30);'); ZQuery.ExecSQL; end; mfg |
Re: DB-Tabelle um Datenfeld erweitern
Die Tabelle scheint im Zugriff zu sein.
|
Re: DB-Tabelle um Datenfeld erweitern
Zitat:
mfg |
Re: DB-Tabelle um Datenfeld erweitern
Der Query muss geschlossen sein.
|
Re: DB-Tabelle um Datenfeld erweitern
Danke,
ich hab's mir fast gedacht. mfg |
Re: DB-Tabelle um Datenfeld erweitern
Zitat:
Denn dann ist die Tabelle im Zugriff ohne dass man das direkt so merkt. |
Re: DB-Tabelle um Datenfeld erweitern
Zitat:
|
Re: DB-Tabelle um Datenfeld erweitern
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:28 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 by Thomas Breitkreuz