UDF > SQLite >


_SQLite_SQLiteExe

Ex�cute les commandes dans sqlite3.exe

#include <SQLite.au3>
_SQLite_SQLiteExe ( $sDatabaseFile, $sInput, ByRef $sOutput [, $sSQLiteExeFilename = "sqlite3.exe" [, $bDebug = False]] )

Param�tres

$sDatabaseFile Nom de fichier de la base de donn�es
$sInput Commandes pour sqlite3.exe
$sOutput Param�tre de sortie pour sqlite3.exe
$sSQLiteExeFilename [optionnel] Chemin de sqlite3.exe
$bDebug [optionnel] Ecrit le code de sortie de sqlite3.exe gr�ce � la fonction de rappel sp�cifi�e dans _SQLite_Startup() (par d�faut, ne pas �crire)

Valeur de retour

Succ�s: Retourne $SQLITE_OK.
�chec: Retourne une valeur qui peut �tre compar�e aux constantes $SQLITE_*.
@error: 1 - Ne peut pas cr�er de nouvelles bases de donn�es
2 - sqlite3.exe est introuvable
3 - Erreur SQL ou SQL incompl�te
4 - Ne peut pas ouvrir le fichier d'entr�e

Remarques

Ex�cutez sqlite3.exe, pressez Enter et tapez .Help pour plus d'informations sur les commandes SQLite3.exe.

Si il ne peut pas �tre trouv�, sqlite3.exe est t�l�charg� dans @TempDir.
D'autres versions peuvent �tre trouv�es sur le Site Web SQLite.

Exemple

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

; Les noms de fichiers
Local $sTsvFile = FileGetShortName(_TempFile(@ScriptDir, "~", ".tsv"))
Local $sDbFile = FileGetShortName(_TempFile(@ScriptDir, "~", ".db"))

; Cr�e Tsv fichier
FileWriteLine($sTsvFile, "a" & @TAB & "b" & @TAB & "c")
FileWriteLine($sTsvFile, "a1" & @TAB & "b1" & @TAB & "c1")
FileWriteLine($sTsvFile, "a2" & @TAB & "b2" & @TAB & "c2")

; Importe (� l'aide SQLite3.exe)
Local $sIn, $sOut, $i, $sCreate = "CREATE TABLE TblImport ("; 
For $i = 1 To _StringCountOccurance(FileReadLine($sTsvFile, 1), @TAB) + 1
    $sCreate &= "Column_" & $i & ","
Next
$sCreate = StringTrimRight($sCreate, 1) & ");"
$sIn = $sCreate & @CRLF ; Cr�er un tableau
$sIn &= ".separator \t" & @CRLF ; S�lectionnez TAB comme s�parateur
$sIn &= ".import '" & $sTsvFile & "'TblImport" & @CRLF
_SQLite_SQLiteExe($sDbFile, $sIn, $sOut, -1, True)

If @error = 0 Then
    ; Voir les tableaux (en utilisant sqlite3.dll)
    Local $iRows, $iColumns, $aRes
    _SQLite_Startup()
    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    _SQLite_Open($sDbFile)
    _SQLite_GetTable2d(-1, "SELECT ROWID,* FROM TblImport;", $Ares, $iRows, $iColumns)
    _SQLite_Display2DResult($aRes) ; Sortie de la console
    _SQLite_Close()
    _SQLite_Shutdown()
Else
    If @error = 2 Then
        ConsoleWrite("ERROR: Sqlite3.exe file not found" & @CRLF)
    Else
        ConsoleWrite("ERROR: @error=" & @error & " when calling _SQLite_SQLiteExe" & @CRLF)
    EndIf
EndIf

; Supprime les fichiers temporaires
FileDelete($sTsvFile)
FileDelete($sDbFile)

; sortie :
; rowid Colonne_1 Column_2 Column_3
; 1 a b c
; 2 a1 b1 c1
; 3 a2 b2 c2

Func _StringCountOccurance($sSearchString, $sSubString, $iCaseSense = $STR_NOCASESENSE)
    ; Retourne le nombre de $sSubString dans $sSearchString
    Local $iOccCnt = 1
    While StringInStr($sSearchString, $sSubString, $iCaseSense, $iOccCnt) > 0
        $iOccCnt += 1
    Wend

    Return $iOccCnt - 1
EndFunc   ;==>_StringCountOccurance