Beispiel #1
0
void CServer::ConnectToSql( )
{
	const char* SQLString = "DRIVER={SQL Server};SERVER=TPT\\SQLExpress;UID=sa;PWD=123456;";
	SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &s_Env );
	SQLSetEnvAttr( s_Env, SQL_ATTR_ODBC_VERSION, ( SQLPOINTER )SQL_OV_ODBC3, 0 );
	SQLAllocHandle( SQL_HANDLE_DBC, s_Env, &s_Conn );
	SQLDriverConnectA( s_Conn, NULL, ( SQLCHAR* )( SQLString ),
					   SQL_NTS, NULL, NULL, NULL, SQL_DRIVER_NOPROMPT );
};
Beispiel #2
0
bool OdbcWrapper::connect(const char *server, const char *user, const char *password, const char *dbname,
                          const char *charset) {

    if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlenvhandle)) {
        close();
        return false;
    }
    if (SQL_SUCCESS != SQLSetEnvAttr(sqlenvhandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0)) {
        close();
        return false;
    }
    if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_DBC, sqlenvhandle, &sqlconnectionhandle)) {
        close();
        return false;
    }

    SQLCHAR retconstring[1024];
    char addr[1024] = {0};
    sprintf(addr, "DRIVER={SQL Server};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s;",server,dbname,user,password);
    switch (SQLDriverConnectA(sqlconnectionhandle,
                              NULL,
                              (SQLCHAR*) addr,
                              SQL_NTS,
                              retconstring,
                              1024,
                              NULL,
                              SQL_DRIVER_NOPROMPT)) {
        case SQL_SUCCESS_WITH_INFO:
            get_error(SQL_HANDLE_DBC, sqlconnectionhandle);
            break;
        case SQL_INVALID_HANDLE:
        case SQL_ERROR:
            get_error(SQL_HANDLE_DBC, sqlconnectionhandle);
            close();
            return false;
        default:
            break;
    }
    if (SQL_SUCCESS != SQLAllocHandle(SQL_HANDLE_STMT, sqlconnectionhandle, &sqlstatementhandle)) {
        close();
        return false;
    }
    return true;
}
/*-------------------------------------------------------------------------
 * InitSql
 *-------------------------------------------------------------------------
 * Purpose:
 *    Set up the odbc stuff
 * 
 * Returns:
 *    0. Returns a value only so we can call it during global initialization,
 *        before any code blocks execute.
 */
int InitSql(char * szRegKey, ISQLSite * pSQLSite)
{
  g_pSQLSite = pSQLSite;
  
  // Setup odbc stuff
  SQLRETURN sqlret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hSqlEnv);
  if (SQL_SUCCESS != sqlret)
    SQLWhatsWrong(SQL_HANDLE_ENV, hSqlEnv);
  
  sqlret = SQLSetEnvAttr(hSqlEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC2, 0);
  if (SQL_SUCCESS != sqlret)
    SQLWhatsWrong(SQL_HANDLE_ENV, hSqlEnv);
  
  sqlret = SQLAllocHandle(SQL_HANDLE_DBC, hSqlEnv, &hSqlDbc);
  if (SQL_SUCCESS != sqlret)
    SQLWhatsWrong(SQL_HANDLE_DBC, hSqlDbc);

  // BT - 7/15 CSS Integration.
  char szCssIntegration[8];
  strcpy(szCssIntegration, ParseCommandLine(szRegKey, "CssIntegration", "0"));
  bool useCssIntegration = atoi(szCssIntegration) > 0;

  SQLCHAR StrConnectionOut[1<<10];
  SQLSMALLINT cbStrConnectionOut;

  // BT - 7/15 CSS Integration - Making Club Server actually obey the registry for settings.
  if (useCssIntegration == false)
  {
	  sqlret = SQLDriverConnectA(hSqlDbc, NULL, (SQLCHAR*)
		  "DRIVER={SQL Server};PWD=AllegFed@2014!NotSecret;UID=club;DATABASE=AZFederation;SERVER=tqhlsg1ad6.database.windows.net", SQL_NTS,
		  StrConnectionOut, sizeof(StrConnectionOut),
		  &cbStrConnectionOut, SQL_DRIVER_NOPROMPT);
  }
  else
  {
	  char szUser[64];
	  char szPW[64];
	  char szDatabase[64];
	  char szServer[128];
	  strcpy(szUser, ParseCommandLine(szRegKey, "SQLUser", "club"));
	  strcpy(szPW, ParseCommandLine(szRegKey, "SQLPW", "AllegFed@2014!NotSecret"));
	  strcpy(szDatabase, ParseCommandLine(szRegKey, "SQLDatabase", "AZFederation"));
	  strcpy(szServer, ParseCommandLine(szRegKey, "SQLServer", "localhost"));

	  char sqlDsn[2048];
	  sprintf(sqlDsn, "DRIVER={SQL Server};PWD={%s};UID=%s;DATABASE=%s;SERVER=%s;", szPW, szUser, szDatabase, szServer);

	  printf("  Connecting with DSN: %s...\n", sqlDsn);
	 
	  sqlret = SQLDriverConnectA(hSqlDbc, NULL, (SQLCHAR*)
		  sqlDsn, SQL_NTS,
		  StrConnectionOut, sizeof(StrConnectionOut),
		  &cbStrConnectionOut, SQL_DRIVER_NOPROMPT);
  }
  
  if (SQL_SUCCESS != sqlret && SQL_SUCCESS_WITH_INFO != sqlret)
    SQLWhatsWrong(SQL_HANDLE_DBC, hSqlDbc);
  
   SQLCHAR scODBCver[6];
  SQLSMALLINT cbODBCver;
  sqlret = SQLGetInfoA(hSqlDbc, SQL_DRIVER_ODBC_VER, scODBCver, sizeof(scODBCver), &cbODBCver);
  if (SQL_SUCCESS != sqlret)
    SQLWhatsWrong(SQL_HANDLE_DBC, hSqlDbc);

  return 0;
}