bool Connect(string _dsnName, string _userName, string _password) { // Get a handle to the SQL environment. if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &g_environment))) { return false; } // Use ODBC v3. if (!SQL_SUCCEEDED(SQLSetEnvAttr(g_environment, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3, 0))) { return false; } // Get a handle to an SQL connection. if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC, g_environment, &g_connection))) { return false; } // Connect! if (!SQL_SUCCEEDED(SQLConnectA(g_connection, (SQLCHAR*) _dsnName.c_str(), SQL_NTS, (SQLCHAR*) _userName.c_str(), SQL_NTS, (SQLCHAR*) _password.c_str(), SQL_NTS))) { return false; } return true; }
BOOL CODBCDatabase::Open(CHAR* szDSN,CHAR* szUser, CHAR* szPass) { SQLRETURN ret; if(m_lConnectionTimeout > 0) SQLSetConnectAttr(m_hDbc, SQL_ATTR_CONNECTION_TIMEOUT, (SQLPOINTER)m_lConnectionTimeout, 0); SQLSetConnectAttr(m_hDbc, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER)m_lLoginTimeout, 0); ret = SQLConnectA(m_hDbc, (SQLCHAR *)szDSN, SQL_NTS, (SQLCHAR *)szUser, SQL_NTS, (SQLCHAR *)szPass, SQL_NTS); m_bIsConnected = ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO; return m_bIsConnected; }