[英]insert blob in sqlite db (objective-c)
我遇到了將blob插入sqlite db的問題。 我正在研究ios,所以它的目標是c。
計划:
我按下一個按鈕,一個照片選擇器打開,我正在選擇一張照片,我正在觸摸另一個按鈕,照片作為一個blob保存在數據庫中。
一切都工作正常只插入不。 我已經將int和字符串插入數據庫並且它工作正常,但blob讓我發瘋。
代碼即時使用:
我得到了一個類,我在其中獲得了所有db-methods。 它叫做db。 我得到了一個使用db-object的類。
DB-類:
-(void)insertblob:(NSData *)blob stmt:(NSString *)blobStmnt {
const char *sql = [blobStmnt UTF8String];
sqlite3_prepare_v2(database, sql, 1, &statement, NULL);
if (SQLITE_DONE != sqlite3_step(statement)) {
NSLog(@"Error while inserting data. '%s'", sqlite3_errmsg(database));
}
sqlite3_bind_blob(statement, 1, [blob bytes], [blob length], SQLITE_TRANSIENT);
}
使用級:
[database openDB:@"Content"]
updateStmt = [NSString stringWithFormat:@"UPDATE Face SET image =%@", image];
[database insertblob:imageData stmt:updateStmt];
[database closeDB];
那我錯過了什么? 我從更新語句中收到“U”插入已經失敗的錯誤。 但我真的不知道我要改變什么。
在此先感謝您的幫助!
我解決了
在我的db-class中我編寫了這個方法:
-(void)insertblob:(NSData *)blob stmt:(NSString *)blobStmnt {
const char *sql = [blobStmnt UTF8String];
sqlite3_prepare_v2(database, sql, -1, &statement, NULL);
int returnValue = sqlite3_bind_blob(statement, 1, [blob bytes], [blob length], SQLITE_TRANSIENT);
sqlite3_step(statement);
sqlite3_finalize(statement);
if (returnValue != SQLITE_OK) {
NSLog(@"NOT OK");
}
NSLog(@"Saved!");
}
希望能幫到別人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.