Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ALTER TABLE CHANGE - Spaltennamen ändern in Access (https://www.delphipraxis.net/128410-alter-table-change-spaltennamen-aendern-access.html)

nahpets 30. Jan 2009 10:38

Re: ALTER TABLE CHANGE - Spaltennamen ändern in Access
 
Hallo,

funktionieren die anderen Exit alle? Hast Du mal entsprechende Fehler eingebaut, um das zu prüfen?
Das Einzige, was mir auffällt ist:
Delphi-Quellcode:
if not PhotoTB.Active then
  PhotoTB.Open;

PhotoTB.Active := True; // <-- überflüssig, da nach PhotoDB.Open Active = True.
aber dass das der Fehler sein sollte, halte ich für unwahrscheinlich.
Result könnte zu dem Zeitpunkt noch undefiniert sein, sofern es nicht in dem von Dir durch ... dargestellten Ausschnitt mit einem Wert versehen wurde.

Moony 30. Jan 2009 10:45

Re: ALTER TABLE CHANGE - Spaltennamen ändern in Access
 
An dieser Zeile liegts definitiv nicht. Der Result wird zu Anfang der Routine auf true gesetzt und nur im Fehlerfall auf False. Das Exit hat ja vor meinem Umbau funktioniert, auch in dieser Konstellation.

Jürgen Thomas 30. Jan 2009 10:55

Re: ALTER TABLE CHANGE - Spaltennamen ändern in Access
 
Zitat:

Zitat von Moony
Ich kann doch nachträglich den Tabellennamen ändern. Das ist nun wirklich SQL standard.

Damit hier nichts unwidersprochen stehen bleibt: CHANGE ist nach wie vor nicht SQL-Standard!
Zitat:

SQL (Wikipedia)
Die Alter-Definition ist ADD Attribut-Definition. In SQL-92 gibt es noch ALTER Attribut Default-Wert oder DROP Attribut. Da SQL-92 sehr restriktiv bezüglich der ALTER-Anweisung ist, ist dies eine der Anweisungen, die von den Herstellern universell erweitert wurde, so dass beliebige Änderungen möglich sind wie durch eine Folge von DROP und ADD-Anweisungen.
Über Whitemarsh: SQL habe ich Dokumente gefunden, u.a. (ISO-ANSI Working Draft) Foundation (SQL/Foundation) WG3:HBA-003 / H2-2003-305 (August, 2003) in 5WD-02-Foundation-2003-09.pdf. Im Abschnitt 11.10 <alter table statement> (Seite 571) steht nichts von CHANGE.

Es gilt deshalb das, was hier ansonsten vorgeschlagen wurde: Wenn ein spezieller SQL-Dialekt so etwas anbietet, kann es natürlich benutzt werden. Wenn nicht, müssen die genannten Alternativen (Temp-Column, Temp-Table) verwendet werden. Es ist deshalb immer nützlich, die bestehenden Hilfen zu studieren.

Gruß Jürgen

Moony 30. Jan 2009 12:02

Re: ALTER TABLE CHANGE - Spaltennamen ändern in Access
 
Ich hab das ja jetzt anders gelöst. ohne eine Temp-Tabelle. Aber mein Problem ist ,dass ich abschließend eine Access Violation erhalte.

Ydobon 30. Jan 2009 13:51

Re: ALTER TABLE CHANGE - Spaltennamen ändern in Access
 
Ups, ich Idiot, da habe ich etwas zu früh aufgehört. Ein Tabellenobjekt enthält aber wiederum eine Column Collection, mit deren Mitgliedern geht das Umbenennen genauso. Sollte eigentlich da oben stehen.

Die Fehlermeldung dürfte an cat._Release liegen. Das scheint die Laufzeitumgebung nicht so richtig mitzubekommen und versucht am Ende der Prozedur den Katalog noch einmal zu schließen. Also entweder das Release weglassen oder mit Pointer(cat):=Nil Delphi die Lust am Schließen vermiesen.

Moony 30. Jan 2009 15:35

Re: ALTER TABLE CHANGE - Spaltennamen ändern in Access
 
upi, das wars. Jetzt funktioniert alles wunderbar. :thumb:

Danke allen für die Unterstützung!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Seite 2 von 2     12   

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