Ich habe eine SQLite-Datenbank von Navicat erstellt wird, enthält Tabelle EDITED_PHOTOS
und diese Tabelle hat zwei Spalten genannt:Insert UIImage in der Datenbank mit FMDB
1- ID, die primären integer und Autoinkrement ist.
2- Bildtyp ist blob
Zuerst habe ich die UIImage
in NSData
ungeöffneten bin Umwandlung und dann FMDB Datenbankwarteschlange unter Verwendung der Abfrage in Block auszuführen.
let imageToData = UIImagePNGRepresentation(image)
queue!.inTransaction { db, rollback in
do {
let value = try db.executeQuery("INSERT INTO EDITED_IMAGES VALUES (?,?)", values: ["\'NULL\'",imageToData!])
print(value)
}catch {
}
}
Die Insert-Anweisung wird ausgeführt und gibt FMResultSet
ohne Fehler. der Pfad der Datenbank ist korrekt und die Tabelle wird gefunden, aber die Einfüge-Abfrage wird nicht richtig eingefügt? aber es erzeugt keinen Fehler?
Ich habe die Datenbank auf dem Gerät nach dem Ausführen der Einfügung durch Herunterladen des Anwendungscontainers von Xcode überprüft, die Tabelle ist leer von Datensätzen. oder Auch indem Sie die Anzahl der Datensätze in der Tabelle programmgesteuert überprüfen.
Mein nächster Versuch, die Abfrage einfügen wird executeStatements
verwenden, so was ich getan habe ist folgendes:
let value = db.executeStatements("INSERT INTO EDITED_IMAGES VALUES (\'NULL\',\(imageToData!))")
Seit NSData
Darstellung dieser ähnlich ist: <89504e47 0d0a1a0a 0000000d .............>
Ausführen dieser Abfrage einen Fehler generiert: Error inserting batch: near "<": syntax error
Ich habe versucht, FMDatabase ohne Warteschlange zu verwenden, aber es hat genau das gleiche Problem.
Können Sie mit mehr Details klären? es ist nicht sehr klar, wie man das benutzt? So etwas gibt es bei LOAD_FILE nicht? – AaoIi