Passes Out a 1Dimensional Array Containing Tablenames and Data of Executed Query
#include <SQLite.au3>
_SQLite_GetTable ( $hDB, $sSQL, ByRef $aResult, ByRef $iRows, ByRef $iColumns [, $iCharSize = -1] )
$hDB | An open database, use -1 to use last opened database |
$sSQL | SQL Statement to be executed |
$aResult | Passes out the result |
$iRows | Passes out the amount of 'data' Rows |
$iColumns | Passes out the amount of columns |
$iCharSize | [optional] Specifies the maximal size of a data field |
Success: | $SQLITE_OK. |
Failure: | a value that can be compared against $SQLITE_* constants. |
@error: | -1 - SQLite reported an error (Check Return value) 1 - Call Prevented by SafeMode 2 - Error returned by _SQLite_Query() in @extended 3 - Error returned by _SQLite_FetchNames() in @extended 4 - Error returned by _SQLite_FetchData() in @extended |
The number of values inserted into $aResult will be (($iRows) + 1) * ($iColumns) this number is inserted into $aResult[0].
A NULL will be returned as numeric 0.
If you do not need a result (or if there will be none) consider using _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() ; Open a :memory: database
If @error Then
MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!")
Exit -1
EndIf
; Example 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 Looks Like this:
; [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()