Ouvre ou crée une base de données SQLite
#include <SQLite.au3>
_SQLite_Open ( [$sDatabase_Filename = ":memory:" [, $iAccessMode = Default [, $iEncoding = $SQLITE_ENCODING_UTF8]]] )
$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 |
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_* |
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.
#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()