【发布时间】:2012-02-28 18:19:59
【问题描述】:
如何在数据库中插入图像,我试过但它没有插入。查询的问题在哪里?这是我的模型类 .m 文件:sqlite3_prepare_v2 之后此文件中的代码我的跟踪没有插入sqlite3_bind_blob 它直接在sqlite3_prepare_v2 之后进入外部。这里有什么问题,请帮助我。保存数据有问题。在模型类中我创建UIImage* Photo; 并制作协议和系统
+(void)SaveImagesToSql:(NSData *)imgDat :(int)getid
{
NSString *filePath = [BaseModal getDBPath];
sqlite3 *database;
sqlite3_stmt *updStmt;
NSLog(@"%@",filePath);
if (sqlite3_open([filePath UTF8String], &database) == SQLITE_OK)
{
NSString* sqliteQuery = [NSString stringWithFormat:@"UPDATE INTO Peoples (Photo) VALUES (?) where PeopleId =%i",getid];
if(sqlite3_prepare_v2(database, [sqliteQuery UTF8String] , -1, &updStmt, NULL) == SQLITE_OK) {
sqlite3_bind_blob(updStmt, 1, [imgDat bytes], [imgDat length], NULL);
}
sqlite3_finalize(updStmt);
}
sqlite3_close(database);
}
这是我的 view.m 文件,我从这个页面中选择图像并插入到 sqlite 文件中
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//UIImageWriteToSavedPhotosAlbum(imageView.image, self, nil, nil);
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@", docDirectory];
NSLog(@"thiss%@",filePath);
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
if(picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
[picker dismissModalViewControllerAnimated:YES];
return;
}
[picker release];
UIImage *image1 =imageView.image;
NSData *myData = UIImagePNGRepresentation(image1);
[PeopleModal SaveImagesToSql:myData :peopleid];
//[self.parentViewController dismissModalViewControllerAnimated:YES];
[picker dismissModalViewControllerAnimated:YES];
}
【问题讨论】:
-
不要将数据存储在文档目录中的database.ave图像中,然后将该路径保存在数据库中...
标签: iphone objective-c