Как вставить изображение в SQLite на iPhone? - PullRequest
2 голосов
/ 10 апреля 2009

Я хочу вставить изображение в sqlite3, я создал таблицу, используя «создать таблицу table1 (photo blob, name varchar (10));» Теперь я хочу вставить изображение в него, так каков синтаксис для вставки изображения в него? и в другой таблице я хочу сохранить местоположение изображения, так что для второй таблицы, что такое моя таблица создания и вставки синтаксиса таблицы. Можете ли вы помочь мне плз ???? И как я могу проверить, правильно ли он вставлен или нет из командной строки?

Ответы [ 3 ]

3 голосов
/ 02 февраля 2010

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

1) = Первая подготовка оператора вставки SQLite

   static sqlite3_stmt *insert_statement; //Declare Insert statement    
    - (void)InsertIntoDatabase{  // start insert method
         const char *sql = "INSERT INTO <yourtable> (<column1>, <BLOBColumnName>) VALUES (? , ?)" ;
           if(sqlite3_prepare_v2(database, sql, -1, &insert_statement, NULL) != SQLITE_OK)
              NSAssert1(0, @"Error while creating insert statement. '%s'", sqlite3_errmsg(database));} 

//For simple integer column**
   sqlite3_bind_int(insert_statement, 1, <value column 1>);

//For image column**
  NSString *webUrl = @"http://yourwebsite/youImage.jpg";        
  UIImage *myImage =  [self GetRawImage:webUrl]; //Get image from method below
                     if(myImage != nil){
                     NSData *imgData = UIImagePNGRepresentation(myImage);
                     sqlite3_bind_blob(insert_statement, 2, [imgData bytes], [imgData length], NULL);
                     }
                     else {
                      sqlite3_bind_blob(insert_statement, 2, nil, -1, NULL);
                     }
    } // end of insert method

2) = Метод получения необработанного файла изображения.

 - (UIImage *)GetRawImage:(NSString *)imageUrlPath
    {  
    NSURL *imageURL = [NSURL URLWithString:imageUrlPath];  
    NSData *data = [NSData dataWithContentsOfURL:imageURL];  
    UIImage *image = [[UIImage alloc] initWithData:data];   
    return image; 
    }

! Это так просто

1 голос
/ 13 апреля 2009

Вы можете получить необработанные NSData для изображения и сохранить его ...

NSData *imageData = UIImagePNGRepresentation(image);
1 голос
/ 12 апреля 2009

Почему вы просто не сохраняете изображение в файловой системе iphone и сохраняете только информацию о его местонахождении в sqlite?

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