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 Diagnostics & Error Status Codesを参照してください。たとえば、「DSN=x;UID=y;PWD=z」は有効な接続文字列です。

于 2012-09-24T16:06:27.763 に答える