在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等。对于这些二进制数据(blob字段)我们不能像处理普通的文本那样简单的插入或者查询,为此SQLite提供了一组函数来处理这种BLOB字段类型。下面的代码演示了如何使用这些API函数。
相关阅读:SQLite3 安装、基本操作 http://www.linuxidc.com/Linux/2012-05/60452.htmUbuntu 12.04下SQLite数据库简单应用 http://www.linuxidc.com/Linux/2012-06/63379.htmUbuntu 12.04下安装 SQLite及其使用方法 http://www.linuxidc.com/Linux/2013-08/89155.htm首先创建一个数据库,然后创建一个数据表:nsqSt = sqlite3_exec( handle, "CREATE TABLE IF NOT EXISTS PARAMETERS ( FULLNAME TEXT PRIMARY KEY, VT INTEGER, LENGTH INTEGER, VALUE BLOB, USEFUNC INTEGER )", NULL, NULL, NULL);insertParaWithValue演示了插入blob数据dbHandle是调用这个函数就可以获得 sqlite3_open_v2( DM_DB_FILENAME, &dbHandle,SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL );int insertParaWithValue(DBHANDLE dbHandle, const char* pszParaName, int type, const void* pData, int cbData )
{
const char* pTmp = "INSERT INTO PARAMETERS( FULLNAME, VT, LENGTH, VALUE, USEFUNC) VALUES("%s", %d, %d, ?, 0)";
size_t nTmp = strlen( pTmp );
char* pSql = DMMalloc( nTmp+strlen(pszParaName)+11+11+1); /*32bit decimal int max length is 11*/
if(pSql==NULL)
return ERROR;
sprintf( pSql, pTmp,pszParaName, type,cbData);
sqlite3_stmt* pstmt=NULL;
int nRet=sqlite3_prepare_v2(dbHandle, pSql, -1, &pstmt, NULL );
if(nRet!=SQLITE_OK)
{
goto ERR;
}
DMFree(pSql);
pSql=NULL;
nRet=sqlite3_bind_blob(pstmt,1,pData,cbData, NULL );
if(nRet!=SQLITE_OK)
{
goto ERR;
}
nRet = sqlite3_step(pstmt);
if(nRet!=SQLITE_DONE)
{
goto ERR;
}
nRet = SQLITE_OK;
sqlite3_finalize(pstmt );
return nRet;
ERR:
if(pstmt)
sqlite3_finalize(pstmt );
if(pSql)
DMFree(pSql);
return nRet;
}
64位Weblogic11g安装ORA-00904/ORA-00942和Oracle 大小写区分相关资讯 sqlite SQLite BLOB
- Ubuntu 16.04 安装可视化数据库浏 (05月20日)
- iOS 数据库比较:SQLite vs. Core (03月01日)
- 如何在 Ubuntu 15.04 上安装带 (02月09日)
| - 微软推荐通用 Windows 应用开发者 (05月04日)
- SQLite 3.11.0 发布下载 (02月17日)
- SQLite 3.10.2 发布下载 (01月29日)
|
本文评论 查看全部评论 (0)