는 : RC2가 값을 얻을 것이다 동안SQLDriverConnect에 오류가 나는의 SQLDriverConnect를 사용하여 Microsoft SQL 데이터베이스에 연결하려고 어떤 진단 출력
int DatabaseHelper::ConnectDatabase()
{
SQLSMALLINT i, MsgLen;
SQLWCHAR SqlState[6];
SQLRETURN rc2;
SQLINTEGER NativeError[1];
SQLWCHAR Msg[SQL_MAX_MESSAGE_LENGTH];
retCode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlEnvHandle);
if (retCode != SQL_SUCCESS)
return retCode;
retCode = SQLSetEnvAttr(sqlEnvHandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
if (retCode != SQL_SUCCESS)
return retCode;
retCode = SQLAllocHandle(SQL_HANDLE_DBC, sqlEnvHandle, &sqlConnectionHandle);
if (retCode != SQL_SUCCESS)
return retCode;
retCode = SQLDriverConnect(sqlConnectionHandle, NULL, (SQLWCHAR*)L"Driver={SQL Server Native Client 11.0};Server = 192.168.56.56\SQLEXPRESS;Database = PCTOOLS; Uid = sa; Pwd = delphi2006; ", SQL_NTS, retConString, 1024, NULL, SQL_DRIVER_NOPROMPT);
i = 1;
rc2 = SQLGetDiagRec(SQL_HANDLE_STMT, sqlConnectionHandle, i, SqlState, NativeError,
Msg, sizeof(Msg), &MsgLen);
return retCode;
}
실행, RETCODE, 값 -1을 얻는다 -2. SqlState, NativeError 또는 Msg에 반환 된 값은 없습니다 (초기화되지 않은 값으로 유지됩니다). Visual C++ 2015를 사용 중입니다.
생각 ++ ? –