数据库连接有关问题,为什么SQLConnect连接失败
数据库连接问题,为什么SQLConnect连接失败
前面都正常,就下面的SQLConnect函数执行失败,MSDN上例子,怎么回事,我就改了数据库用户的连接参数,PC-201101311025是我的数据库服务器名称。
------解决方案--------------------
建议用ADO,很简单的.
------解决方案--------------------
那你看下 retcode 这个返回什么值。
再对比下MSDN的说明
------解决方案--------------------
测试一下你的连接字符串,可以找一段好使的ODBC代码,把你的连接字符串放上去看看好不好使
前面都正常,就下面的SQLConnect函数执行失败,MSDN上例子,怎么回事,我就改了数据库用户的连接参数,PC-201101311025是我的数据库服务器名称。
- C/C++ code
#include <windows.h> #include "sqlext.h" #include "stdio.h" void main() { SQLHENV henv; SQLHDBC hdbc; SQLHSTMT hstmt; SQLRETURN retcode; /*Allocate environment handle */ retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Set the ODBC version environment attribute */ retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Allocate connection handle */ retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Set login timeout to 5 seconds. */ SQLSetConnectAttr(hdbc, /*(void*)*/SQL_LOGIN_TIMEOUT, (void*)5, 0); /* Connect to data source */ retcode = [color=#FF0000]SQLConnect[/color](hdbc, (SQLCHAR*) "PC-201101311025", SQL_NTS, (SQLCHAR*) "sa", SQL_NTS, (SQLCHAR*) "", SQL_NTS); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){ /* Allocate statement handle */ retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); [color=#FF0000]printf("success");[/color] if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { /* Process data */ SQLFreeHandle(SQL_HANDLE_STMT, hstmt); } SQLDisconnect(hdbc); } SQLFreeHandle(SQL_HANDLE_DBC, hdbc); } } SQLFreeHandle(SQL_HANDLE_ENV, henv); } }
------解决方案--------------------
建议用ADO,很简单的.
------解决方案--------------------
那你看下 retcode 这个返回什么值。
再对比下MSDN的说明
------解决方案--------------------
测试一下你的连接字符串,可以找一段好使的ODBC代码,把你的连接字符串放上去看看好不好使