Exécute les commandes dans sqlite3.exe
#include <SQLite.au3>
_SQLite_SQLiteExe ( $sDatabaseFile, $sInput, ByRef $sOutput [, $sSQLiteExeFilename = "sqlite3.exe" [, $bDebug = False]] )
$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) |
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 |
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.
#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