Function Reference


_SQLite_GetTableData2D

Passes out a 2Dimensional array containing data of executed query

#include <SQLite.au3>
_SQLite_GetTableData2D ( $hDB, $sSQL, ByRef $aResult, ByRef $iRows, ByRef $aNames )

Parameters

$hDB An Open Database, Use -1 To use Last Opened Database
$sSQL SQL Statement to be executed
$aResult Passes out the result (see remarks to get only data rows without header)
$iRows Passes out the amount of 'data' Rows
$aNames Passes out an array containing the Columns names

Return Value

Success: $SQLITE_OK.
Failure: a value that can be compared against $SQLITE_* constants.
@error: -1 - SQLite reported an error (Check Return value)
1 - Error Calling _SQLite_Query()
2 - Error calling SQLite API 'sqlite3_free_table'
3 - Call prevented by SafeMode
4 - Abort, Interrupt or @error set by Callback (@extended set to SQLite error)

Remarks

The number of values inserted into $aResult will be ($iRows) * ($iColumns).
A NULL will be returned as Numeric 0.
This function uses more memory than _SQLite_Query() / _SQLite_Fetch*()... but it's faster.
If you do not need a result (or if there will be none) consider using SQLite_Exec().

Related

_SQLite_Display2DResult, _SQLite_Exec, _SQLite_GetTable, _SQLite_GetTable2d, _SQLite_Query

Example

Retrieve Data without header

#include <MsgBoxConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
Local $aResult,$iRows,$aNames,$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 ())
$iRval= _SQLite_GetTableData2D (-1,"SELECT * FROM persons;",$aResult,$iRows,$aNames)
If $iRval= $SQLITE_OKThen
_SQLite_Display2DResult ($aResult)
; $aResult looks like this:
; Alice 43
; Bob  28
; Cindy 21
Else
MsgBox ($MB_SYSTEMMODAL,"SQLite Error: "&$iRval,_SQLite_ErrMsg ())
EndIf
_SQLite_Close ()
_SQLite_Shutdown ()

AltStyle によって変換されたページ (->オリジナル) /