微型数据库SQLite拥有着大多数大型数据库无可比拟的灵活和精简。你可以用所有想象得到的开发语言去开发一个微型的数据库。你可以在这里找到所有想要的信息http://www.sqlite.org/。它支持了大多数关系数据库的基本特性,但是这使得数据库的应用变的很灵活。下面是一个用C++操作SQLite数据库的例子。
1. 你需要先从官网上下载SQLite的源代码文件,因为是开源的项目,所以我们可以拷贝代码到我们的工程中,这得感谢那些品德高尚的SQLite作者们。
2. 添加解压后的sqlite3.cpp, sqlite3.h到你的工程中,这里我使用vs2010.
3. 尝试下面的代码,来创建一个SQLite DB文件
sqlite3* db;
int rc;
// 打开或创建一个数据库文件
rc = sqlite3_open_v2(c_litedb_file.c_str(), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
if( rc ){
cerr << “Can’t open database: ” << sqlite3_errmsg(db) << endl;
sqlite3_close(db);
return LITEDB_ERROR_CREATE_DB_FAILED;
}
4. 在打开一个数据库文件后,你就可以执行任意的合法的SQL语句了。依然是C++函数
int rc;
char *szErrMsg = 0;
// 第三个参数是一个回调函数,你可以通过这个函数得到执行的一些信息
rc = sqlite3_exec(pHandle->pSqlite, sqlCommand.c_str(), NULL, 0, &szErrMsg);
if( rc!=SQLITE_OK ){
cerr << “SQL error: ” << szErrMsg << endl;
sqlite3_free(szErrMsg);
return LITEDB_ERROR_EXECUTE_FAILED;
}
假设,这里的SQL语句是
CREATE TABLE IF NOT EXISTS [log] (
[domain] [nvarchar] (64) NOT NULL ,
[tag_host] [nvarchar] (64) NOT NULL ,
[id] INTEGER PRIMARY KEY ,
[product_flag] int NOT NULL ,
[type] [int] NOT NULL ,
[log_time] [datetime] NOT NULL ,
[message] [nvarchar] (1024) NULL ,
[update_time] [datetime] NOT NULL
);
5. 最后,我们需要关闭数据库的链接,使用 sqlite3_close(pHandle->pSqlite); 语句。
6. 我们可以通过在命令行里执行:
> sqlite3 testdb
sql_lite> select * from sqlite_master;
来验证我们的执行结果,你可以看到一个log表的信息被输出。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
2017年1月数据库流行度排行榜 新年新气象
新年新气象,数据库知识网站DB-engines最近更新了2017年1月份数据库流行度榜单。TechTarget数据库网站将与您分享1月份的榜单排名情况,让我们拭目以待。
-
2016年10月数据库流行度排行榜 两组数据库棋逢对手
数据库知识网站DB-engines更新了2016年10月份的数据库流行度排行榜,10月份的榜单又有哪些变化,哪些惊喜呢?
-
2016年6月数据库流行度排行榜 SQLite反超Redis
数据库知识网站DB-engines更新了2016年6月份的数据库流行度排行榜。TechTarget数据库网站与您分享6月份的榜单。
-
你为什么要使用亚马逊云数据库?
Amazon RDS减少或是免除了开发人员的管理职责,这是开发人员使用它来管理数据库的优势之一。