小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SQLite數(shù)據(jù)庫中存取圖片文件

 驛落黃昏525 2012-04-16

前段時(shí)間在做一款嵌入式項(xiàng)目,用到了SQLite數(shù)據(jù)庫,現(xiàn)在就SQLite數(shù)據(jù)庫中存取圖片問題來與大家共享一下,

對于二進(jìn)制數(shù)據(jù)我們自然是不能夠直接進(jìn)行存儲(chǔ),在SQLite中我們可以將其轉(zhuǎn)換而后存儲(chǔ)。
下面就言歸正傳
在對主句操作之前我們先要打開數(shù)據(jù)庫,SQLite給用戶提供了豐富的API,足以使我們來駕馭它,
利用sqlite3_open()函數(shù),打開我們所要操作的數(shù)據(jù)庫,
接下來就是對于我們的圖片文件的操作了,我在這里的方法便是將圖片文件轉(zhuǎn)換成字符流,而后進(jìn)行存儲(chǔ)。
下面我就以一個(gè)簡單的范例來說明問題吧.....

#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
static sqlite3 *db=NULL;
static sqlite3_stmt *stmt=NULL;
FILE *fp;
long filesize=0;
char *fflie;

int main(int argc, char *argv[])
{
 int rc,i,j;
 rc =  sqlite3_open("dishes.db", &db);
 rc =  sqlite3_prepare(db, "update dishes_table set dish_image=?where dish_name='x';", -1, &stmt, 0);
 fp=fopen("x.jpg","rb");
 if(fp != NULL)
 {
  fseek(fp, 0, SEEK_END);
  filesize = ftell(fp);
  fseek(fp, 0, SEEK_SET);
 
  ffile = (char *)malloc(filesize + 1);
  size_t sz = fread(ffile, sizeof(char), filesize+1, fp);
  fclose(fp);
 }
 sqlite3_bind_blob(stmt, 1, ffile, filesize, NULL);
 rc=sqlite3_step(stmt);
 free(ffile);
  sqlite3_finalize(stmt);
  sqlite3_close(db);
 return 0; 
 
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多