我需要做的是执行一个 SQL 查询:
wstring query = ( L "INSERT INTO database...........;
然后我执行这个:
CHECK( SQLExecDirectA( hStmt, query, SQL_NTS ), "execute query" );
但它不能编译,因为变量查询必须是 SQLCHAR 否则函数 SQLExecDirectA 将不起作用。
有人可以帮忙吗?
谢谢!
您尝试调用的函数称为 SQLExecDirect。(几乎)winapi 中的所有功能都存在于两个版本中——一个 ascii 版本和一个宽版本。根据您的项目设置(多字节字符集/Unicode),SQLExecDirect 是对 SQLExecDirectA 或 SQLExecDirectW 的定义(SQLExecDirectA 是 ascci 版本,SQLExecDirectW 是宽版本)。
SQLExecDirectA 意味着您使用宽字符串作为参数显式调用 ascii 版本。如果要使用宽字符串,请尝试调用 SQLExecDirectW 或 SQLExecDirect。