gpt4 book ai didi

C++ ODBC SQL Server 2008 连接

转载 作者:太空狗 更新时间:2023-10-29 20:45:06 26 4
gpt4 key购买 nike

我正在尝试从新创建的 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

我的代码总是进入连接失败 block ,即使凭据有效。并尝试使用上面链接文章中的 extract_error,我根本没有收到任何错误消息。

请问我做错了什么?谢谢

最佳答案

从评论中重新发布以便关闭问题:

  • (SQLWCHAR*) 是一个明显的错误。尝试使用 L 来让您的字符串文字成为字符串文字。

  • 默认连接超时为 60 秒,因此您可能遇到了这个问题。检查您的 SQL 协议(protocol)设置,如果它配置为在本地使用 TCP,请同时检查您的防火墙设置。

关于C++ ODBC SQL Server 2008 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com