@Frühlingsrolle
	  |  baumina hat folgendes geschrieben  : | 
		  | ZQuery1.Active := true; ist das Gleiche wie ZQuery1.Open;. Wenn du ZQuery1.ExecSQL; verwendest, dann darfst du kein ZQuery1.Active := true; mehr machen.
 | 
Der Hintergrund ist folgender:
ExecSQL führt einen SQL-Befehl aus, der keine Datenmenge zurückliefert.
Open bzw. Active := True setzen eine zuvor selektierte Datenmenge aktiv, so daß sie dem Programm zur weiteren Bearbeitung zur Verfügung steht.
Delete ist z.B. ein SQL-Befehl, der keine Datenmenge zurückliefert, wird also mit ExecSQL gestartet.
Select liefert eine Datenmenge zurück und benötigt daher Open.
Update und Insert sind wieder SQL-Befehle, die keine Datenmenge zurückliefern.
So kann man sich orientieren, ob nun Open bzw. Active := True oder ExecSQL angesagt sind.
	  |  Frühlingsrolle hat folgendes geschrieben  : | 
		  | Beim Versuch eine Spalte nachträglich hinzuzufügen: 
 
 		                       SQL-Anweisung 
 									| 1:2:
 
 | ALTER TABLE tbl_Test ADD COLUMN (Nachname VARCHAR(20)) // oderALTER TABLE tbl_Test ADD COLUMN Nachname AS VARCHAR(20)
 |  bekomme ich erneut die Fehlermeldung:
 
 
 		                       Quelltext 
 									| 1:
 | SQL Error: SQL logic error or missing database					 |  
 Woran kann es liegen?
 | 
Das Dataset oder Query hat womöglich keine Verbindung zur Datenbank. Du mußt dem Query, das du dazu verwendest, eine SQL-Anweisung an die DB zu senden, auch die entsprechende DB-Connection-Komponente zuweisen. Letztere muß aktiv sein, bevor du ExecSQL aufrufst.