- 授权协议: BSD
- 开发语言: C/C++
- 操作系统: 跨平台
- 软件首页: https://code.google.com/p/easysqlite/
- 软件文档: https://code.google.com/p/easysqlite/w/list
软件介绍
一个简单的 SQLite C++ 封装.
优势:
优雅的面向对象解决方案
显式命名和调用
使用异常以及方法返回值
容易理解
灵活而且可扩展
经过强测试
//define table structure
Field definition_tbPerson[] =
{
Field(FIELD_KEY),
Field("fname", type_text, flag_not_null),
Field("lname", type_text, flag_not_null),
Field("birthdate", type_time),
Field(DEFINITION_END),
};
//define database object
sql::Database db;
try
{
//open database file
db.open("test.db");
//define table object
Table tbPerson(db.getHandle(), "person", definition_tbPerson);
//remove table from database if exists
if (tbPerson.exists())
tbPerson.remove();
//create new table
tbPerson.create();
//define new record
Record record(tbPerson.fields());
//set record data
record.setString("fname", "Jan");
record.setString("lname", "Kowalski");
record.setTime("birthdate", time::now());
//add 10 records
for (int index = 0; index < 10; index++)
tbPerson.addRecord(&record);
//select record to update
if (Record* record = tbPerson.getRecordByKeyId(7))
{
record->setString("fname", "Frank");
record->setString("lname", "Sinatra");
record->setNull("birthdate");
tbPerson.updateRecord(record);
}
//load all records
tbPerson.open();
//list loaded records
for (int index = 0; index < tbPerson.recordCount(); index++)
if (Record* record = tbPerson.getRecord(index))
sql::log(record->toString());
sql::log("");
sql::log("ALL OK");
} catch (Exception e) {
printf("ERROR: %s\r\n", e.msg().c_str());
}
Programming in Haskell
Graham Hutton / Cambridge University Press / 2007-1-18 / GBP 34.99
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduc......一起来看看 《Programming in Haskell》 这本书的介绍吧!
