我正在尝试从新创建的 C++ 应用程序连接到本地 SQL Server 2008 实例。我还在学习 C++,所以我可能会遗漏一些明显的东西。
我正在使用 Microsoft Visual Studio 2010,将 Win32 控制台应用程序创建为空白项目并自己添加 main.cpp。
SQL Server 实例已启动并正在运行,我可以使用 SQL 或集成身份验证从其他机器连接到它,我什至可以让我的 C# 应用程序使用 .net 对象进行连接。
但是在 C++ 中,我无法建立连接,它总是报告失败。
到目前为止,我的代码如下
#include <iostream>
#include <windows.h>
#include <sqltypes.h>
#include <sql.h>
#include <sqlext.h>
int main() {
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN ret;
SQLSMALLINT columns;
int row = 0;
/* Allocate an environment handle */
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
/* We want ODBC 3 support */
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);
/* Allocate a connection handle */
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
/* Connect to the DSN */
SQLDriverConnectW(dbc, NULL, L"DRIVER={SQL Server};SERVER=(local)\DB1;DATABASE=master;UID=sa;PWD=password;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
/* Check for success */
if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt))
{
std::cout << "Failed to connect";
}
std::cin.get();
return 0;
}
我基于看到一些在线示例,例如http://www.easysoft.com/developer/languages/c/odbc_tutorial.html
始终,即使使用有效凭据,我的代码也会进入无法连接块。并尝试使用上面链接文章中的 extract_error ,根本不会产生任何错误消息。
请问我在这里做错了什么?谢谢