我有一個C++程序,它動態創建一個查詢字符串,然後它將被傳遞給SQLExecDirect
調用以使用ODBC連接到數據庫。我無法將變量從一個函數傳遞給另一個函數,因此我認爲我必須缺少一些基本的東西?將std :: wstring轉換爲SQLWCHAR *
在ConstructQuery
函數(返回類型SQLWCHAR *
),我有:
std::wstring test = L"test string"; //This test string will actually be several concatenated strings
SQLWCHAR *statement = (SQLWCHAR *)test.c_str();
std::wcout << statement;
return statement;
此打印語句變量如預期。但是當我將變量傳遞給我的主函數時,像這樣:
SQLStatement = ConstructQuery(SQLStatement);
std::wcout << SQLStatement;
我沒有輸出。
如果代替statement = (SQLWCHAR *)test.c_str()
;
我使用:statement = L"test string"
;
該變量通過很好,但我不能動態地在函數的前面部分創建「測試字符串」查詢。
我很難找到關於SQLWCHAR
的很多信息。我猜測我可能會錯誤地將std::wstring
轉換爲SQLWCHAR *
?另一個選擇是重寫函數,以便所有的wstring
都是SQLWCHAR *
,並以這種方式進行連接 - 但我不確定這是可能的,即使它是我不認爲它是首選?
我知道這是基本的東西,非常感謝。有沒有辦法讓我接受你的評論作爲答案? – TwoHundredOK