Exécute une requête SQLite mais ne gère pas les résultats
#include <SQLite.au3>
_SQLite_Exec ( $hDB, $sSQL [, $sCallBack = ""] )
$hDB | Une base de données ouverte, utilisez -1 pour utiliser la dernière base de données ouverte |
$sSQL | Instruction SQL qui doit être exécutée |
$sCallback | [optionnel] Si spécifié, la fonction sera appelée pour chaque ligne |
Succès: | Retourne $SQLITE_OK. |
Échec: | Retourne une valeur qui peut être comparée aux constantes $SQLITE_*. |
@error: |
-1 - SQLite a signalé une erreur (Examinez la valeur de retour) 1 - Erreur dans l'appel de l'API SQLite 'sqlite3_exec' 2 - Appel empêché par SafeMode 3 - Erreur de traitement Callback à partir de l'intérieur de _SQLite_GetTable2d() 4 - Erreur lors de la conversion de l'instruction SQL en UTF-8 |
La fonction de rappel doit accepter 1 paramètre et peut retourner $SQLITE_ABORT pour arrêter le traitement (voir Exemple).
La première ligne de la séquence de rappel sera les noms des colonnes.
_SQLite_GetTable, _SQLite_GetTable2d, _SQLite_Query
#include <SQLite.au3> #include <SQLite.dll.au3> Local $hQuery, $aRow _SQLite_Startup() ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF) _SQLite_Open() ; Sans $sCallback l'instruction donne moins de résultat _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 rowid,* From tblTest", "_cb") ; _cb sera appelée pour chaque ligne Func _cb($aRow) For $s In $aRow ConsoleWrite($s & @TAB) Next ConsoleWrite(@CRLF) ; Retourne $SQLITE_ABORT ; Annulerait le processus et déclencherait @error dans _SQLite_Exec() EndFunc ;==>_cb _SQLite_Close() _SQLite_Shutdown() ; Sortie: ; 1 1 2 3 ; 2 5 6