① 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);