从wstring到SQLCHAR

时间:2012-04-04 22:37:56

标签: c++ wstring

我需要做的是执行SQL查询:

wstring query = ( L "INSERT INTO database...........;

然后我执行这个:

CHECK( SQLExecDirectA( hStmt, query, SQL_NTS ), "execute query" );

但它没有编译,因为变量查询必须是SQLCHAR,否则函数SQLExecDirectA将不起作用。

任何人都可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您尝试调用的函数称为SQLExecDirect。 (几乎)winapi中的所有函数都存在两个版本 - ascii版本和宽版本。根据您的项目设置(多字节字符集/ Unicode),SQLExecDirect是SQLExecDirectA或SQLExecDirectW的定义(SQLExecDirectA为ascci版本,SQLExecDirectW为宽版本)。

SQLExecDirectA表示您明确地使用宽字符串作为参数调用ascii版本。如果要使用宽字符串,请尝试调用SQLExecDirectW或SQLExecDirect。