我在c ++中使用ODBC API连接数据库。我已经使连接功能一切正常,直到我进入SQLDriverConnect为止。

 _TUCHAR szConnectOutput[3000];
         SWORD nResult;

         retcode = SQLDriverConnect(hdbc, NULL,
                    (SQLTCHAR *)szDNS, SQL_NTS,szConnectOutput, 3000,
                    &nResult, SQL_DRIVER_NOPROMPT);

         if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)


retcode返回为-1。我不确定是什么问题,可能是我的DSN格式错误。
我的DNS是DSN =“ DSN = Messe10_2; Uid = test; Pwd = test”;我尝试连接的数据库是Oracle数据库。我的DSN格式错误吗?还是我还有其他问题?

谢谢 。

最佳答案

失败有多种原因-您是否通过ODBC管理器测试了DSN。失败时调用SQLGetDiagRec,您会找到原因。有关C中的示例,请参见ODBC Diagnostics & Error Status Codes。鉴于您提供的信息,例如“ DSN = x; UID = y; PWD = z”是有效的连接字符串,我看不到任何明显错误的内容。

关于c++ - ODBC SQLDriverConnect无法连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12567248/

10-13 09:02