将std :: wstring转换为SQLWCHAR *
技术问答
241 人阅读
|
0 人回复
|
2023-09-12
|
我有一个C( H0 Q# q- [# E9 r. P
程序正在动态创建查询字符串,然后传递给SQLExecDirect使用ODBC连接到数据库的呼叫。当我将变量从一个函数传输到另一个函数时,我遇到了麻烦,所以我认为我必须缺乏一些基本知识吗?
" G `3 m) K; q( m% u9 B, u在ConstructQuery函数中(返回type SQLWCHAR *),我有:
* \9 D! O# l# c/ K8 G ^std::wstring test = L"test string"; //This test string will actually be several concatenated stringsSQLWCHAR *statement = (SQLWCHAR *)test.c_str();std::wcout 这将按预期打印语句变量。但当我把变量传递给我的主要功能时:
+ |. \! G4 J0 |4 F6 ?8 r" G l0 \SQLStatement = ConstructQuery(SQLStatement);std::wcout 我没有输出。
0 F! S% R# f" z2 B- P- E* l如果代替statement = (SQLWCHAR *)test.c_str();
; y( }& |- n( f我用:statement = L"test string";- T' B# |2 c. m9 `
该变量可以正常通过,但我无法在函数的早期动态创建测试字符串查询。
( K+ V7 N. G& d1 N我很难找到更多有关的信息SQLWCHAR。我猜我可能会改变std::wstring为SQLWCHAR*错误?另一种选择是重写这个函数,以便所有wstringareSQLWCHAR *以这种方式连接-
( B$ I/ m* q: v* {但我不确定这是可能的,即便如此,我也不认为这是首选?% R8 Q# q: x D: G) ?2 c9 D
6 q5 p2 L# Q7 m, t8 g1 O3 R8 D 解决方案: |
|
|
|
|
|