Moin...
Ich kann das so nicht stehen lassen...du willst ja aus den Fehlern lernen.
1. Beschäftige dich mal mit Begriff "Owner"
http://docwiki.embarcadero.com/Libra...omponent.Owner
2. Beschäftige dich mit dem Begriff "Parent" (für Komponenten)
http://docwiki.embarcadero.com/Libra...Control.Parent
3. Warum eine Table? Man kann das auch mit einer
Query machen. Im
OI trägt man das
SQL ein. Vorteil: Wenn man andere Daten braucht, braucht man nur das
SQL zu ändern (Bedingungen hinzufügen) und nicht die Komponente tauschen.
Delphi-Quellcode:
var
AdoQuery1: TAdoQuery;
// Auf Grund der Namensgebung sind das Komponenten auf dem Formular. Diese hällt die Gesamtdaten.
//AdoConnection: TADOConnection; // wie himutsu schon sagte... "Query.Connection := AdoQuery1.Connection"
Str1:
String;
private // Abschnitt in der Form
Query: TAdoQuery;
// nicht auf die Form legen! Das nennt man dynamisch erzeugen. Name egal.
...
if AdoQuery1.FieldList.Find(Str1) =
nil then
begin
AdoQuery1.Close;
// kürzer
Query := TAdoQuery.Create(
nil);
// Owner = nil weil du gibst das Objekt selbst frei. (Query.Free)
try
Query.Connection := AdoQuery1.Connection;
Query.SQL.Text := '
ALTER TABLE ' + TableName + '
ADD ' + FieldName + '
INTEGER';
// kürzer...Tablename = AdoQuery1
Query.ExecSQL;
// ggf. in try/except wenn man auf die Fehler reagieren will
finally
Query.Free;
end;
AdoQuery1.Open;
// kürzer... Wenn du die Query nicht schließt, reicht ein AdoQuery1.Refresh
end;