UDF > SQLite >


_SQLite_Open

Ouvre ou crée une base de données SQLite

#include <SQLite.au3>
_SQLite_Open ( [$sDatabase_Filename = ":memory:" [, $iAccessMode = Default [, $iEncoding = $SQLITE_ENCODING_UTF8]]] )

Paramètres

$sDatabase_Filename [optionnel] Nom de fichier Databse, par défaut ouvrira une base de données en mémoire.
$iAccessMode [optionnel] Flags du mode d'accès. Par défaut, $SQLITE_OPEN_READWRITE + $SQLITE_OPEN_CREATE
$iEncoding [optionnel] Flags du mode de codage, utilisé seulement lors de la création. Par défaut, $SQLITE_ENCODING_UTF8

Valeur de retour

Succès: Retourne le handle de la base de données.
Échec: Retourne 0.
@error: -1 - SQLite a signalé une erreur (Vérifiez @extended)
 1 - Erreur dans l'appel de l'API SQLite 'sqlite3_open_v2'
 2 - Erreur lors de la conversion du fichier en UTF-8
 3 - _SQLite_Startup() n'a pas encore été appelé
@extended: La valeur peut être comparée aux constantes $SQLITE_*

Remarques

Il n'est pas nécessaire de stocker le handle de la base de données, sauf si vous utilisez plus d'une base de données dans la même session.
Les fonctions qui utilisent le handle utilisent par défaut la dernière base ouverte.

Pour créer une base de données encodées dans UFT16, il suffit d'utiliser $iEncoding = $SQLITE_ENCODING_UTF16.

Des bases de données en mémoire, temporaires et permanentes peuvent être ouvertes:
    $hdb = _SQLite_Open() ; ouvre une DB en mémoire privée et temporaire
    $hdb = _SQLite_Open ( Par défaut,... ); idem
    $hdb = _SQLite_Open ( ': memory: ',...); idem

    $hdb = _SQLite_Open ('',... ); ouvre une BD privée, temporaire sur le disque

    $hdb = _SQLite_Open ('abc.db ',...); ouvre ou crée une BD permanebte, partageable sur disque nommé 'abc.db'

    Si vous insistez à avoir une confusion:
    $hdb = _SQLite_Open ('./:memory : ',...); ouvre ou crée une BD permanente, partageable sur disque nommé ':memory:'

Contrairement à des DBs, permanente sur disque, des DBs en mémoire,temporaire ne peuvent pas être partagées ni être utilisé pour IPC (Inter Process Communication) et sont détruits à la fin de la connexion.

En relation

_SQLite_Close

Exemple

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

_SQLite_Startup()
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite3.dll Can't be Loaded!")
    Exit -1
EndIf
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)

_SQLite_Open() ; Crée une base de données :memory: et n'utilise pas son handle pour y faire référence
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't create a memory Database!")
    Exit -1
EndIf
_SQLite_Close()

Local $hMemDb = _SQLite_Open() ; Crée une base de données :memory:
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't create a memory Database!")
    Exit -1
EndIf

Local $hTmpDb = _SQLite_Open('') ; Crée une base de données temporaire sur disque
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't create a temporary Database!")
    Exit -1
EndIf

Local $sDbName = _TempFile()
Local $hDskDb = _SQLite_Open($sDbName) ; Ouvre une base de données permanente sur disque
If @error Then
    MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't open or create a permanent Database!")
    Exit -1
EndIf

; Nous pouvons utiliser les 3 bases de données si nécessaire  en faisant référence à leur handle

; Ferme les DBs que nous avons créées, dans n'importe quel ordre
_SQLite_Close($hTmpDb) ; Les DBs temporaires sont effacées automatiquement à la fermeture
_SQLite_Close($hDskDb) ; DB est un fichier standard qui peut être réouvert ultérieurement
_SQLite_Close($hMemDb)

; Nous n'avons pas vraiment besoin de cette DB
FileDelete($sDbName)

_SQLite_Shutdown()