2016-03-23 6 views
1

Ich erstelle ein C++ - Programm, das eine Reihe von SQL-Anweisungen (erstellen, einfügen, usw.) ausgeben und sie in eine Datei schreiben wird. Diese Datei wird zum Erstellen und Füllen einer SQLite3-Datenbank verwendet.Escape-Zeichen für SQLite3-Befehl (ohne Vorbereitung)

Ich muss sicherstellen, dass und Werte eingefügt werden ordnungsgemäß maskiert, so dass sie in die Zeichenfolge in doppelten Anführungszeichen passen (in der Anweisung insert). Da keine SQLite-Datenbank verfügbar ist (dieses Programm schreibt nur in eine Textdatei), kann ich prepare nicht verwenden. Kann mir jemand sagen, welche Charaktere geflüchtet werden müssen und wie?

Bisher habe ich finde nur, dass der

+0

'' 'ist das einzige Symbol nach ansi sql, das als '' '' maskiert werden soll, alle anderen Symbole, wie '' 'oder' \\' sind rdbms-spezifisch –

Antwort

0

in einem String ‚Charakter mit einer anderen entgangen werden muss‘, das einzige Zeichen entgangen wird, ist das Zitat ' selbst.

Wie für Tabelle/Spaltennamen müssen Sie quote them, wenn sie mit SQL-Stichwörtern in Konflikt stehen.

Verwandte Themen