今天努力学习poco 库,遇见各种问题。
1.首先就是poco的环境搭建。
建议搜索poco vs2010环境配置或poco环境配置(http://blog.csdn.net/lichaoyin/article/details/6734494)。
2.如果要用poco进行sqlite数据库的操作,在poco 数据库用户操作指南中的第一个例子,需要下载poco-1.4.6p2-all。
然后你会发现一些头文件不存在,比如
#include "Poco/Data/Common.h"
#include "Poco/Data/SQLite/Connector.h"
这是因为你编译完poco-1.4.6p2-all后,没有自动的将data文件放到环境配置下的那个默认目录。
比如我的路径:F:\learn\poco-1.4.6p2-all\Foundation\include,你需要将你编译过的,
我的路径是:
F:\learn\poco-1.4.6p2-all\data下的include文件夹和SQLite\incude\poco的 data文件夹拷贝到你
的默认路径下的poco文件夹中。
3.环境建好之后,我松了一口气。我高兴早了。
#include "Poco/Data/Common.h"
#include "Poco/Data/SQLite/Connector.h"
#include <iostream>
using namespace Poco::Data;
void init()
{
SQLite::Connector::registerConnector();
}
void shutdown()
{
SQLite::Connector::unregisterConnector();
}
int main(int argc, char* argv[])
{
init();
Session ses("SQLite", "sample.db");
int count = 0;
ses << "SELECT COUNT(*) FROM PERSON", into(count), now;
std::cout << "People in DB " << count;
shutdown();
}
这个程序是那个指南上的。运行总是崩溃。主要提示信息:Debug Error! R6010 -abort() has been called
原因如下:
1.数据库sample.db 是刚建好的,里面没有person表。
2.改成自己建好的有表的数据库,记得拷贝到程序调试目录下(在配置环境中有改写),要不然改了数据库名字,还是新建的,没有表person。
就因为这些小问题,我忙忙碌碌的过了一天。
记一下,以后多注意。大家互相借鉴一下。