Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle ein (https://www.delphipraxis.net/123943-wie-fuege-ich-zur-laufzeit-ein-feld-eine-accesstabelle-ein.html)

niao 11. Nov 2008 22:16

Datenbank: Access • Zugriff über: DAO

Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle ein
 
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!

sx2008 12. Nov 2008 07:14

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle
 
Folgende SQL Anweisung absetzen:
SQL-Code:
ALTER TABLE MeineTabelle ADD COLUMN NeuesFeld varchar(50)
http://office.microsoft.com/de-at/ac...314311031.aspx

niao 17. Nov 2008 19:17

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle
 
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!

sx2008 17. Nov 2008 20:26

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle
 
Delphi-Quellcode:
AdoDataset1.CommandText := 'ALTER TABLE MeineTabelle ADD COLUMN NeuesFeld varchar(50)';
AdoDataset1.Execute; // könnte auch ExecSQL heisen; bitte in Hilfe nachschauen

niao 18. Nov 2008 22:53

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle
 
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!

omata 18. Nov 2008 23:22

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle
 
Delphi-Quellcode:
ADOQuery.SQL.Text := 'ALTER TABLE ' + TableName + ' ADD COLUMN ' + FieldName +' varchar(200)';
                                                   ^

niao 18. Nov 2008 23:52

Re: Wie füge ich zur Laufzeit ein Feld in eine Accesstabelle
 
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;


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