Einzelnen Beitrag anzeigen

Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#15

Re: DB-Tabelle um Datenfeld erweitern

  Alt 29. Nov 2007, 18:22
Hallo Ihr,

danke für die Kommentare,

ich habe jetzt alles noch einmal durchgecheckt, es geht noch nicht.

Zur Klarstellung:
Zeoslib 6.6.1 – beta
Protocol firebird-1.5

Ich habe ein Datenmodul mit: TZConnection (ZConn), TZQuery (ZQuery)
Ich habe nichts auf activ gesetzt sondern aktiviere im Programm.
Das DataModul wird vor der Form erstellt.
Auch die Datenbankverbindung wird im Programm hergestellt.
Bei ZQuery ist ZConn als Connection eingestellt sonst nichts.
Das DBGrid und die Datasource ist entfernt.
Ich habe das Programm auch ohne IDE gestartet.

Natürlich würde ich die Änderungen an der Datenbank nicht im eigentlichen Programm machen, sondern in einem separaten Update- Programm.
Mir geht es nur ums Prinzip, warum geht das bei mir nicht und was mache ich falsch. Ich habe auch schon in allen möglichen Foren gesucht, da war der Fehler auch beschrieben, aber die Lösung hat keiner aufgezeigt.

Nur nochmal zum Verständnis für mich:
um die Spalte einzufügen muss ich Zugriff auf die Datenbank haben, also
ZConn.Connected := True; Ausserdem muss ich einen Query ausführen können, also
 ZQuery.Active := True; Richtig?
Wenn jemand das Problem schon gelöst hat, dann bitte bitte wie!

Sonst bleibe ich bei Paradox!

Delphi-Quellcode:
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;

      //Testen, ob NAME schon vorhanden
      if Teste_Feld_In_Tabelle('Name') = False then
        begin
          ZQuery.SQL.Clear;
          ZQuery.SQL.Add('ALTER TABLE T1 ADD INAME CHAR(30);');
          ZQuery.ExecSQL;
        end;
    end;
end;
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat