_SQLite_LastInsertRowID
Возвращает идентификатор строки последней вставки в базу данных этим подключением
#include <SQLite.au3>
_SQLite_LastInsertRowID([$hDB])
Параметры
$hDB | [необязательный] Дескриптор открытой базы данных, укажите -1 для использования последней открытой базы данных |
Возвращаемое значение
Успех: | Возвращает идентификатор строки |
Ошибка: | Возвращает 0 |
@error: | 1 - Ошибка вызова 'sqlite3_last_insert_rowid' SQLite API |
2 - Вызов предотвращен безопасным режимом |
Пример
#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
; _SQLite_Exec() и _SQLite_Execute() очень похожи
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())
; _SQLite_LastInsertRowID() указывает на строку 'Елена'
MsgBox(0, "_SQLite_LastInsertRowID()", _SQLite_LastInsertRowID())
; запрос
$iRval = _SQLite_GetTable(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns)
If $iRval = $SQLITE_OK Then
; $aResult выглядит так:
; [0] = 8
; [1] = Имя
; [2] = Возраст
; [3] = Алиса
; [4] = 43
; [5] = Андрей
; [6] = 28
; [7] = Елена
; [8] = 21
_ArrayDisplay($aResult, "Результат запроса")
Else
MsgBox(16, "Ошибка SQLite: " & $iRval, _SQLite_ErrMsg())
EndIf
_SQLite_Close()
_SQLite_Shutdown()