Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ABSTable und FieldDefs.Add() (https://www.delphipraxis.net/203764-abstable-und-fielddefs-add.html)

NoGAD 21. Mär 2020 09:01

Datenbank: ABSDataBase • Version: 7.91 • Zugriff über: ABSTable

ABSTable und FieldDefs.Add()
 
Hallo,

ich habe vor zu einer bestehenden Tabelle ein Feld hinzuzufügen.

Leider bekomme ich es mit der TABSTable Komponente nicht hin.
Irgendwo habe ich einen logischen Fehler.


Mein Code:
Code:
      Table.Close;
        { Wenn Tabellenfeld nicht existiert }
        if Table.FieldDefs.IndexOf( 'neues_testfeld' ) = - 1 then
          try
            Table.FieldDefs.Add( 'neues_testfeld', ftstring, 5, false );
          except
            showmesage('Ein Fehler trat auf.' );
            Exit;
          end;
        { Wenn Tabellenfeld nicht existiert }
      Table.Open;

Das neue Feld taucht einfach nicht auf.
Ein Table.FieldDefs.Update; hilft auch nicht vor Table.Open;

Ich bin ratlos.

LG Mathias

scrat1979 21. Mär 2020 09:08

AW: ABSTable und FieldDefs.Add()
 
Frage: Wird der Code überhaupt ausgeführt (springt der Debugger in den IF-Block)?

Falls es nicht funktioniert dann mach es mit einem SQL-Statement über ein TABSQuery. Ich mache es damit und es funktioniert einwandfrei. Von den TABSTable-Komponenten lasse ich die Finger, bin mit SQL flexibler

Viel Erfolg!

EDIT: Schau mal hier...

NoGAD 21. Mär 2020 11:39

AW: ABSTable und FieldDefs.Add()
 
Zitat:

Zitat von scrat1979 (Beitrag 1460245)
Frage: Wird der Code überhaupt ausgeführt (springt der Debugger in den IF-Block)?

Falls es nicht funktioniert dann mach es mit einem SQL-Statement über ein TABSQuery. Ich mache es damit und es funktioniert einwandfrei. Von den TABSTable-Komponenten lasse ich die Finger, bin mit SQL flexibler

An einem SQL Befehl habe ich mich noch nie versucht.
Wie sähe der in meinem Beispiel bitte aus und muss ein RestructureFieldDefs dann auch ausgeführt werden?

LG Mathias.

NoGAD 21. Mär 2020 16:14

AW: ABSTable und FieldDefs.Add()
 
Nun habe ich durch mehrere Tests folgendes erstellt:


Code:
          ABSQueryq.SQL.Text := 'ALTER TABLE ' + Table_Name + ' ADD (IF NOT EXISTS neues_testfeld VARCHAR(5) );';
          ABSQuery1.ExecSQL;

Aber die Spalte wird nicht im DBGrid angezeigt.



Es hat sich erledigt, ich hatte noch weiteren Code anhängig, welcher dagegen gearbeitet hatte.

scrat1979 21. Mär 2020 21:12

AW: ABSTable und FieldDefs.Add()
 
Zitat:

Zitat von NoGAD (Beitrag 1460277)
Nun habe ich durch mehrere Tests folgendes erstellt:


Code:
          ABSQueryq.SQL.Text := 'ALTER TABLE ' + Table_Name + ' ADD (IF NOT EXISTS neues_testfeld VARCHAR(5) );';
          ABSQuery1.ExecSQL;

Aber die Spalte wird nicht im DBGrid angezeigt.



Es hat sich erledigt, ich hatte noch weiteren Code anhängig, welcher dagegen gearbeitet hatte.

Perfekt! Wollte gerade ein Beispiel posten :) Die Onlinereferenz von ABS ist übrigens echt gut. So als Tip bei zukünftigen Problemen.

NoGAD 22. Mär 2020 08:42

AW: ABSTable und FieldDefs.Add()
 
Dankeschön.

Das Thema kann bitte als gelöst markiert werden. Ich weiß leider nicht, wie ich das machen kann.

NoGAD 27. Mär 2020 11:38

AW: ABSTable und FieldDefs.Add()
 
Thema als offene Frage entfernt


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 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