Entwickler-Ecke

Datenbanken - SQLite Verbindung herstellen und Tabelle anlegen


Delete - Di 21.04.15 22:01
Titel: SQLite Verbindung herstellen und Tabelle anlegen
- Nachträglich durch die Entwickler-Ecke gelöscht -


baumina - 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.


Delete - Mi 22.04.15 11:45

- Nachträglich durch die Entwickler-Ecke gelöscht -


Delete - Mi 06.05.15 18:55

- Nachträglich durch die Entwickler-Ecke gelöscht -


Delete - 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:


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:


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.


Delete - Mi 06.05.15 20:39

- Nachträglich durch die Entwickler-Ecke gelöscht -