DatabaseUpdate()
Syntax
Ergebnis = DatabaseUpdate(#Datenbank, Abfrage$)Beschreibung
Führt eine Änderungs-Abfrage in der angegebenen Datenbank aus. Dieser Befehl gibt keine Einträge zurück. Um eine 'SELECT'-ähnliche Abfrage durchzuführen, verwenden Sie DatabaseQuery().
Parameter
#Datenbank Die zu verwendende Datenbank. Abfrage$ Die auszuführende Abfrage.
Rückgabewert
Gibt einen Wert ungleich Null zurück, wenn die Abfrage erfolgreich war, oder Null wenn sie fehlgeschlagen ist (wegen eines SQL-Fehlers oder einer falsch formatierten Abfrage).
Anmerkungen
Diese Funktion ist dem DatabaseQuery() Befehl ähnlich, ist jedoch unabhängig vom NextDatabaseRow() Befehl. Somit ist es nicht möglich, mit diesem Befehl eine Abfrage wie 'SELECT' auszuführen. Dieser Befehl ist nützlich für das Aktualisieren (Updaten) von Einträgen in der Datenbank. Im Falle eines Fehlers kann der Fehlertext mittels DatabaseError() ermittelt werden.
Die Update-Anforderung kann Platzhalter für Bindungsvariablen (englisch "bind variables") enthalten. Solche Variablen müssen vor dem Aufruf der Funktion mittels SetDatabaseString(), SetDatabaseLong() etc. gesetzt werden. Nach dem Ausführen der Aktualisierung werden die gebundenen Variablen (englisch "bound variables") gelöscht und müssen für zukünftige Aufrufe erneut festgelegt werden. Die Syntax für das Angeben der Bindungsvariablen in SQL ist abhängig von der Datenbank. Das Beispiel unten zeigt die Syntax.
Beispiel
; Zuerst stellen wir eine Verbindung zu der 'employee' (Angestellten) Tabelle her ; If DatabaseQuery(#Datenbank, "SELECT * FROM employee") ; Ermittelt alle Einträge in der 'employee' Tabelle While NextDatabaseRow(#Datenbank) ; alle Einträge durchlaufen ; Aktualisieren des 'checked' Felds für jeden Eintrag, vorausgesetzt ; das 'id' Feld ist das erste in der 'employee' Tabelle ; DatabaseUpdate(#Datenbank, "UPDATE employee SET checked=1 WHERE id="+GetDatabaseString(#Datenbank, 0)) Wend FinishDatabaseQuery(#Datenbank) EndIf
Beispiel: Bindungsvariablen mit SQLite und ODBC
; SQLite und ODBC haben die gleiche Syntax für Bindungsvariablen. Diese werden durch das '?' Zeichen angegeben. ; SetDatabaseLong(0, 0, 1) SetDatabaseString(0, 1, "test") DatabaseUpdate(0, "UPDATE employee SET checked=? WHERE id=?")
Beispiel: PostgreSQL
; PostgreSQL verwendet eine andere Syntax: $1, $2.. innerhalb der Anweisung, um die undefinierten Parameter anzugeben ; SetDatabaseLong(0, 0, 1) SetDatabaseString(0, 1, "test") DatabaseUpdate(0, "UPDATE employee SET checked=$1 WHERE id=$2")
Siehe auch
DatabaseQuery() SetDatabaseString(), SetDatabaseLong(), SetDatabaseQuad(), SetDatabaseFloat(), SetDatabaseDouble() SetDatabaseBlob(), SetDatabaseNull()
Unterstützte OS
Alle