как вставить изображение в базу данных sqlite в iphone - PullRequest
0 голосов
/ 28 февраля 2012

Как вставить изображение в базу данных, я пытался, но не вставлять. Где проблема в запросе? Это файл класса моей модели .m: код в этом файле после sqlite3_prepare_v2 мой след не вставляется в sqlite3_bind_blob, он идет прямо после sqlite3_prepare_v2. В чем здесь проблема, пожалуйста, помогите мне. Что-то здесь не так для сохранения данных. В классе модели я создаю UIImage* Photo; и создаю протокол и sys

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



}

1 Ответ

3 голосов
/ 28 февраля 2012

Вы не должны вставлять капли в БД, это сделает вашу БД очень-очень медленной !!

Вы должны сохранить изображение в каталоге документов приложения и в БД сохранить только путь к изображению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...