Funktionreferenz


_SQLite_Exec

Beschreibung anzeigen in

Führt eine SQLite Abfrage durch, bearbeitet jedoch keine Ergebnisse

#include <SQLite.au3>
_SQLite_Exec ( $hDB, $sSQL [, $sCallBack = ""] )

Parameter

$hDB Eine offene Datenbank, mit -1 wird die zuletzt geöffnete Datenbank verwendet
$sSQL SQL-Anweisung die ausgeführt werden soll
$sCallback [optional] Wenn angegeben, wird diese Funktion für jede Zeile ausgeführt.

Rückgabewert

Erfolg: $SQLITE_OK
Fehler: ein Wert, welcher mit den $SQLITE_* Konstanten verglichen werden kann.
@error: -1 - SQLite hat einen Fehler festgestellt (Rückgabewert überprüfen)
1 - Fehler beim Aufruf des SQLite API 'sqlite3_exec'
2 - Aufruf vom Sicherheitsmodus verhindert
3 - Fehler in der Callback-Funktion von _SQLite_GetTable2D()
4 - Fehler beim konvertieren des SQL-Auszuges in UTF-8

Bemerkungen

Die SQLite-Dateien können von https://www.autoitscript.com/autoit3/pkgmgr/sqlite heruntergeladen werden. Abgespeichert können diese in @ScriptDir, @SystemDir, @WindowsDir oder @WorkingDir werden.

Die Callback-Funktion muss einen Parameter annehmen und kann $SQLITE_ABORT zurückgeben, um die Bearbeitung zu stoppen (siehe Beispiel).
Die erste Zeile in der Callback-Sequenz wird der Spaltenname sein.

Verwandte Funktionen

_SQLite_GetTable, _SQLite_GetTable2d, _SQLite_Query

Beispiel

#include <sqlite.au3>
#include <sqlite.dll.au3>

Local $hQuery
_SQLite_Startup()
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
_SQLite_Open()

; Ohne $sCallback ist es eine ergebnislose Abfrage
_SQLite_Exec(-1, "Create table tblTest (a,b int,c single not null);" & _
        "Insert into tblTest values ('1',2,3);" & _
        "Insert into tblTest values (Null,5,6);")

Local $d = _SQLite_Exec(-1, "Select oid,* From tblTest", "_cb") ; _cb wird für jede Zeile aufgerufen

Func _cb($aResult)
    For $s In $aResult
        ConsoleWrite($s & @TAB)
    Next
    ConsoleWrite(@CRLF)
    ; Rückgabewert: $SQLITE_ABORT ; Bricht den Prozess ab und setzt @error in _SQLite_Exec()
EndFunc   ;==>_cb
_SQLite_Close()
_SQLite_Shutdown()

; Ausgabe:
;rowid  a   b   c
;~  1       1   2   3
;~  2           5   6