【问题标题】:how to insert image in sqlite database in iphone如何在iphone的sqlite数据库中插入图像
【发布时间】: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


【解决方案1】:

你不应该在 db 中插入 blob,这会让你的 db 非常非常慢!!

您应该将图像保存在应用程序的文档目录中,并在数据库中仅保存图像的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2010-10-18
    • 2023-02-07
    相关资源
    最近更新 更多