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 } |