SQLite判断表存在的方法——我的解决方案(MFC)
来源:互联网 发布:js div style display 编辑:程序博客网 时间:2024/06/05 17:12
本文基于无幻写的VC连接SQLite3的方法(MFC封装类) 在此基础上增加对数据库中表是否存在的判断,自己愚见,仅供参考。阅读此为前最好先阅读VC连接SQLite3的方法(MFC封装类),不然会不知所以然。不说什么,直接上代码:
网上说判断SQLite判断表存在的方法是使用sql语句:
SELECT COUNT(*) as CNT FROM sqlite_master where type='table' and name='DBInfo' //其中DBInfo为需要判断的表名
但在这由于MFC对SQLite3的封装,所以,试了多次而不得,这是我的解决方案:自己写封装函数:
在DBSqlite.h中:
class CsqlStatement类中添加:
BOOLResultStep();
Class CDbSQLite类中添加:
BOOLExcuteResult(LPCSTR stmt);
在DBSqlite.cpp中:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
BOOL CSqlStatement::ResultStep()
{
//return _sqlite3_column_count(m_stmt);
if (NULL == m_stmt)
{
return FALSE;
}
return TRUE;
}
BOOL CDbSQLite::ExcuteResult(LPCTSTR stmt) // 获得返回结果值
{
CSqlStatement* pStatement = this->Statement(stmt);
BOOL fResult = pStatement->ResultStep();
delete pStatement;
return fResult;
}
{
//return _sqlite3_column_count(m_stmt);
if (NULL == m_stmt)
{
return FALSE;
}
return TRUE;
}
BOOL CDbSQLite::ExcuteResult(LPCTSTR stmt) // 获得返回结果值
{
CSqlStatement* pStatement = this->Statement(stmt);
BOOL fResult = pStatement->ResultStep();
delete pStatement;
return fResult;
}
C++ Code 判断表是否存在代码如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
////////////////////////数据库操作//////////////////////////////
BOOL flag;
CDbSQLite sqlite;
//连接打开SQLite数据库(创建或打开)
flag = sqlite.Open(_T("downloadinfo.db"));
if (!flag)
{
AfxMessageBox(_T("打不开downloadinfo.db"));
return FALSE;
}
flag = sqlite.ExcuteResult(_T("SELECT * FROM downcfg"));
if (!flag)
{// 表不存在
// 创建表
flag = sqlite.DirectStatement(
_T("CREATE TABLE downcfg(cfgfile varchar(50), downlink varchar(300))")
);
}
/////////////////////////////////////////////////////////////////////
BOOL flag;
CDbSQLite sqlite;
//连接打开SQLite数据库(创建或打开)
flag = sqlite.Open(_T("downloadinfo.db"));
if (!flag)
{
AfxMessageBox(_T("打不开downloadinfo.db"));
return FALSE;
}
flag = sqlite.ExcuteResult(_T("SELECT * FROM downcfg"));
if (!flag)
{// 表不存在
// 创建表
flag = sqlite.DirectStatement(
_T("CREATE TABLE downcfg(cfgfile varchar(50), downlink varchar(300))")
);
}
/////////////////////////////////////////////////////////////////////
自己愚见,这里仅作记录。
- SQLite判断表存在的方法——我的解决方案(MFC)
- sqlite 中判断某个表是否存在的方法
- Sqlite中判断表、字段是否存在的方法
- Sqlite中判断表、字段是否存在的方法
- Sqlite中判断表、字段是否存在的方法
- Sqlite中判断表、字段是否存在的方法
- 判断sqlite数据库中表是否存在的方法
- SQLITE 创建表 并判断表是否存在的两种方法
- sqlite查看所有表名及字段名,及判断是否存在的方法
- sqlite查看所有表名及字段名,及判断是否存在的方法
- sqlite查看所有表名及字段名,及判断是否存在的方法
- FMDB中判断Sqlite的表是否存在
- Android的SQLite中如何判断一个表是否存在
- FMDB中判断Sqlite的表是否存在
- [转] FMDB中判断Sqlite的表是否存在
- 判断表是否存在的方法
- 判断Activity 存在的方法
- sqlite数据库判断表是否存在得方法
- POJ-1456-Supermarket
- 透明数据加密(TDE)库的备份和还原
- windows 服务编程
- Mac 安装Qt5.1编译出现的错误解决
- php排序算法之选择排序
- SQLite判断表存在的方法——我的解决方案(MFC)
- tomcat启动不了(javajni.c] [error] 找不到指定的模块)
- ZOJ 1709 Oil Deposits
- Android组件 文字标签(TextView)
- Oracle evl 函数使用
- 配置Apache服务器的出现The request operation has failed解决方法
- 怎样学习MSP430单片机
- Ubuntu12.04安装vim7.3
- php算法之快速排序