![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLiteTable3.pas
SQL-Statement escapen
Hi,
ich schreibe mit folgenden Code Daten in eine SQLite-Datenbank:
Delphi-Quellcode:
Jetzt kann es aber sein das in einer der Variablen ein Anführungszeichen ( " ) enthalten ist. Dadurch wird das Statement natürlich nicht mehr ausführbar. Gibt es eine Möglichkeit dieses Zeichen zu escapen?
db.ExecSQL('INSERT INTO moz_cookies (id, name, value, host, path, expiry, lastAccessed, isSecure, isHTTPOnly)' +
' VALUES ("' + IntToStr(DateTimeToUnix(Cookies[iCookie].Created) * 1000000) + '", "' + Cookies[iCookie].Name + '", "' + Cookies[iCookie].Content + '", "' + Cookies[iCookie].Domain + '", "' + Cookies[iCookie].Path + '", "' + IntToStr(DateTimeToUnix(Cookies[iCookie].Expires)) + '", "' + IntToStr(DateTimeToUnix(Cookies[iCookie].LastAccessed) * 1000000) + '", "' + BoolToStr(Cookies[iCookie].Secure) + '", "' + BoolToStr(Cookies[iCookie].WholeDomain) + '")'); Grüße, Andy |
Re: SQL-Statement escapen
Ich würde (SQL-)Parameter verwenden:
SQL-Code:
INSERT INTO moz_cookies (id, name, value, host, path, expiry, lastAccessed, isSecure, isHTTPOnly) VALUES ( :id, :name, ...);
|
Re: SQL-Statement escapen
Hi,
Zitat:
|
Re: SQL-Statement escapen
Mit ParamByName. => F1
|
Re: SQL-Statement escapen
Zitat:
grussw KH |
Re: SQL-Statement escapen
Zitat:
EDIT: ich verwende diesen SQLite-Wrapper: ![]() |
Re: SQL-Statement escapen
Zitat:
Sie packt den übergebenen String in einfache Hochkommas was im Übrigen dem SQL-Standard entspricht. |
Re: SQL-Statement escapen
Zitat:
|
Re: SQL-Statement escapen
Dieser Kommentar steht zwar bei meiner SQLite.pas nicht aber die Funktion sqlite3_prepare ist vorhanden. Werds später ausprobieren. Danke :o
|
Re: SQL-Statement escapen
Dann würde ich updatetn. Dieser Kommentar stamt aus der aktuellen Version (gerade heruntergeladen)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz