Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 21.04.15 22:01 
- Nachträglich durch die Entwickler-Ecke gelöscht -
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Mi 22.04.15 07:15 
ZQuery1.Active := true; ist das Gleiche wie ZQuery1.Open;.
Wenn du ZQuery1.ExecSQL; verwendest, dann darfst du kein ZQuery1.Active := true; mehr machen.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 22.04.15 11:45 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 06.05.15 18:55 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 06.05.15 19:10 
@Frühlingsrolle

user profile iconbaumina hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Beim Versuch eine Spalte nachträglich hinzuzufügen:

ausblenden SQL-Anweisung
1:
2:
ALTER TABLE tbl_Test ADD COLUMN (Nachname VARCHAR(20)) // oder
ALTER TABLE tbl_Test ADD COLUMN Nachname AS VARCHAR(20)

bekomme ich erneut die Fehlermeldung:

ausblenden 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.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 06.05.15 20:39 
- Nachträglich durch die Entwickler-Ecke gelöscht -