sqlite3 insert und das Lesen von BLOB-Daten in der Datenbank
Brauche ich zum Lesen und schreiben von BLOB-Daten in eine Datenbank. Hier ist meine Struktur Tabelle
#define CREATE_TABLE_USERS_SQL "CREATE TABLE IF NOT EXISTS %@ ( \
UserID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, \
Name VARCHAR(50), \
Image BLOB);"
Wie kann ich stecken Sie es in die Datenbank ein, und klicken Sie dann abrufen?
Umgebung: iPhone SDK 4.1 SQLite3-Datenbank.
Dieser code nicht:
NSData * buf2 = [[NSData alloc] init];
sqlite3_column_blob(statement, 5);
buf2 = sqlite3_column_bytes(statement, 5);
user.image = [UIImage imageWithData: buf2];
Diese Frage ist zu Fragen, die gleiche Sache wie Sie, und die Antworten, es sollte auf Ihre Bedürfnisse ein: stackoverflow.com/questions/643682/...
InformationsquelleAutor yozhik | 2010-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke an alle!! Mit eurer Hilfe habe ich ' V problem lösen wollen und teilen Sie die Ergebnisse für zukünftige Anfänger wie ich es bin.)
maby Sie gehen müssen, um entsprechenden Datensatz in der Datenbank erst, und nur dann Lesen Sie Bild aus, und jetzt dauert es immer den ersten Datensatz. versuchen Sie, die, ich weiß wirklich nicht erinnern, es war vor einem Jahr.
in NSLog(@"Fehler beim erstellen von update-Anweisung:%@", sqlite3_errmsg(Datenbank)); %s-Formatierung verwendet werden soll
Konstante SQLITE_BLOB ist falsch verwendet in sqlite3_bind_blob nennen. SQLITE_TRANSIENT oder SQLITE_STATIC verwendet werden sollte es. sqlite.org/c3ref/bind_blob.html
Seien Sie vorsichtig mit der Verwendung von SQLITE_TRANSIENT Nutzung. Je nach Fall kann es zu einem BAD_ACCESS Fehler. Dies war meine situation, bis ich es geändert SQLITE_STATIC.
InformationsquelleAutor yozhik
Abgesehen von der Auswahl Ihrer client-oder Programmier-Schnittstelle, die Verwendung unterscheidet sich nicht von anderen string-Feld.
[Update] ich hatte noch nicht das Glück zu entwickeln, die für das iPhone noch nicht, aber ich glaube, es ist die gleiche wie bei jedem anderen SELECT-oder INSERT-Abfrage. Stellen Sie sicher, dass für die Kodierung der BLOB und umschließen Sie es mit single-Apostrophe (
'
) wie strings.InformationsquelleAutor pestaa
warum nicht
fmdb
von Gus Mueller et al, Fliegen Fleisch? http://flyingmeat.com/https://github.com/ccgus/fmdb
Wenn Sie finden
fmdb
nützlich, gehen und kaufen ein von den excellents apps von Flying Meat. VoodooPad oder Acron.InformationsquelleAutor Cesar A. Rivas
//-----BILD einfügen
//--------Bild
InformationsquelleAutor Jaspreet Singh
Sie sind dem Aufruf der SQLite-Funktionen in der richtigen Reihenfolge. Nach der SQLite-Dokumentation:
Jedoch
buff2
ist eine ganze Zahl, nicht eine Daten-Zeiger.sqlite3_column_bytes
sagt Ihnen, wie viele bytes im blob.InformationsquelleAutor jww