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] )
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","SQLite3.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_OKThen _
MsgBox ($MB_SYSTEMMODAL,"SQLite Error",_SQLite_ErrMsg ())
If Not _SQLite_Exec (-1,"INSERT INTO persons VALUES ('Alice','43');")= $SQLITE_OKThen _
MsgBox ($MB_SYSTEMMODAL,"SQLite Error",_SQLite_ErrMsg ())
If Not _SQLite_Exec (-1,"INSERT INTO persons VALUES ('Bob','28');")= $SQLITE_OKThen _
MsgBox ($MB_SYSTEMMODAL,"SQLite Error",_SQLite_ErrMsg ())
If Not _SQLite_Exec (-1,"INSERT INTO persons VALUES ('Cindy','21');")= $SQLITE_OKThen _
MsgBox ($MB_SYSTEMMODAL,"SQLite Error",_SQLite_ErrMsg ())
; Query
$iRval= _SQLite_GetTable (-1,"SELECT * FROM persons;",$aResult,$iRows,$iColumns)
If $iRval= $SQLITE_OKThen
; $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 ()