windows mobile C++ 的SQLite使用方法
2010-09-16 15:55
896 查看
资料的来源:Windows Mobile下访问Sqlite的Native C++封装
主要使用的是已经编译好的
SQLite3.lib
SQLite3.dll
以及三个文件
sqlite3.h
CppSQLite3U.h
CppSQLite3U.cpp
测试代码
CString strDbPath;
GetCurrentDirectory(strDbPath);
strDbPath += FILE_DB_NAME;
CppSQLite3DB db;
try
{
//打开或新建一个数据库
db.open(strDbPath);
//判断表名是否存在
if(db.tableExists(L"tblTest"))
{
AfxMessageBox(L"Table: tblTest is existed!");
}
else //不存在
{
AfxMessageBox(L"Table: tblTest not existed!");
//新建表
db.execDML(L"create table tblTest(empno varchar(20), empname varchar(20))");
}
//插入一笔记录
db.execDML(L"insert into tblTest values('编号', '姓名')");
//插入一笔记录
db.execDML(L"insert into tblTest values('精瑞电脑', 'Answer')");
//删除一笔记录
db.execDML(L"delete from tblTest where empno='编号'");
//插入10笔记录(使用事务)
TCHAR buf[256];
db.execDML(L"begin transaction;");
for (int i = 0; i < 10; i++)
{
memset(buf, 0, sizeof(buf));
wsprintf(buf, L"insert into tblTest values ('no%d', 'name%d');", i, i);
db.execDML(buf);
}
db.execDML(L"commit transaction;");
//更新一笔记录
db.execDML(L"update tblTest set empname='answer' where empno='no1'");
//获取总笔数
int count = db.execScalar(L"select count(*) from tblTest;");
TCHAR szCount[50];
memset(szCount, 0, sizeof(szCount));
wsprintf(szCount, L"Count:%d", count);
AfxMessageBox(szCount);
//获取每一笔
CppSQLite3Query q = db.execQuery(L"select * from tblTest");
while (!q.eof())
{
AfxMessageBox(q.fieldValue(0));
q.nextRow();
}
q.finalize();
db.close();
AfxMessageBox(L"OK");
}
catch(CppSQLite3Exception ex)
{
AfxMessageBox(ex.errorMessage());
}
主要使用的是已经编译好的
SQLite3.lib
SQLite3.dll
以及三个文件
sqlite3.h
CppSQLite3U.h
CppSQLite3U.cpp
测试代码
CString strDbPath;
GetCurrentDirectory(strDbPath);
strDbPath += FILE_DB_NAME;
CppSQLite3DB db;
try
{
//打开或新建一个数据库
db.open(strDbPath);
//判断表名是否存在
if(db.tableExists(L"tblTest"))
{
AfxMessageBox(L"Table: tblTest is existed!");
}
else //不存在
{
AfxMessageBox(L"Table: tblTest not existed!");
//新建表
db.execDML(L"create table tblTest(empno varchar(20), empname varchar(20))");
}
//插入一笔记录
db.execDML(L"insert into tblTest values('编号', '姓名')");
//插入一笔记录
db.execDML(L"insert into tblTest values('精瑞电脑', 'Answer')");
//删除一笔记录
db.execDML(L"delete from tblTest where empno='编号'");
//插入10笔记录(使用事务)
TCHAR buf[256];
db.execDML(L"begin transaction;");
for (int i = 0; i < 10; i++)
{
memset(buf, 0, sizeof(buf));
wsprintf(buf, L"insert into tblTest values ('no%d', 'name%d');", i, i);
db.execDML(buf);
}
db.execDML(L"commit transaction;");
//更新一笔记录
db.execDML(L"update tblTest set empname='answer' where empno='no1'");
//获取总笔数
int count = db.execScalar(L"select count(*) from tblTest;");
TCHAR szCount[50];
memset(szCount, 0, sizeof(szCount));
wsprintf(szCount, L"Count:%d", count);
AfxMessageBox(szCount);
//获取每一笔
CppSQLite3Query q = db.execQuery(L"select * from tblTest");
while (!q.eof())
{
AfxMessageBox(q.fieldValue(0));
q.nextRow();
}
q.finalize();
db.close();
AfxMessageBox(L"OK");
}
catch(CppSQLite3Exception ex)
{
AfxMessageBox(ex.errorMessage());
}
相关文章推荐
- sqlite在c++中的使用方法
- C++使用sqlite的方法
- Sqlite3 C++ 使用方法
- 编写高效的C++程序方法之使用对象池
- C++ typedef使用方法总结
- android sqlite的SqliteDataBase.insert()方法,以及如何在事务管理中使用
- C++多线程传参,CreateThread参数的使用方法
- C++中Static作用和使用方法
- C++嵌套类的使用方法
- Python接口(1):使用Python调用C/C++的种种方法
- C++ 中dynamic_cast<>的使用方法
- C++中Static作用和使用方法
- C++ STL中set和multiset的使用方法
- C++中list的使用方法及常用list操作总结
- QT c++程序使用qml的两种方法
- c++中new和delete的使用方法
- C++中Static作用和使用方法
- C++ 中dynamic_cast<>的使用方法小结 -判断类型-rtti
- 解决C/C++程序执行一闪而过的方法(使用getchar,或者cin.get,不推荐system(“pause”))
- IOS Sqlite的使用方法