SQLite中的BLOB?
我创build了一个ID为AUTOINCREMENT和图像BLOB的SQLite数据库。
现在,我想在图像列中插入图像。 我是一个很大的客观主义者,一直在尝试各种各样的东西,但他们似乎并没有工作。 我知道很多关于MYSQl,但不是SQLite,我似乎无法弄清楚。
我有uploadImage
(UIImage)。 我在这里使用Matteo Bertozzi的SQLite包装器。 这里有一些我的代码后,有人从他们的手机摘下一张图片:
- (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)"]; }
再次感谢!
库尔顿
- 该语言是Objective-C,而不是C ++。 🙂
一般来说,将大量图像放入SQLite数据库的效率会很低,无论是在内存使用和I / O方面。 这会变慢,并使用更多的资源。 最好将图像放入文件系统,然后从SQLite数据库中引用文件系统。
这与Blob数据types有关?
你的executeNonQuery永远不会传递你的dataForImage参数(你只是传递一个string),所以…
改变这个:
[database executeNonQuery:@"INSERT INTO process (image) VALUES (dataForImage)"];
对此:
[database executeNonQuery:@"INSERT INTO process (image) VALUES (?);", dataForImage];