easySQLite - SQLite C++ 封装


BSD
跨平台
C/C++

软件简介

一个简单的 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());
    }