Hallo m-werk,
frag doch in der Schleife nach, ob das Feld existiert:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var i : string;
begin
for i := 1 to 4 do
begin
if Not DataModule2.TheTable.FindField(FeldName[i]) then
begin
DataModule2.ADOQuery1.Close;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add(InsertStr[i]);
DataModule2.ADOQuery1.ExecSQL
end
end
end;
Dabei ist FeldName ein Array, der die Namen der neuen Felder enthält und TheTable der Name des Tabellenobjekts, das auf die zu ändernde Tabell zeigt. Dann kann das Programm beliebig oft gestartet werden, ohne etwas kaputt zu machen. Ich würde aber noch eine Meldung ausgeben, wieviele Felder hinzugefügt worden sind.