src/DriverManager.cpp
branchv_0
changeset 47 428c278af4be
parent 42 7f668a5a435b
equal deleted inserted replaced
46:85e6dc1853ee 47:428c278af4be
    67 	std::string passwordBytes = convertor.to_bytes(password);
    67 	std::string passwordBytes = convertor.to_bytes(password);
    68 	SQLRETURN result = SQLConnect(connection,
    68 	SQLRETURN result = SQLConnect(connection,
    69 			(SQLCHAR*) dataSourceNameBytes.c_str(), SQL_NTS,
    69 			(SQLCHAR*) dataSourceNameBytes.c_str(), SQL_NTS,
    70 			(SQLCHAR*) userNameBytes.c_str(), SQL_NTS,
    70 			(SQLCHAR*) userNameBytes.c_str(), SQL_NTS,
    71 			(SQLCHAR*) passwordBytes.c_str(), SQL_NTS);
    71 			(SQLCHAR*) passwordBytes.c_str(), SQL_NTS);
    72 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to connect to DSN: " + dataSourceName, result, SQL_HANDLE_DBC, connection, true);
    72 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to connect through DSN: " + dataSourceName, result, SQL_HANDLE_DBC, connection, true);
    73 	return new Connection(connection);
    73 	return new Connection(connection);
    74 }
    74 }
    75 
    75 
    76 Connection* DriverManager::getConnectionByURL(relpipe::reader::string_t connectionString) {
    76 Connection* DriverManager::getConnectionByString(relpipe::reader::string_t connectionString) {
    77 	SQLHDBC connection = OdbcCommon::allocateHandle(SQL_HANDLE_DBC, environment);
    77 	SQLHDBC connection = OdbcCommon::allocateHandle(SQL_HANDLE_DBC, environment);
    78 	char completeConnectionString[SQL_MAX_OPTION_STRING_LENGTH];
    78 	char completeConnectionString[SQL_MAX_OPTION_STRING_LENGTH];
    79 	memset(completeConnectionString, 0, sizeof (completeConnectionString));
    79 	memset(completeConnectionString, 0, sizeof (completeConnectionString));
    80 	SQLSMALLINT completeConnectionStringLength = -1;
    80 	SQLSMALLINT completeConnectionStringLength = -1;
    81 	SQLRETURN result = SQLDriverConnect(connection, nullptr,
    81 	SQLRETURN result = SQLDriverConnect(connection, nullptr,
    82 			(SQLCHAR*) convertor.to_bytes(connectionString).c_str(), SQL_NTS,
    82 			(SQLCHAR*) convertor.to_bytes(connectionString).c_str(), SQL_NTS,
    83 			(SQLCHAR*) completeConnectionString, sizeof (completeConnectionString), &completeConnectionStringLength,
    83 			(SQLCHAR*) completeConnectionString, sizeof (completeConnectionString), &completeConnectionStringLength,
    84 			SQL_DRIVER_NOPROMPT);
    84 			SQL_DRIVER_NOPROMPT);
    85 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to connect to URL: " + connectionString, result, SQL_HANDLE_DBC, connection, true);
    85 	if (OdbcCommon::isNotSuccessful(result)) throw SqlException(L"Unable to connect through string: " + connectionString, result, SQL_HANDLE_DBC, connection, true);
    86 	return new Connection(connection);
    86 	return new Connection(connection);
    87 }
    87 }
    88 
    88 
    89 }
    89 }
    90 }
    90 }