Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Access - Mit SQL eine neue Spalte hinzufügen. (https://www.delphipraxis.net/132573-access-mit-sql-eine-neue-spalte-hinzufuegen.html)

Boy2melo 15. Apr 2009 11:48

Datenbank: Microsoft Access • Version: 2003 • Zugriff über: Netzwerk - ADOConnection

Access - Mit SQL eine neue Spalte hinzufügen.
 
Hallo alle zusammen.

Ich bin derzeit dabei ein Registrierprogramm zu schreiben. Mein Programm greift mit hilfe einer ADOConnection über das Netzwerk auf die Datenbank zu. Es soll während der Laufzeit eine Neue Spalte in die Datenbank hinzufügen. Ich habe versucht es mit einer ADOQuery und einem SQL befehl zu lösen aber das Programm gibt mir immer folgende Fehlermeldung:

"[...] ist eine Exceptiond er Klasse EOleException aufgetreten. Meldung:'Tabelle/Einschränkung kann nciht gefunden werden'.[...]"

Mein Quelltext sieht folgendermaßen aus:

Delphi-Quellcode:
procedure TFRegistration.Button1Click(Sender: TObject);
begin
  Query1.SQl.add('ALTER table TDatabase Add Spalte1 char(50)'); //Query1 = ADOQuery; TDatabase = Tabellenname
  Query1.Open;
end;
Kann mir vielleicht irgend jemand helfen? Vielen Dank.

DeddyH 15. Apr 2009 11:58

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Wenn ich das richtig interpretiere, heißt das in Access Text statt Char.

Butch87 15. Apr 2009 13:15

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
So hab ich es gemacht...
Delphi-Quellcode:
ALTER TABLE "Tabellenname"
  ADD COLUMN "Feldname" "Feldtyp"
und Char als Felddatentyp is richtig.

edit: Ohne Anführungszeichen natürlich

sx2008 15. Apr 2009 13:20

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Zitat:

Zitat von Butch87
Delphi-Quellcode:
ALTER TABLE "Tabellenname"
  ADD COLUMN "Feldname" "Feldtyp"

Jep. Der Unterschied zwischen Access und anderen Datenbanken (SQL/92) ist das Schlüsselwort COLUMN.

Boy2melo 17. Apr 2009 10:20

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Vielen Dank für die schnelle Antwort. Leider geht es immer noch nicht. Das Programm gibt mir immer die gleiche Fehlermeldung. Könnte vielleicht etwas mit der ADOQuery oder der ADOConnection nicht stimmen? Es ist das erste mal, dass ich diese benütze.

nahpets 17. Apr 2009 10:41

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Hallo,

bitte ändere zuerst einmal
Delphi-Quellcode:
Query1.Open;
in
Delphi-Quellcode:
Query1.ExecSQL;
Open will eine Ergebnismenge zurückliefern, die bei einem Alter-Table natürlich nicht vorhanden ist.
Funktionieren Select..., dann sind ADOConnection und ADOQuery in Ordnung.

Ansonsten: Zeig' uns bitte mal die Tabellenstruktur, gibt es Indexe, Constraints..., die von der Änderung betroffen sein könnten?

Die Fehlermeldung könnte darauf hinweisen, dass TDatabase (die Tabelle) nicht gefunden wird. Ist sie wirklich vorhanden? sprich: Liefert ein
SQL-Code:
Select Count(*) from TDatabase
über die ADOQuery ein Ergebnis?
Muss der Tabellenname eventuell in " oder ' oder ` oder ´ oder [] gesteckt werden, da weiß ich bei Access nie, was richtig ist.

Butch87 17. Apr 2009 13:10

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Zitat:

Zitat von nahpets
Muss der Tabellenname eventuell in " oder ' oder ` oder ´ oder [] gesteckt werden, da weiß ich bei Access nie, was richtig ist.

Nein muss nicht. Hier mal mein SQL-Code aus der Query:
SQL-Code:
Alter Table T_Vorgang
Add Column PeriodenVerbrauch Float
und die Query führe ich dann über ein einfaches ExecSQL aus!
Wie nahpets schon sagte, ist die Tabelle überhaupt vorhanden??

Boy2melo 18. Apr 2009 15:33

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Vielen dank für die Antwort. Ja die Tabelle existiert. Das Programm greift in anderen Operationen auf sie zu, jedoch nicht mit SQL. Ich hatte bisher leider noc keine Zeit es aus zu probieren, aber ich werde es so bald wie möglich testen, nochmal vielen Dank.

Ps.: Gibt es eigentlich auch noch eine andere möglichkeit, außer SQL, während der Laufzeit eine neue Spalte zu erstellen?

sx2008 18. Apr 2009 18:19

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
Zitat:

Zitat von Boy2melo
Gibt es eigentlich auch noch eine andere möglichkeit, außer SQL, während der Laufzeit eine neue Spalte zu erstellen?

Ja, mit ADOX.

Boy2melo 20. Apr 2009 14:22

Re: Access - Mit SQL eine neue Spalte hinzufügen.
 
So, jetzt habe ich es geschafft. Ist ein peinlicher fehler. Der Quellcode stimmt...Jedoch ist 'TDatabase' der Tabellenname der ADOTable in Delphi aber der Quellcode benötigt den Namen der Tabelle in Access. Vielen Dank für all die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz