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