AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Access - Mit SQL eine neue Spalte hinzufügen.
Thema durchsuchen
Ansicht
Themen-Optionen

Access - Mit SQL eine neue Spalte hinzufügen.

Offene Frage von "Boy2melo"
Ein Thema von Boy2melo · begonnen am 15. Apr 2009 · letzter Beitrag vom 23. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
Boy2melo

Registriert seit: 11. Mär 2009
7 Beiträge
 
#1

Access - Mit SQL eine neue Spalte hinzufügen.

  Alt 15. Apr 2009, 11:48
Datenbank: Microsoft Access • Version: 2003 • Zugriff über: Netzwerk - ADOConnection
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 15. Apr 2009, 11:58
Wenn ich das richtig interpretiere, heißt das in Access Text statt Char.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Butch87

Registriert seit: 3. Mai 2007
70 Beiträge
 
#3

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

  Alt 15. Apr 2009, 13:15
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
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

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

  Alt 15. Apr 2009, 13:20
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.
  Mit Zitat antworten Zitat
Boy2melo

Registriert seit: 11. Mär 2009
7 Beiträge
 
#5

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

  Alt 17. Apr 2009, 10:20
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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

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

  Alt 17. Apr 2009, 10:41
Hallo,

bitte ändere zuerst einmalQuery1.Open; inQuery1.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 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.
  Mit Zitat antworten Zitat
Butch87

Registriert seit: 3. Mai 2007
70 Beiträge
 
#7

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

  Alt 17. Apr 2009, 13:10
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??
  Mit Zitat antworten Zitat
Boy2melo

Registriert seit: 11. Mär 2009
7 Beiträge
 
#8

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

  Alt 18. Apr 2009, 15:33
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?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

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

  Alt 18. Apr 2009, 18:19
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.
  Mit Zitat antworten Zitat
Boy2melo

Registriert seit: 11. Mär 2009
7 Beiträge
 
#10

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

  Alt 20. Apr 2009, 14:22
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
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