AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle ein
Thema durchsuchen
Ansicht
Themen-Optionen

Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle ein

Ein Thema von niao · begonnen am 11. Nov 2008 · letzter Beitrag vom 19. Nov 2008
Antwort Antwort
niao

Registriert seit: 15. Nov 2006
Ort: Erfurt
27 Beiträge
 
Delphi XE4 Professional
 
#1

Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle ein

  Alt 11. Nov 2008, 23:16
Datenbank: Access • Zugriff über: DAO
Kann mir bitte jemand helfen!

ich muss mit Delphi zur Laufzeit ein Feld in eine Accesstabelle hinzufügen.
Habe aber gar keinen Plan wie das funktioniert. Ich greife mittels DAO auf die
Accessdatenbank zu und sprecche die jeweiligen Tabellen mit einen Dataset an.

Vielen Dank vorab!
Eduard
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle

  Alt 12. Nov 2008, 08:14
Folgende SQL Anweisung absetzen:
ALTER TABLE MeineTabelle ADD COLUMN NeuesFeld varchar(50) http://office.microsoft.com/de-at/ac...314311031.aspx
  Mit Zitat antworten Zitat
niao

Registriert seit: 15. Nov 2006
Ort: Erfurt
27 Beiträge
 
Delphi XE4 Professional
 
#3

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle

  Alt 17. Nov 2008, 20:17
Hallo!

vielen Dank für die Antwort.
Ich weis nun, das ich ein SQL-Befehl ausführen muss, um ein neues Feld einzufügen. Aber wie?
Zur Laufzeit verfüge ich nur über ein TADODataset.

Bitte helft mir!

Vielen Dank!
Eduard
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle

  Alt 17. Nov 2008, 21:26
Delphi-Quellcode:
AdoDataset1.CommandText := 'ALTER TABLE MeineTabelle ADD COLUMN NeuesFeld varchar(50)';
AdoDataset1.Execute; // könnte auch ExecSQL heisen; bitte in Hilfe nachschauen
  Mit Zitat antworten Zitat
niao

Registriert seit: 15. Nov 2006
Ort: Erfurt
27 Beiträge
 
Delphi XE4 Professional
 
#5

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle

  Alt 18. Nov 2008, 23:53
Hi,

vielen Dank für die rasche Antwort, aber funcioniert nicht.

Procedure SetNewFiled(aConnection: TADOConnection; TableName, FieldName: String);
begin
ADOQuery.Connection := aConnection;
ADOQuery.SQL.Text := 'ALTER TABLE ' + TableName + 'ADD COLUMN ' + FieldName +' varchar(200)';
ADOQuery.ExecSQL;
end;

Bei ExecSQL kommmt folgender Fehler: Exception EOleException: Syntaxfehler in ALTER TABLE-Anweisung

Wer kann bitte helfen!
Eduard
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle

  Alt 19. Nov 2008, 00:22
Delphi-Quellcode:
ADOQuery.SQL.Text := 'ALTER TABLE ' + TableName + ' ADD COLUMN ' + FieldName +' varchar(200)';
                                                   ^
  Mit Zitat antworten Zitat
niao

Registriert seit: 15. Nov 2006
Ort: Erfurt
27 Beiträge
 
Delphi XE4 Professional
 
#7

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle

  Alt 19. Nov 2008, 00:52
Hi,

vielen Dank! Jetzt funktioniert es.

procedure SetNewFiled(aConnection: TADOConnection; TableName, FieldName: String);
var
ADOQuery: TADOQuery;
begin
with ADOQuery.Create(nil) do
try
ConnectionString := GetDSN;
Connection := aConnection;
SQL.Text := 'ALTER TABLE ' + TableName + ' ADD COLUMN ' + FieldName +' varchar(200)';
ExecSQL;
finally
Free;
end;
end;
Eduard
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:55 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