我在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/