首页 / SQLITE / sqlite数据库基本操作
sqlite数据库基本操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sqlite数据库基本操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3472字,纯文字阅读大概需要5分钟。
内容图文
![sqlite数据库基本操作](/upload/InfoBanner/zyjiaocheng/564/ecab4aa11b0446198d45eb15695ed31c.jpg)
//插入及更新操作 int nRet = 0; sqlite3 * db = NULL; CString strFilePath; //数据库存储路径 //路径赋值(省略) //连接数据库 nRet = sqlite3_open16(strFilePath, db); //有几个打开函数可供调用,使用WCHAR类型路径用这个 if(nRet != SQLITE_OK) { Log
//插入及更新操作
int nRet = 0;
sqlite3 * db = NULL;
CString strFilePath; //数据库存储路径
//路径赋值(省略)
//连接数据库
nRet = sqlite3_open16(strFilePath, &db); //有几个打开函数可供调用,使用WCHAR类型路径用这个
if(nRet != SQLITE_OK)
{
LogD(_Q_D,L"数据库打开失败");
return -4;
}
CString strSQLSentence;
char *szSQLSentence = NULL;
组织SQL语句
**********************
{
//更新操作
strSQLSentence.Format(L"update tbl_ad set AD_TITLE='%s', AD_INFO='%s', BEGIN_TIME='%s', END_TIME='%s' where AD_ID='%s';", strADTitle, strADInfo, strADBeginTime, strADEndTime, strADId);
}
{
//插入操作
strSQLSentence.Format(L"insert into tbl_Advertisement values('%s','%s','%s','%s','%s');", strADId, strADTitle, strADInfo, strADBeginTime, strADEndTime);
}
**********************
//将SQL语句转换成sqlite函数能执行的UTF8格式
nLen = 0;
nLen = WideCharToMultiByte(CP_UTF8, 0, strSQLSentence, -1, NULL, 0, NULL, 0);
szSQLSentence = new char[nLen+1];
if (szSQLSentence == NULL)
{
return -6;
}
memset(szSQLSentence, 0, nLen+1);
WideCharToMultiByte(CP_UTF8, 0, strSQLSentence, -1, szSQLSentence, nLen+1, NULL, 0);
//锁定数据库
if(SQLiteLock(L"terminalplat.db",30*1000) == 0) //SQLiteLock为自写的一套锁机制中的函数
{
// 准备执行SQL
nRet = sqlite3_exec( db, "begin;", 0, 0, 0);
if(nRet == SQLITE_OK)
{
BOOL bSuccess = TRUE;
char * pErrMsg = NULL;
// 执行SQL
nRet = sqlite3_exec( db, szSQLSentence, 0, 0, &pErrMsg);
if(nRet != SQLITE_OK)
{
LogBD(_Q_D,"SQL执行失败 [%s]",pErrMsg);
bSuccess = FALSE;
}
else
{
LogBD(_Q_D,"SQL执行成功");
}
if(bSuccess)
{
//提交
sqlite3_exec( db, "commit;", 0, 0, 0);
}
else
{
//回滚
sqlite3_exec( db, "rollback;", 0, 0, 0);
hReturnVale = -7;
}
}
//解锁
SQLiteUnLock(L"terminalplat.db");
}
else
{
hReturnVale = -8;
}
// 关闭数据库
sqlite3_close(db);
return hReturnVale ;
************************************分割线************************************
//查询操作
//说明sqlite3_exec可以让数据库直接执行SQL语句,查询也不例外,但是如果是查询语句,需要定义一个回调函数来解析查询结果。
//在此,用的是sqlite3_get_table这一套函数,我访问的是本地数据库,还算稳定
//组织查询语句
CString strSQLSentence;
strSQLSentence.Format(L"select * from tbl_Advertisement where 1=1 and AD_ID='%s';", strADId);
char szSQLSentence[1024];
int nLen = 0;
memset(szSQLSentence, 0, sizeof(szSQLSentence));
nLen = WideCharToMultiByte(CP_UTF8, 0, strSQLSentence, -1, NULL, 0, NULL, 0);
WideCharToMultiByte(CP_UTF8, 0, strSQLSentence, -1, szSQLSentence, nLen+1, NULL, 0);
int result;
HRESULT hReturn = 0;
char * errmsg = NULL;
char **dbResult = NULL;
int nRow, nColumn;
int index=0;
//数据库查询
CString strTemp;
result = sqlite3_get_table( db, szSQLSentence, &dbResult, &nRow, &nColumn, &errmsg );
if( (SQLITE_OK == result))
{
if (nRow >= 1)
{
//查询成功,有记录
hReturn = 1;
}
else
{
//无符合条件的结果
hReturn = 0;
}
}
else
{
//查询失败
LogD(_Q_D, L"判断本地数据库中是否存在该广告--[查询失败],errmsg=%s result=%d, nRow=%s, nColumn=%s", CString(errmsg), result, nRow, nColumn);
hReturn = -1;
}
//释放查询结果
sqlite3_free_table( dbResult ); //注意一定要调用该函数对释放结果集
内容总结
以上是互联网集市为您收集整理的sqlite数据库基本操作全部内容,希望文章能够帮你解决sqlite数据库基本操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。