Führt eine SQLite Abfrage durch, bearbeitet jedoch keine Ergebnisse
#include <SQLite.au3>
_SQLite_Exec ( $hDB, $sSQL [, $sCallBack = ""] )
$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. |
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 |
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.
_SQLite_GetTable, _SQLite_GetTable2d, _SQLite_Query
#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