2014-02-07 70 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)日期。 我想存儲這個日期在一些變量和打印進一步處理。因爲在我的下一個查詢我需要通過這個日期作爲變量。 我想這在雙轉換或詮釋,如:如何存儲日期某些變量在C++中

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

但是,這是給我輸出2014僅2014-01-10不是。 由於我是新來的C++我需要你的幫助。提前感謝

+0

爲什麼不簡單地使用'string'? – herohuyongtao

+0

你能解釋一下嗎?我嘗試過使用字符串,但它給了我一個錯誤 – user3282963

+0

'res1 [i] [1]'的類型是什麼? – herohuyongtao

回答

0

我假設你得到日期作爲字符串2014-01-10atoi()削減它在「 - 」 - 符號。

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是。

+0

。它不適用於我.res1 [i] [1]從datase返回時有數據類型字符串 – user3282963

+0

好的,那麼你需要從'mysqlpp :: String'轉換爲'std :: string'。你可以試試'std :: string date; res1 [i] [1] .toString(date);'See:http://tangentsoft.net/mysql++/doc/html/refman/classmysqlpp_1_1String.html – Marik

+0

std :: string date; RES1 [I] [1] .to_string(日期); – Marik

0

不知道你使用的lib,從我所看到的我猜

res[][] 

是一個字符串數組,這樣你就可以通過焦炭拆分您的字符串「 - 」和你的價值觀存儲到三個單獨的變量(或更好的結構,或任何你想要的)。

但是,我確定有更好的方法來處理這類數據,我建議您檢查文檔以查看是否有方法從查詢中獲得雙精度或長精度。

+0

我不知道如何拆分字符串和存儲值在2個單獨的變量。你可以告訴我該怎麼做? – user3282963

+0

@Marik建議你簡單的解決方案,如果你知道你總是以格式YYYY-MM-DD獲得日期,那麼接受並遵循他的解決方案。如果這不是真的,你可能需要建立自己的功能來分割。 – IssamTP