SQLAllocConnect成功,但SQLConnect失败

时间:2012-05-13 14:04:12

标签: odbc

我成功地创建了连接器/ 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,我无法理解发生了什么。

1 个答案:

答案 0 :(得分:0)

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

BTW,你现在应该至少编写ODBC 3应用程序,为此你应该调用SQLAllocHandle,SQLSetEnvAttr(设置ODBC行为),SQLDriverConnect和SQLGetDiagRec。