2012-05-13 3 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.

Смежные вопросы