我有一个 C++ 程序,它动态创建一个查询字符串,然后将其传递给SQLExecDirect
调用以使用 ODBC 连接到数据库。我在将变量从一个函数传递到另一个函数时遇到问题,所以我认为我一定缺少一些基本的东西?
在ConstructQuery
函数(返回 type 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 *
以这种方式进行连接 - 但我不确定这是可能的,即使它是我不认为它是首选?