2012-05-13 79 views
0

我做了连接器/ ODBC成功,那么我写一些代码:SQLAllocConnect成功,但失败的SQLConnect

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,我无法理解发生了什么。

回答

0

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

顺便说一句,你应该至少写入ODBC 3应用程序这些日子,并应该调用SQLAllocHandle,SQLSetEnvAttr(设置ODBC行为),SQLDriverConnect和SQLGetDiagRec。