2016-04-04 6 views
0

私は次のコードを持っている:コードキャストはCONSTするwchar_t型のx []

 db::statement st(con, sql); 

     m = st.execute().into(_id); 

     while (m.move_next()) {     
      _items.push_back(item {_id}); 
     } 

があれば-else文で重複して書かれているあなたが見ることができるように

void get_id(int i, std::vector<item>& _items) { 

    auto cpool = get_db_connection_pool(); 
    auto con = cpool->get_connection(); 
    db::result m; 

    int _id; 

    if (i == 1) {    

     const wchar_t sql[] = LR"***(
      SELECT * FROM TABLE1      
     )***"; 

     db::statement st(con, sql); 

     m = st.execute().into(_id); 

     while (m.move_next()) {     
      _items.push_back(item {_id}); 
     } 
    } 
    else { 
     const wchar_t sql[] = LR"***(
      SELECT * FROM TABLE2      
     )***"; 

     db::statement st(con, sql); 

     m = st.execute().into(_id); 

     while (m.move_next()) {     
      _items.push_back(item {_id}); 
     } 
    } 
} 

を。私は一時的なstd::wstringであれば、そうでない場合にはsql[]を交換しようとしましたが、私はキャストする方法を見つけ出すことはできません

void get_id(int i, std::vector<item>& _items) { 

    auto cpool = get_db_connection_pool(); 
    auto con = cpool->get_connection(); 
    db::result m; 

    int _id; 

    if (i == 1) {    

     const wchar_t sql[] = LR"***(
      SELECT * FROM TABLE1      
     )***"; 
    } 
    else { 
     const wchar_t sql[] = LR"***(
      SELECT * FROM TABLE2      
     )***"; 
    } 


    db::statement st(con, sql); 

    m = st.execute().into(_id); 

    while (m.move_next()) {     
     _items.push_back(item {_id}); 
    } 
} 

std::wstring:私はこのような場合、他の例外でその部分を移動したいと思いますconst wchar_t sql[]になります。

答えて

3

std::wstringには、基底文字列にconst wchar_t*を返すメンバ関数c_strがあります。限りdb::statementがかかるようconst wchar_t []またはconst wchar_t *は、あなたが

std::wstring sql; 
if (i == 1) {    

    sql = LR"***(
     SELECT * FROM TABLE1      
    )***"; 
} 
else { 
    sql = LR"***(
     SELECT * FROM TABLE2      
    )***"; 
} 

db::statement st(con, sql.c_str()); 
+0

感謝を使用することができ、私はc_str()を知っているが、そのようにそれをやっていませんでし考えます。ありがとう!あなたは私がC++型について読むことができるサイトを知っていますか?私はC++ゲームの新機能です。私の知識はほとんどがC言語です# –

+0

@PresidentCamacho私は[cppreference.com](http://en.cppreference.com/w/)をかなり使っています。素晴らしい[C++ブック](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を入手したいかもしれません。 – NathanOliver