SQLite中如何用api操作BLOB类型的字段
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQLite中如何用api操作BLOB类型的字段,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1929字,纯文字阅读大概需要3分钟。
内容图文
![SQLite中如何用api操作BLOB类型的字段](/upload/InfoBanner/zyjiaocheng/547/5b4d8e8a653640f1a966a01ddf63dbfa.jpg)
在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等。对于这些二进制数据(blob字段)我们不能
在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,,如图片或者音乐等等。对于这些二进制数据(blob字段)我们不能像处理普通的文本那样简单的插入或者查询,为此SQLite提供了一组函数来处理这种BLOB字段类型。下面的代码演示了如何使用这些API函数。
相关阅读:
SQLite3 安装、基本操作
Ubuntu 12.04下SQLite数据库简单应用
Ubuntu 12.04下安装 SQLite及其使用方法
首先创建一个数据库,然后创建一个数据表:
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;
}
内容总结
以上是互联网集市为您收集整理的SQLite中如何用api操作BLOB类型的字段全部内容,希望文章能够帮你解决SQLite中如何用api操作BLOB类型的字段所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。