Finora sono riuscito a creare questo metodo per inserire in un database SQLite su iPhone:Inserimento NSData in SQLite su 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);
}
Ora sto guardando la memorizzazione di un'immagine nel database. Finora ho found this:
UIImage *cachedImage = [UIImage imageNamed:@"Icon.png"];
NSData *dataForImage = UIImagePNGRepresentation(cachedImage);
ma sto avendo problemi cercando di inserire questo NSData in array di caratteri che rende lo SQLStatement. Qualcuno ha un'idea di come farlo?
(Ho un campo nel database di tipo blob per questo).
Grazie
Do * not * inserisce BLOB nel database. È orribilmente inefficiente a tutti i livelli. Archiviare un percorso nel database e inserire il BLOB nel filesystem. – bbum
Vorrei * altamente * consigliare l'uso del wrapper del database Flying Meat, che ha già risolto tutti questi problemi per voi ed è * molto * più semplice da usare: http://github.com/ccgus/fmdb –