#include <SQLite.au3>
#include <SQLite.dll.au3>

Local $aResult, $iRows, $iColumns, $iRval

_SQLite_Startup()
If @error Then
	MsgBox(16, "Ошибка SQLite", "Не удалось загрузить SQLite3.dll")
	Exit -1
EndIf
ConsoleWrite("Версия библиотеки SQLite = " & _SQLite_LibVersion() & @CRLF)
_SQLite_Open() ; открывает базу данных в памяти
If @error Then
	MsgBox(16, "Ошибка SQLite", "Не удалось загрузить базу данных")
	Exit -1
EndIf

; пример таблицы
; 	Имя	| Возраст
; 	-----------------------
; 	Алиса 	| 43
; 	Андрей	| 28
; 	Елена	| 21

If Not _SQLite_Exec(-1, "CREATE TEMP TABLE persons (Имя, Возраст);") = $SQLITE_OK Then _  ; создаёт таблицу "persons"
		MsgBox(16, "Ошибка SQLite", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Алиса','43');") = $SQLITE_OK Then _ ; вставляет значения в таблицу
		MsgBox(16, "Ошибка SQLite", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Андрей','28');") = $SQLITE_OK Then _
		MsgBox(16, "Ошибка SQLite", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Елена','21');") = $SQLITE_OK Then _
		MsgBox(16, "Ошибка SQLite", _SQLite_ErrMsg())

; запрос
$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns) ; возвращает двумерный массив в $aResult
If $iRval = $SQLITE_OK Then
	; _SQLite_Display2DResult($aResult) ; выводит результат в консоль
	MsgBox(0, 'Сообщение', _SQLite_Display2DResult($aResult, 0, 1)) ; возвращает результат в строку

; 	  $aResult выглядит так:
;
; 	 Имя	Возраст
; 	 Алиса	43
; 	 Андрей	28
; 	 Елена	21
;
;    если переключить размерность в _SQLite_GetTable2d, то результат будет таким:
;
; 	 Имя  Алиса  Андрей  Елена
; 	 Возраст   43     28   21

Else
	MsgBox(16, "Ошибка SQLite: " & $iRval, _SQLite_ErrMsg())
EndIf

_SQLite_Close()
_SQLite_Shutdown()