gpt4 book ai didi

ios - 在 xcode4.6 中使用 sqlite 将图像插入到数据库中

转载 作者:IT王子 更新时间:2023-10-29 06:29:53 25 4
gpt4 key购买 nike

我正在使用 Xcode 4.6 中的 sqlite 将 IMAGE 插入数据库,我只是想插入一个 textfielduiimageview(具有动态生成的条形码图像)。

不幸的是,我收到“错误是:内存不足”

听到的是我正在使用的代码,请让我知道我的错误在哪里,让我知道更多细节

* 1. 数据库创建*

-(void)createoropendb {

NSArray *path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docpath =[path objectAtIndex:0];

dbpathstring =[docpath stringByAppendingPathComponent:@"DataBase.db"];
char *error;

NSFileManager *filemanager =[NSFileManager defaultManager];

if (![filemanager fileExistsAtPath:dbpathstring])
{
const char *dbpath =[dbpathstring UTF8String];

if (sqlite3_open(dbpath, &barcodeDB) == SQLITE_OK)
{
const char *sql_start ="CREATE TABLE IF NOT EXISTS DBTABLE1(NAME TEXT UNIQUE,IMAGEURL BLOB)";
NSLog(@"db created");
sqlite3_exec(barcodeDB, sql_start,NULL,NULL, &error);
sqlite3_close(barcodeDB);

}
}
}

* 2.插入数据的按钮*

- (IBAction)savedata:(id)sender  {
UIImage *image =imageView.image;
NSData *imageData=UIImagePNGRepresentation(image);
[self SaveImagesToSql: imageData.bytes:Uimagetext.text];
}

* 3.插入数据的方法*

- (void) SaveImagesToSql: (NSData*) imgData :(NSString*) mainUrl {   

const char* sqliteQuery = "INSERT INTO DBTABLE1(NAME,IMAGEURL) VALUES (?, ?)";
sqlite3_stmt* statement;

if( sqlite3_prepare_v2(barcodeDB, sqliteQuery, -1, &statement, NULL) == SQLITE_OK )
{
sqlite3_bind_text(statement, 1,[mainUrl UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_blob(statement, 2,[imgData bytes],[imgData length], SQLITE_TRANSIENT);

sqlite3_step(statement);

NSLog( @"Saved image successfully" );

}
else
{


NSLog( @"SaveBody: Failed from sqlite3_prepare_v2. Error is: %s",sqlite3_errmsg(barcodeDB) );
}
// Finalize and close database.
sqlite3_finalize(statement);
}

最佳答案

返回代码(不是SQLITE_OK)无疑是返回SQLITE_MISUSE,这意味着您正在尝试使用尚未打开的数据库。如果数据库不存在,你的 createoropendb 正在创建和打开,但如果它存在,你就不会打开它(即使它确实存在,你也会在创建后关闭它) .

最重要的是,如果调用 sqlite3_prepare 时数据库未打开,该函数将返回 SQLITE_MISUSE,任何对 sqlite3_errmsg 的调用都将返回误导性的“内存不足”短信。

关于ios - 在 xcode4.6 中使用 sqlite 将图像插入到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15651708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com