我在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格式错了吗?或者我还有其他问题吗?
谢谢。
答案 0 :(得分:0)
失败可能有很多原因 - 您是否通过ODBC管理员测试了DSN。在失败时调用SQLGetDiagRec,你会发现原因。有关C中的示例,请参阅ODBC Diagnostics & Error Status Codes。鉴于您提供的信息,我看不到任何明显错误,例如,“DSN = x; UID = y; PWD = z”是有效的连接字符串。