Bisher habe ich es geschafft, das Einfügen in eine SQLite-Datenbank auf dem iPhone, diese Methode zu erstellen:Einfügen NSData in SQLite auf dem iPhone
- (void) insertToDB :(NSString *)Identifier :(NSString *)Name
{
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
char *sql1 = "INSERT INTO table VALUES ('";
const char *sql2 = [Identifier cStringUsingEncoding:[NSString defaultCStringEncoding]];
char *sql3 = "', '";
const char *sql4 = [Name cStringUsingEncoding:[NSString defaultCStringEncoding]];
char *sql5 = "')";
char *sqlStatement[255];
strcpy(sqlStatement, sql1);
strcat(sqlStatement, sql2);
strcat(sqlStatement, sql3);
strcat(sqlStatement, sql4);
strcat(sqlStatement, sql5);
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
{
sqlite3_last_insert_rowid(database);
sqlite3_reset(compiledStatement);
}
sqlite3_finalize(compiledStatment);
}
sqlite3_close(database);
}
Jetzt bei suche ich ein Bild in der Datenbank zu speichern. Bisher habe ich found this:
UIImage *cachedImage = [UIImage imageNamed:@"Icon.png"];
NSData *dataForImage = UIImagePNGRepresentation(cachedImage);
Aber ich habe Probleme beim Versuch, diese NSData in den char-Array einzufügen, die die SQLstatement macht. Jeder hat eine Idee, wie man das macht?
(Ich habe ein Feld in der Datenbank vom Typ Blob dafür).
Dank
Do * nicht * BLOBs in die Datenbank einfügen. Es ist schrecklich ineffizient auf allen Ebenen. Speichern Sie einen Pfad in der Datenbank und fügen Sie das BLOB in das Dateisystem ein. – bbum
Ich würde * hoch * empfehlen die Verwendung der Flying Meat Datenbank Wrapper, die alle diese Probleme für Sie bereits gelöst hat und ist * viel * einfacher zu bedienen: http://github.com/ccgus/fmdb –