我是POCO图书馆的新手。我需要从SQL Server读取DateTime字段(使用ODBC Native Client连接)。我在阅读字符串或数字方面没有任何问题,但日期或时间戳给我带来了困难......我不确定是否应该使用Poco :: Timestamp来实现这一目标。显然不是。
#include <vector>
#include <iostream>
#define POCO_STATIC
#include <Poco/DateTime.h>
#include <Poco/DateTimeFormat.h>
#include <Poco/DateTimeFormatter.h>
#include <Poco/SharedPtr.h>
#include <Poco/Tuple.h>
#include <Poco/Data/SessionFactory.h>
#include <Poco/Data/Session.h>
#include <Poco/Data/ODBC/Connector.h>
using namespace Poco::Data;
int main() {
typedef Poco::Tuple<std::string, Poco::Timestamp> Event;
typedef std::vector<Event> Events;
Poco::Data::ODBC::Connector::registerConnector();
Session session("ODBC", "DSN=TestSNAC");
Events events;
Statement select(session);
select << "select Name, StartDate from Events order by Name", into(events), now;
for (Events::const_iterator it = events.begin(); it != events.end(); it++) {
std::string date(Poco::DateTimeFormatter::format(it->get<1>(), "%b %e, %Y"));
std::cout << " Name: " << it->get<0>()
<< " Start: " << date << std::endl;
}
return 0;
}
我在第27行编译时遇到以下错误(即以&#39开头的那个;选择&lt;&lt;&#34;选择姓名...):
error C2664: 'bool Poco::Data::AbstractExtractor::extract(size_t,Poco::Int8 &)' : cannot convert parameter 2 from 'Poco::Timestamp' to 'Poco::Int8 &'
非常感谢你......
答案 0 :(得分:2)
好的,好像目前我无法从数据库中读取Dates或Times。我在Poco论坛上发现了这条评论:
对日期,时间和日期时间的支持在SVN中继中,并且将是 1.5中介绍。释放。
包含此链接是为了获取Extractor类的最新版本:http://poco.svn.sourceforge.net/viewvc/poco/poco/trunk/Data/ODBC/src/Extractor.cpp?revision=1904&view=markup
在这个类中,我可以看到对两个新类Poco :: Data:Date和Poco :: Data :: Time的引用。
您可以在此处阅读原始帖子:http://pocoproject.org/forum/viewtopic.php?f=12&t=5492&p=9272&hilit=data+datetime#p9272
我将获得最新版本并尝试。
谢谢