Retourne dans une variable de sortie un tableau à une dimension contenant les noms des tables et la requête exécutée
#include <SQLite.au3>
_SQLite_GetTable ( $hDB, $sSQL, ByRef $aResult, ByRef $iRows, ByRef $iColumns [, $iCharSize = -1] )
$hDB | Une base de données ouverte, utilisez -1 pour utiliser la base de données de la dernière ouverture |
$sSQL | Instruction SQL qui doit être exécutée |
$aResult | variable de sortie qui contiendra le résultat |
$iRows | variable de sortie qui contiendra le nombre de lignes de données |
$iColumns | variable de sortie qui contiendra le nombre de colonnes |
$iCharSize | [optionnel] Spécifie la taille maximale d'un champ de données |
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 - Appel Empêché par SafeMode 2 - Erreur retournée par _SQLite_Query() dans @extended 3 - Erreur retournée par _SQLite_FetchNames() dans @extended 4 - Erreur retournée par _SQLite_FetchData() dans @extended |
Le nombre de valeurs insérées dans $aResult sera (($iRows) + 1) * ($iColumns), ce nombre est inséré dans $aResult[0].
NULL sera retourné par la valeur numérique 0.
Si vous n'avez pas besoin d'un résultat (ou si il n'y en aura aucun) envisager d'utiliser _SQLite_Exec().
_SQLite_Exec, _SQLite_GetTable2d, _SQLite_Query
#include <Array.au3> #include <MsgBoxConstants.au3> #include <SQLite.au3> #include <SQLite.dll.au3> Local $aResult, $iRows, $iColumns, $iRval _SQLite_Startup() If @error Then MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite.dll Can't be Loaded!") Exit -1 EndIf ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF) _SQLite_Open() ; Ouvre une base de données :memory: If @error Then MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!") Exit -1 EndIf ; Exemple de Table ; Name | Age ; ----------------------- ; Alice | 43 ; Bob | 28 ; Cindy | 21 If Not _SQLite_Exec(-1, "CREATE TEMP TABLE persons (Name, Age); ") = $SQLITE_OK Then _ MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg()) If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Alice','43'); ") = $SQLITE_OK Then _ MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg()) If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Bob','28'); ") = $SQLITE_OK Then _ MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg()) If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Cindy','21'); ") = $SQLITE_OK Then _ MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg()) ; Query $iRval = _SQLite_GetTable(-1, "SELECT * FROM persons; ", $aResult, $iRows, $iColumns) If $iRval = $SQLITE_OK Then ; $aResult apparait comme ceci: ; [0] = 8 ; [1] = Name ; [2] = Age ; [3] = Alice ; [4] = 43 ; [5] = Bob ; [6] = 28 ; [7] = Cindy ; [8] = 21 _ArrayDisplay($aResult, "Query Result") Else MsgBox($MB_SYSTEMMODAL, "SQLite Error: " & $iRval, _SQLite_ErrMsg()) EndIf _SQLite_Close() _SQLite_Shutdown()