VS搭载Sqlite3用法详解
创始人
2024-05-21 16:04:14
0

本篇采用动态库静态调用方式,动态库链接如下

https://download.csdn.net/download/u014272404/87406250

静态调用方式:

1.将Database.dll sqlite3.dll 添加到执行目录中

2.在stdafx.h中包含(工程目录下)

#include "Include/DataBaseDll.h"

#pragma comment(lib,"Incldue/DatabaseDll.lib")

3.定义对象:CDataBaseDll g_DBParam

4.操作:

打开数据库:

 if (!g_DBParam.fnOpenDataBase(DatabaseFiles+_T("\\User.db"))){AfxMessageBox("open database error",MB_OK|MB_ICONERROR);return FALSE;}

查找字段:

CString strSql;
strSql.Format("Select * from User where Lastlog = 1");
sqlite3_stmt *pState = g_DBParam.fnExcuteQuery(strSql);
if(g_DBParam.fnEoFRecord(pState))
{AfxMessageBox(“query error!”,MB_OK|MB_ICONERROR);g_DBParam.fnFinalize(pState);return FALSE;
}
//获取用户的信息
m_strUserName = g_DBParam.fnGetFieldStringValue(pState,USER_USERNAME);
g_DBParam.fnFinalize(pState);

新增数据:

CString strSQL;
strSQL.Format(_T("select * from PPID where PPID='%s'"),str_PPID);
sqlite3_stmt *pState = g_DBParam.fnExcuteQuery(strSQL);
if (g_DBParam.fnEOFRecord(pState))
{//如果不存在 增加strSQL.Format(_T("insert into User values ('%s','%s','%s','%s')"),str_PPID,str_WorkFile,str_AutoFile,str_RecipeName);g_DBParam.fnFinalize(pState0);if (g_DBParam.fnExcuteSQL(strSQL)<1){CString m_strMsgOpera;m_strMsgOpera.LoadString(IDS_DB_QUERY_ERR);AfxMessageBox(m_strMsgOpera,MB_OK|MB_ICONERROR);}}else{g_DBParam.fnFinalize(pState0);AfxMessageBox("recipe exist!");return;}

更新数据:

strSQL.Format(_T("update PPID set PPID='%s',FileName='%s',ModifyDate='%s'%s'where RecipNo=%d"),dlg.m_StrRecipeName,dlg.m_StrFile,RecipeAutoParam.strModifyDate,nModifyPPID);sqlite3_stmt *pState = g_DBParam.fnExcuteQuery(strSQL);g_DBParam.fnFinalize(pState);

删除数据:

CString strSQL;
strSQL.Format(_T("select * from PPID where PPID='%s'"),nID);
sqlite3_stmt *pState0 = g_DBParam.fnExcuteQuery(strSQL);
if (g_DBParam.fnEOFRecord(pState0))
{//如果不存在g_DBParam.fnFinalize(pState0);AfxMessageBox("recipe not exist!");return;
}
else
{strSQL.Format(_T("delete from PPID where PPID='%s'"),nID);g_DBParam.fnFinalize(pState0);if (g_DBParam.fnExcuteSQL(strSQL)<1){CString m_strMsgOpera;m_strMsgOpera.LoadString(IDS_DB_QUERY_ERR);AfxMessageBox(m_strMsgOpera,MB_OK|MB_ICONERROR);return;}
}

操作函数说明:

BOOL fnOpenDataBase(const char* cFileName); //打开数据库

void fnCloseDataBase();//关闭数据库

qlite3_stmt* fnExcuteQuery(const char* cQuery);//查询

BOOL fnEOFRecord(sqlite3_stmt *pStatement);//判断当前记录是否到达最后一条

字段获取:

int fnGetFieldIntValue(sqlite3_stmt *pStatement,int nFieldIndex,int nDefaultValue = 0);

const char* fnGetFieldStringValue(sqlite3_stmt *pStatement,int nFieldIndex,const char* cDefault = "");

const char* fnGetFieldByteValue(sqlite3_stmt *pStatement,const char* cFieldName,int& nLength);

以上常用;

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...