UDF > SQLite >


_SQLite_LastInsertRowID

Retourne le ROWID de la plus récente insertion dans la base de données par cette connexion

#include <SQLite.au3>
_SQLite_LastInsertRowID ( [$hDB = -1] )

Paramètre

$hDB [optionnel] Une base de données ouverte ou -1 pour utiliser la dernière base de données ouverte

Valeur de retour

Succès: Retourne ROWID.
Échec: Retourne 0.
@error: 1 - Erreur dans l'appel de l'API SQLite 'sqlite3_last_insert_rowid'
2 - Appel empêché par SafeMode

Exemple

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

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

_SQLite_Startup()
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite.dll Can't be Loaded!")
    Exit -1
EndIf
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
_SQLite_Open() ; Ouvre une base de données :memory:
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!")
    Exit -1
EndIf

; Exemple de table
; Nom | Âge
; -----------------------
; Alice | 43
; Bob | 28
; Cindy | 21

; _SQLite_Exec() et _SQLite_Execute() sont assez semblables
If Not _SQLite_Exec(-1, "CREATE TEMP TABLE persons (Name, Age);") = $SQLITE_OK Then _
        MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Alice','43');") = $SQLITE_OK Then _
        MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Bob','28');") = $SQLITE_OK Then _
        MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())
If Not _SQLite_Exec(-1, "INSERT INTO persons VALUES ('Cindy','21');") = $SQLITE_OK Then _
        MsgBox($MB_SYSTEMMODAL, "SQLite Error", _SQLite_ErrMsg())

; _SQLite_LastInsertRowID() nous dit 'ligne Cindy'
MsgBox($MB_SYSTEMMODAL, "_SQLite_LastInsertRowID()", _SQLite_LastInsertRowID())

; Query
$iRval = _SQLite_GetTable(-1, "SELECT * FROM persons;", $aResult, $iRows, $iColumns)
If $iRval = $SQLITE_OK Then
    ; $aResult ressemble à ceci:
    ; [0] = 8
    ; [1] = Nom
    ; [2] = Age
    ; [3] = Alice
    ; [4] = 43
    ; [5] = Bob
    ; [6] = 28
    ; [7] = Cindy
    ; [8] = 21
    _ArrayDisplay($aResult, "Query Result")
Else
    MsgBox($MB_SYSTEMMODAL, "SQLite Error: " & $iRval, _SQLite_ErrMsg())
EndIf

_SQLite_Close()
_SQLite_Shutdown()