我创建了一个ID为AUTOINCREMENT且图像为BLOB的SQLite数据库。
现在,我想在图像列中插入图像。我是一个很大的目标 - 一直在尝试各种各样的东西,但它们似乎并没有起作用。我对MYSQl了解很多,但不是SQLite,我似乎无法弄明白。
我有uploadImage
(UIImage)。我正在使用Matteo Bertozzi的SQLite包装器here。以下是我用手机拍摄图像后的一些代码:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
[picker.parentViewController dismissModalViewControllerAnimated:YES];
uploadImage = image;
NSData *dataForImage = UIImagePNGRepresentation(uploadImage);
[database executeNonQuery:@"INSERT INTO process (image) VALUES (dataForImage)"];
}
再次感谢!
库尔顿
答案 0 :(得分:1)
你的executeNonQuery实际上从未传递过你的dataForImage参数(你只是传递一个字符串),所以......
改变这个:
[database executeNonQuery:@"INSERT INTO process (image) VALUES (dataForImage)"];
对此:
[database executeNonQuery:@"INSERT INTO process (image) VALUES (?);", dataForImage];
答案 1 :(得分:1)
一般而言,无论是在潜在的内存使用还是I / O方面,将大量图像推送到SQLite数据库都会效率低下。它会更慢并且使用更多资源。最好将图像放入文件系统,然后从SQLite数据库中引用文件系统。
有关