Escaped einen String oder eine Nummer, um als TEXT in SQLite-Befehlen verwendet werden zu können
#include <SQLite.au3>
_SQLite_Escape ( $sString [, $iBuffSize = Default] )
$sString | Der String, der escaped werden soll |
$iBuffSize | [optional] Größe des zurückzugebenden escapeden Strings (Standard = kompletter escapeder String) |
Erfolg: | den escapten String |
Fehler: | einen leeren String und setzt das @error Flag auf ungleich null |
@error: | 1 - Fehler beim aufrufen von SQLite API 'sqlite3_mprintf' 2 - Fehler beim konvertieren des Strings in UTF-8 3 - Fehler beim lesen des escapten Strings |
Die SQLite-Dateien können von https://www.autoitscript.com/autoit3/pkgmgr/sqlite heruntergeladen werden. Abgespeichert können diese in @ScriptDir, @SystemDir, @WindowsDir oder @WorkingDir werden.
Der String wird dahingehend angepasst, dass er in einfachen Anführungszeichen verwendet werden kann.
Zum Beispiel würde "It's a fine day" so aussehen: "'It''s a fine day'"
Für binäre Daten ist _SQLite_Encode() zu benutzen.
Für numerische Werte, die als solche gespeichert werden sollen, sind einfache Verkettungen zu verwenden.
#include <SQLite.au3>
#include <SQLite.dll.au3>
_SQLite_Startup()
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
Local $sTestString, $i, $aRow
For $i = 1 To 255
$sTestString &= Chr($i)
Next
_SQLite_Open()
_SQLite_Exec(-1, "CREATE TABLE Test (a)")
_SQLite_Exec(-1, "INSERT INTO Test VALUES (" & _SQLite_Escape($sTestString) & ")")
_SQLite_QuerySingleRow(-1, "SELECT a FROM Test LIMIT 1", $aRow)
If $aRow[0] = $sTestString Then ConsoleWrite("! Absolut identisch !" & @CRLF)
_SQLite_Shutdown()