2014-02-07 2 views
0
#include <iostream> 
#include </usr/local/include/mysql++/mysql++.h> 
#include "/usr/local/include/mysql++/cmdline.h" 
#include </usr/include/mysql/mysql_version.h> 
int main(){ 
      if(conn1.connect(db1, server, username, pass)) 
      { 

      mysqlpp::Query query = conn1.query("SELECT * FROM `table` WHERE FIND_IN_SET('"+strzipcode+"',`Zipcodes`);"); 
        if (mysqlpp::StoreQueryResult res1 =query.store()) 
        { 
         cout << "We have:"<<endl; 
         for (size_t i= 0; i < res1.num_rows();i++) 
          { 
          cout<<res1[i][0]<<endl; 
          } 
        } 
      return 0; 
      } 

// 여기 res1 [i] [0]은 내 데이터베이스 (2014-01-10)에 저장된 날짜를 제공합니다. 이 날짜를 변수에 저장하고 이후 처리를 위해 인쇄하고 싶습니다. 다음 날짜의 쿼리에서이 날짜를 변수로 전달해야하기 때문에. 나는이 두 번에 변환하거나 같은 int로 시도 :날짜를 C++의 변수에 저장하는 방법

int dateStart =atoi(res1[i][1]); 
cout << "DateStart :"<<dateStart << endl; 

하지만이뿐만 아니라 2014-01-10 2014 나 출력주고있다. "-"- 기호 전 C에 새로운 오전으로 가 ++ i가 사전

+0

단순히 '문자열'을 사용하지 않는 이유는 무엇입니까? – herohuyongtao

+0

당신은 어떻게 설명 할 수 있습니까 ?? 문자열로 시도했지만 오류가 발생했습니다. – user3282963

+0

'res1 [i] [1]'의 유형은 무엇입니까? – herohuyongtao

답변

0

에 도움이 .Thanks 필요 난 당신이 문자열 2014-01-10 및 상기 atoi() 삭감을 같은 날짜를 얻을 가정합니다.

std::string date; 
res1[i][1].to_string(date); 
int year = atoi(date.substr(0,4)); 
int month = atoi(date.substr(5,2)); 
int day = atoi(date.substr(8,2)); 

물론 #include <string>

나는 더 우아한 날짜 형식과 솔루션뿐만 아니라이 있다고 생각합니다.

업데이트 : 문자열로 날짜를 처리하기에 충분하고 구성 요소에 관심이 없다면 res1 데이터 유형을 알려줘야합니다. '-'와로 값을 저장 내가

res[][] 

문자열 배열입니다 추측 볼 수 있습니다, 그래서 당신은 숯불하여 문자열을 분할 할 수 있습니다 무엇에서 사용하고있는 lib 디렉토리를 알고

+0

.it이 나를 위해 작동하지 않습니다. .res1 [i] [1]이 데이터베이스 타입의 데이터 타입 문자열을 가지고 있습니다. – user3282963

+0

그렇다면, mysqlpp :: String에서 std :: string으로 변환해야합니다. 여러분은'std :: string date; res1 [i] [1] .toString (date);'참조 : http://tangentsoft.net/mysql++/doc/html/refman/classmysqlpp_1_1String.html – Marik

+0

std :: string date; res1 [i] [1] .to_string (date); – Marik

0

하지 않음 3 개의 분리 된 변수 (또는 더 나은 구조, 또는 원하는 것).

그러나 이런 종류의 데이터를 처리하는 데 더 좋은 방법이있을 것이라고 확신합니다. 설명서에서 문서를 확인하여 쿼리에서 double 또는 long을 얻을 수있는 방법이 있는지 확인하는 것이 좋습니다.

+0

문자열을 분리하고 2 개의 변수에 값을 저장하는 방법을 모르겠습니다. 어떻게 할 수 있는지 말해 주시겠습니까? – user3282963

+0

@Marik은 항상 YYYY-MM-DD 형식으로 날짜를 얻었으므로 자신의 솔루션을 수락하고 따르는 쉬운 해결책을 제안했습니다. 이것이 사실이 아니라면, 아마도 나눌 수있는 함수를 직접 만들어야 할 것입니다. – IssamTP

관련 문제