0

我已经成功地制作了连接器/ODBC,然后我编写了一些代码:

SQLHENV henv;       
SQLHDBC phdbc;      
SQLRETURN retcode; 
retcode = SQLAllocEnv(&henv); 
retcode = SQLAllocConnect(henv,&phdbc);    
if(retcode == SQL_SUCCESS)
{
    char *a="cc_mysql";
    char *b="chen1991";         
    retcode = SQLConnect(phdbc,(SQLCHAR*)a,SQL_NTS,(SQLCHAR*)b,SQL_NTS,(SQLCHAR*)b,SQL_NTS);
             }

但我无法连接。我调试它,发现 SQLAllocConnect 返回 true ,但 SQLConnect 返回 -1,我无法理解发生了什么。

4

1 回答 1

0

发生的事情是您对 SQLConnect 的调用失败,您需要调用 SQLError 来获取错误。我只是猜测,但可能是 DSN cc_mysql 不存在或您的用户名/密码无效,或者 mysql 不允许该用户访问它等。

顺便说一句,这些天你真的应该至少编写 ODBC 3 应用程序,为此你应该调用 SQLAllocHandle、SQLSetEnvAttr(设置 ODBC 行为)、SQLDriverConnect 和 SQLGetDiagRec。

于 2012-05-14T07:34:06.243 回答