sqlite3 开发包的使用
来源:互联网 发布:windows7下安装mac os 编辑:程序博客网 时间:2024/05/05 21:26
1、sqliteTest.h
#include <ctype.h>#include <Windows.h>#include <assert.h>#include <string>#include "sqlite3.h"////开发包提供#include "SqlUtils.h"//开发包提供#include "Utils.h" //开发包提供#pragma comment(lib, "../Bin/sqlite3.lib") //开发包提供#define TASK_STATE_SUCCEED1#define TASK_STATE_FAIL2static sqlite3 * g_user_data = 0;//declareint AccessSqlite3Init();int AccessSqlite3Clear();int SetTaskState(const char* taskid, int nTaskState);int GetTaskState(const char* taskid, int *pTaskState);//definitionsint AccessSqlite3Init(){int error = -1;//create tableconst char * szSqlExec[] = {"CREATE TABLE IF NOT EXISTS tbl_task_state "\"(taskid CHAR(36), state INT, PRIMARY KEY (taskid)); ",NULL};//set pathchar szConfigPath[MAX_PATH] = {0};DWORD dwPathLen = GetModuleFileNameA(NULL, szConfigPath, sizeof szConfigPath);char *pReveseSlash = strrchr(szConfigPath,'\\');if (pReveseSlash){*pReveseSlash = 0;}strncat(szConfigPath, "\\TaskDataBase.sqlite", sizeof szConfigPath);//open configint nCode = sqlite3_threadsafe();assert(nCode == 1);nCode = sqlite3_config(SQLITE_CONFIG_SERIALIZED);assert(SQLITE_OK == nCode);error = sqlite3_open_ansi(szConfigPath, &g_user_data);assert(error == 0);assert(g_user_data != NULL);char *pErrMsg = NULL;error = sqlite3_exec(g_user_data, szSqlExec[0], 0, 0, &pErrMsg);if (error != 0){RaiseException(0, 0, 0, NULL);sqlite3_free(pErrMsg);}return error;}//clearint AccessSqlite3Clear(){int error = -1;assert(g_user_data != NULL);sqlite3_close(g_user_data);g_user_data = NULL;error =0;return error;}int SetTaskState(const char* taskid, int nTaskState){int error = -1;SqlParameter TaskUserDataParam;const char* szSqlExec[] = {"INSERT OR IGNORE INTO tbl_task_state(taskid, state) "\"values(@taskid, @state) ",NULL};TaskUserDataParam.Add("@taskid", taskid);TaskUserDataParam.Add("@state", nTaskState);std::string strSqlText;TaskUserDataParam.SqlFormat(szSqlExec[0], strSqlText);char *pErrMsg = NULL;error = sqlite3_exec(g_user_data, strSqlText.c_str(),0 ,0, &pErrMsg);if (error != 0){RaiseException(0, 0 ,0, NULL);sqlite3_free(pErrMsg);}return error;}int GetTaskState(const char* taskid, int *pTaskState){int error = -1;int found = 0;const char *szSqlExec[] = {"SELECT state FROM tbl_task_state WHERE taskid=@taskid; ",NULL};SqlParameter taskUserDataSqlParam;taskUserDataSqlParam.Add("@taskid", taskid);std::string strSqlText;taskUserDataSqlParam.SqlFormat(szSqlExec[0], strSqlText);//executesqlite3_stmt *pSqlStmt = NULL;error = sqlite3_prepare(g_user_data, strSqlText.c_str(), -1, &pSqlStmt, NULL);assert(error == SQLITE_OK);error = sqlite3_step(pSqlStmt);if (error == SQLITE_ROW){*pTaskState = sqlite3_column_int(pSqlStmt, 0);error = sqlite3_step(pSqlStmt);found = 1;}assert(error == SQLITE_DONE);error = sqlite3_finalize(pSqlStmt);assert(error == SQLITE_OK);return found;}
2、sqliteTest.cpp
#include "sqliteTest.h"#include <iostream>using namespace std;#define taskid_1 "e32ac270-2ea8-4843-8c2b-96852ca9da5b"#define taskid_2 "fe32ac270-2ea8-4843-8c2b-96852ca9da5"int _tmain(int argc, _TCHAR* argv[]){AccessSqlite3Init();SetTaskState(taskid_1, TASK_STATE_SUCCEED);SetTaskState(taskid_2, TASK_STATE_FAIL);int nTaskStat = 0;GetTaskState(taskid_1, &nTaskStat);cout<<"taskid_1: "<<taskid_1<<"\tState: "<<nTaskStat<<endl;GetTaskState(taskid_2, &nTaskStat);cout<<"taskid_2: "<<taskid_2<<"\tState: "<<nTaskStat<<endl;AccessSqlite3Clear();return 0;}
0 0
- sqlite3 开发包的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- 学习iPhone开发中 sqlite3的使用
- C++开发SQLite3的使用总结
- iOS开发中 SQLite3的使用案例
- iOS开发—sqlite3的使用
- 使用NDK开发SQLite3
- 使用NDK开发SQLite3
- ubuntu下sqlite3的用法(以后会讲到wxWidgets使用sqlite3开发)
- 使用SQLite3开发java应用程序
- 使用SQLite3开发java应用程序
- 学习记录之让ubuntu开机自动挂载文件命令
- 使用JDBC进行批处理
- [C#]通过ARP获取Mac与IP的对应表
- 从数据库中随机提取10条记录
- [生活知识]真皮沙发价格与成本
- sqlite3 开发包的使用
- 结构及其使用 struct (C#)
- eclipse配置JAD反编译环境
- SQL常用函数集锦
- Hello Spring MVC
- java的兼容!
- jquery正则判断只能输入数字小数点
- shell 判断字符串是否存在包含关系
- 判断主机操作系统是否为x64位