From 9a363418a933a3307fb8fab5789911f87daa9fa8 Mon Sep 17 00:00:00 2001 From: "Jan.Varga%gmail.com" Date: Tue, 6 Jun 2006 10:41:38 +0000 Subject: [PATCH] SQLConnect() doesn't work with some ODBC drivers. git-svn-id: svn://10.0.0.236/trunk@199099 18797224-902f-48f8-a5cc-f745e15eee43 --- .../sql/odbc/src/mozSqlConnectionODBC.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mozilla/extensions/sql/odbc/src/mozSqlConnectionODBC.cpp b/mozilla/extensions/sql/odbc/src/mozSqlConnectionODBC.cpp index ce341d09627..7f99d9e8b73 100644 --- a/mozilla/extensions/sql/odbc/src/mozSqlConnectionODBC.cpp +++ b/mozilla/extensions/sql/odbc/src/mozSqlConnectionODBC.cpp @@ -71,10 +71,17 @@ mozSqlConnectionODBC::Init(const nsAString &aHost, PRInt32 aPort, SQLSetEnvAttr(mEnv, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0); SQLAllocHandle(SQL_HANDLE_DBC, mEnv, &mConnection); - if(!SQL_SUCCEEDED(SQLConnect(mConnection, - (SQLCHAR*) NS_LossyConvertUTF16toASCII(aDatabase).get(),SQL_NTS, - (SQLCHAR*) NS_LossyConvertUTF16toASCII(aUsername).get(),SQL_NTS, - (SQLCHAR*) NS_LossyConvertUTF16toASCII(aPassword).get(),SQL_NTS))){ + NS_LossyConvertUTF16toASCII inString(NS_LITERAL_STRING("DSN=") + aDatabase + + NS_LITERAL_STRING(";UID=") + aUsername + + NS_LITERAL_STRING(";PWD=") + aPassword); + char outString[1024]; + SQLSMALLINT outStringLength; + if (!SQL_SUCCEEDED(SQLDriverConnect(mConnection, NULL, + (SQLCHAR*)inString.get(), + inString.Length(), + (SQLCHAR*)outString, sizeof(outString), + &outStringLength, + SQL_DRIVER_COMPLETE))) { SetError(mConnection, SQL_HANDLE_DBC); return NS_ERROR_FAILURE;