Функция _SQLite_LastInsertRowID

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


_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()