Функция _SQLite_FetchData

 ↑  ←  Описание функции


_SQLite_FetchData

Выбирает одну строку данных из запроса _SQLite_Query()

#include <SQLite.au3>
_SQLite_FetchData($hQuery, ByRef $aRow [, $fBinary = False [, $fDoNotFinalize = False]])

Параметры

$hQuery Дескриптор запроса, созданный _SQLite_Query()
$aRow Одномерный массив, содержащий строку данных
$fBinary [необязательный] Включает бинарный режим (массив $aRow будет содержать двоичные данные)
$fDoNotFinalize [необязательный] Переключатель может быть установлен в True, если вам нужно держать запрос открытым для дальнейшего использования.
(Это в дальнейшем вызывает ответственность за вызов _SQLite_QueryFinalize перед закрытием базы данных.)

Возвращаемое значение

Успех:Возвращает $SQLITE_OK
Ошибка:Возвращаемое значение можно сравнить с константами $SQLITE_ *
@error:-1 - SQLite сообщил об ошибке (Проверьте возвращаемое значение)
1 - Ошибка вызова 'sqlite3_step' SQLite API
2 - Ошибка вызова 'sqlite3_data_count' SQLite API
3 - Ошибка вызова 'sqlite3_column_text16' SQLite API
4 - Ошибка вызова 'sqlite3_column_type' SQLite API
5 - Ошибка вызова 'sqlite3_column_bytes' SQLite API
6 - Ошибка вызова 'sqlite3_column_blob' SQLite API
7 - Вызов предотвращен безопасным режимом

См. также

_SQLite_Query, _SQLite_QueryFinalize

Пример

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

Local $hQuery, $aRow, $aNames
_SQLite_Startup()
ConsoleWrite("Версия библиотеки SQLite = " & _SQLite_LibVersion() & @CRLF)
_SQLite_Open() ; открывает базу данных в памяти
_SQLite_Exec(-1, "CREATE TABLE aTest (a,b,c);") ; создаёт таблицу "aTest"
_SQLite_Exec(-1, "INSERT INTO aTest(a,b,c) VALUES ('c','2','мир');") ; вставляет значения в таблицу
_SQLite_Exec(-1, "INSERT INTO aTest(a,b,c) VALUES ('b','3',' ');")
_SQLite_Exec(-1, "INSERT INTO aTest(a,b,c) VALUES ('a','1','Привет');")
_SQLite_Query(-1, "SELECT ROWID,* FROM aTest ORDER BY a;", $hQuery)
_SQLite_FetchNames($hQuery, $aNames) ; читает имена столбцов
$sRes = StringFormat(" %-10s  %-10s  %-10s  %-10s ", $aNames[0], $aNames[1], $aNames[2], $aNames[3]) & @CRLF
While _SQLite_FetchData($hQuery, $aRow, False, False) = $SQLITE_OK ; читает вывод следующей строки
    $sRes &= StringFormat(" %-10s  %-10s  %-10s  %-10s ", $aRow[0], $aRow[1], $aRow[2], $aRow[3]) & @CRLF
WEnd
_SQLite_QueryFinalize($hQuery) ; завершает запрос
_SQLite_Exec(-1, "DROP TABLE aTest;") ; удаляет таблицу "aTest"
_SQLite_Close()
_SQLite_Shutdown()

MsgBox(0, 'Сообщение', $sRes)
; вывод:
;
;  rowid       a           b           c
;  3           a           1           Привет
;  2           b           3
;  1           c           2           мир