2012-10-04 1 views
3

나는 POCO 라이브러리를 가진 초보자입니다. SQL Server (ODBC Native Client를 사용하여 연결됨)에서 DateTime 필드를 읽어야합니다. 문자열이나 숫자를 읽는 데 아무런 문제가 없습니다. 그러나 날짜 또는 타임 스탬프로 인해 어려움을 겪고 있습니다 ... 이것을 수행하기 위해 Poco :: Timestamp를 사용해야하는지 잘 모르겠습니다. 명백하게.Poco C++ 라이브러리를 사용하여 데이터베이스에서 "dates"를 읽는 방법

#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; 
} 

I 라인 (27)에 컴파일하는 동안 다음과 같은 오류를 받고 있어요 (즉, ...로 시작하는 하나의 '< <은 "이름을 선택 선택입니다) :

error C2664: 'bool Poco::Data::AbstractExtractor::extract(size_t,Poco::Int8 &)' : cannot convert parameter 2 from 'Poco::Timestamp' to 'Poco::Int8 &' 

너무 감사합니다 ...

답변

2

좋아, 현재 나는 데이터베이스에서 날짜 또는 시간을 읽을 수처럼 나는 마시고 포럼에서이 댓글을 발견 보인다.

을 0

날짜, 시간 및 날짜 시간 지원은 SVN 트렁크에 있으며 012에 도입 된 이 될 것입니다. 해제. 나는 두 개의 새로운 클래스 마시고 :: 데이터에 대한 참조를 볼 수있는이 클래스에서 http://poco.svn.sourceforge.net/viewvc/poco/poco/trunk/Data/ODBC/src/Extractor.cpp?revision=1904&view=markup

:

이 링크는 추출기 클래스의 최신 버전 얻기 위해 포함되어 날짜 및 마시고 :: 데이터 :: 시간 .

당신은 여기에 원래 게시물을 읽을 수 있습니다 : 나는 최신 버전을 얻을하려고합니다 http://pocoproject.org/forum/viewtopic.php?f=12&t=5492&p=9272&hilit=data+datetime#p9272

.

감사합니다.