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];