① sqlite3資料庫支持binary類型嗎怎麼存取的
有binary類型,用設置欄位類型為blob即二進制數據塊
輸入用x'十六進制碼'
INSERT INTO tbl (id, vdata) VALUES( 3, x'ABCD');
② 請教SQLite資料庫讀寫BLOB欄位
SQLite中如何用api操作blob類型的欄位
在實際的編程開發當中我們經常要處理一些大容量二進制數據的存儲,如圖片或者音樂等等。對於這些二進制數據(blob欄位)我們不能像處理普通的文本那樣 簡單的插入或者查詢,為此SQLite提供了一組函數來處理這種BLOB欄位類型。下面的代碼演示了如何使用這些API函數。
首先我們要建談輪立一個資料庫:
sqlite3_exec(db, "CREATE TABLE list (fliename varchar(128) UNIQUE, fzip blob);", 0, 0, &zErrMsg);
//由於mmmm.rar是一個二進制文件,所以要在使用insert語句含明信時先用?號代替
sqlite3_prepare(db, "槐改insert into list values ('mmmm.rar',?);", -1, &stat, 0);
FILE *fp;
long filesize = 0;
char * ffile;
fp = fopen("mmmm.rar", "rb");
if(fp != NULL)
{
//計算文件的大小
fseek(fp, 0, SEEK_END);
filesize = ftell(fp);
fseek(fp, 0, SEEK_SET);
//讀取文件
ffile = new char[filesize+1];
size_t sz = fread(ffile, sizeof(char), filesize+1, fp);
fclose(fp);
}
//將文件數據綁定到insert語句中,替換「?」部分
sqlite3_bind_blob(stat, 1, ffile, filesize, NULL);
③ sqlite中如何存儲GUID類型的數據
SQLite實際上只有5種數據類型,NULL,INTEGER,REAL,TEXT,BLOB,GUID實際上就是BLOB,也就是二進制,用二進制的方式納吵跡來保存的,只量SQLite
Expert通過判斷是GUID類型顯示成了GUID的格式。GUID的二進制格式也是有講究的,否則直接ToString()也得不洞並到正確的碰橡二進制格式。
④ sqlite可以存二進制數據嗎
可源陵以的。
//雹掘戚存儲散飢二進制數據
unsigned char hex[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
sqlite3_prepare(pDB,"insert into bList values ('hex',?);",-1,&stmt,NULL);
sqlite3_bind_blob(stmt,1,hex,16,NULL);
sqlite3_step(stmt);