0

我在 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 格式错误吗?还是我有其他问题?

谢谢 。

4

1 回答 1

1

它失败的原因可能有很多 - 您是否通过 ODBC 管理器测试了 DSN。失败时调用 SQLGetDiagRec,您会发现原因。有关 C 中的示例,请参阅ODBC 诊断和错误状态代码。鉴于您提供的信息,例如“DSN=x;UID=y;PWD=z”是一个有效的连接字符串,我看不出有任何明显错误。

于 2012-09-24T16:06:27.763 回答