easySQLite使用帮助

easySQLite使用帮助,第1张

概述该文转载自 http://my.oschina.net/memorybox/blog/67616 easySQLite是一个sqlite的C++封转库,非常简洁。适合于小型项目,将它的帮助文档翻译了一下,推荐之。 项目地址:http://code.google.com/p/easysqlite/ easySQLite--a C++ SQLite wrapper 这是一个SQLite C 数据引擎接

该文转载自http://my.oschina.net/memoryBox/blog/67616

easysqlite是一个sqlite的C++封转库,非常简洁。适合于小型项目,将它的帮助文档翻译了一下,推荐之。

项目地址:http://code.google.com/p/easysqlite/

easysqlite--a C++ sqlite wrapper

这是一个SQLiteC 数据引擎接口的C++封装库。它的结构非常简单,您可以很轻松的通过它来 *** 纵本地数据库文件

easysqlite 授权方式为BSD license.

easysqlite 在Visual C++ 2010 Express环境下通过测试,但它并不依赖于非标准特性,所以您可以使用任意C++编译器来编译它。

怎样使用?

首先,请在项目中包含"sqlCommon.h" ,如果您需要其他组件支持的话,请包含相应的头文件。

easysqlite 使用命名空间:sql

然后,您需要用FIEld 对象定义一个表结构。

 	FIEld deFinition_tbPerson[] ={	FIEld(FIELD_KEY),FIEld("fname",type_text,flag_not_null),FIEld("lname",FIEld("birthdate",type_time),FIEld(DEFinitioN_END),};
FIEld构造函数默认需要如下参数: name
(sql::string) type
(sql::fIEld_type) flags
(sql::fIEld_flags). Can be OR'ed

数据表定义必须以 "FIEld(FIELD_KEY) "开头,以"FIEld(DEFinitioN_END)"结尾。

FIEld(FIELD_KEY) 可以看做 FIEld("_ID",type_int,flag_primary_key).

现在,您可以打开/创建数据库文件了。就是先定义一个Database对象,然后打开进行 *** 作。

sql::Database db;try{	db.open("test.db");	//...} catch (Exception e) {	//...}		

TIP: 您可以通过返回值或者 ::errMsg() 函数来检查错误。 大多数类的错误检查是通过异常来实现的

您可以在"sqlCommon.h "中关闭 USE_EXCEPTIONS 检测,将它改为 "manually"就可以通过返回值来排错,例如:

if (!db.open("test.db")){ log(db.errMsg());} 数据库的准备工作完成后,下一步就是定义数据表:

sql::table tbPerson(db.getHandle(),"person",deFinition_tbPerson);
sql::table的构造函数默认参数为: db handle
(sqlite3*) tablename
(sql::string) fIElds deFinition
(sql::FIEld*). FIEld* array or FIEldSet* of another table.

现在,您可以通过table对象来 *** 作数据库了,例如:

//remove table from database if existsif (tbPerson.exists()) tbPerson.remove();//create new tabletbPerson.create();//removes all recordstbPerson.truncate();//loads all records to internal recordsettbPerson.open(); //loads one recordtbPerson.open("_ID == 5");//returns loaded records counttbPerson.recordCount(); 如何修改或添加/删除数据

如果要修改/添加/删除数据,您可以使用Record对象来完成。

要添加(insert)一条数据的话,先凭借数据表的FIEldSet 定义一个Record对象,然后修改Record对象,最后将其插入到数据表中。

Record record(tbPerson.fIElds());record.setString("fname","Jan");record.setString("lname","Kowalski");record.setTime("birthdate",time::Now());tbPerson.addRecord(&record); 下面演示如何修改数据:

tbPerson.open("_ID >= 10 and _ID <= 15");for (int index = 0; index < tbPerson.recordCount(); index++){ if (Record* record = tbPerson.getRecord(index)) { record->setString("fname",""); record->setString("lname","Nowak"); record->setNull("birthdate"); tbPerson.updateRecord(record); }} 下面演示如何列出所有数据:

tbPerson.open();for (int index = 0; index < tbPerson.recordCount(); index++) if (Record* record = tbPerson.getRecord(index)) log(record->toString()); 下面演示如何列出指定_ID的数据:

if (Record* record = tbPerson.getRecordByKeyID(7)){ //...} 您可以参考easysqlite.cpp文件获得更多的示例。

Author

copyright (c) 2010,Piotr Zagawa

All rights reserved.

contactwebsite

translator

memoryBox 2012/07/17

contactwebsite

总结

以上是内存溢出为你收集整理的easySQLite使用帮助全部内容,希望文章能够帮你解决easySQLite使用帮助所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)