http://git-wip-us.apache.org/repos/asf/kylin/blob/3c2329dc/odbc/Driver/KO_CONN.CPP
----------------------------------------------------------------------
diff --git a/odbc/Driver/KO_CONN.CPP b/odbc/Driver/KO_CONN.CPP
index 28642b1..cee9b39 100644
--- a/odbc/Driver/KO_CONN.CPP
+++ b/odbc/Driver/KO_CONN.CPP
@@ -15,8 +15,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
- 
+
+
 // ----------------------------------------------------------------------------
 //
 // File:    KO_CONN.CPP
@@ -58,110 +58,126 @@
 INT_PTR CALLBACK DlgDSNCfg1Proc ( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM 
lParam );
 
 // ----------------------------- local functions ------------------------------
-static eGoodBad     CreateAndSetConnProp ( pODBCConn pConn, Word pPropID, 
void* pPropValue );
+static eGoodBad CreateAndSetConnProp ( pODBCConn pConn, Word pPropID, void* 
pPropValue );
 
-static eGoodBad     PutDataToDlgDSNCfg1 ( pODBCConn pConn, HWND hDlg );
+static eGoodBad PutDataToDlgDSNCfg1 ( pODBCConn pConn, HWND hDlg );
 
-static eGoodBad     GetDataFromDlgDSNCfg1 ( HWND hDlg, pODBCConn pConn );
+static eGoodBad GetDataFromDlgDSNCfg1 ( HWND hDlg, pODBCConn pConn );
 
-static Word         PromptForConnInfo ( SQLHDBC pConn );
+static Word PromptForConnInfo ( SQLHDBC pConn );
 
-static eGoodBad     LoadKeyValuesfromFileDSN ( pODBCConn pConn, CStrPtr 
pDSNName, Word* pNumPair,
-                                               struct ODBCKV** pKV );
+static eGoodBad LoadKeyValuesfromFileDSN ( pODBCConn pConn, CStrPtr pDSNName, 
Word* pNumPair,
+                                           struct ODBCKV** pKV );
 
-static bool         AddKVToConnStr ( StrPtr pKey, StrPtr pValue, Word* iPos, 
StrPtr pStrConn, Word pMaxLen );
-static bool         BuildConnStr ( char* pStrConn, Word pMaxLen, pODBCConn 
pConn, struct ODBCKV* KVInput,
-                                   Word iKVInputPairs, struct ODBCKV* 
KVFileDSN, Word iKVFileDSNPairs );
+static bool AddKVToConnStr ( StrPtr pKey, StrPtr pValue, Word* iPos, StrPtr 
pStrConn, Word pMaxLen );
+static bool BuildConnStr ( char* pStrConn, Word pMaxLen, pODBCConn pConn, 
struct ODBCKV* KVInput,
+                           Word iKVInputPairs, struct ODBCKV* KVFileDSN, Word 
iKVFileDSNPairs );
 
-static const char *supportedProtocols[] = { PROTOCOL_HTTPS, PROTOCOL_HTTP };
-static const char *defaultPorts[] = { PORT_HTTPS_DEFAULT, PORT_HTTP_DEFAULT };
+static const char* supportedProtocols[] = { PROTOCOL_HTTPS, PROTOCOL_HTTP };
+static const char* defaultPorts[] = { PORT_HTTPS_DEFAULT, PORT_HTTP_DEFAULT };
 
 // -----------------------------------------------------------------------
 // to set a specified property in the connection structure
 // -----------------------------------------------------------------------
 
-eGoodBad SetConnProp ( pODBCConn pConn, Word pPropID, void* pPropValue ) {
+eGoodBad SetConnProp ( pODBCConn pConn, Word pPropID, void* pPropValue )
+{
     // note
     // this function does not create a copy of char data
     // it just transfers the pointer
     // numeric data is assumed to be a pointer
-    
+
     // check property
-    switch ( pPropID ) {
-        case CONN_PROP_SERVER:
-        
+    switch ( pPropID )
+    {
+        case CONN_PROP_SERVER :
+
             // check if a new value has to be put
-            if ( pPropValue ) {
-                copyTrimmed ( & ( ( char* ) pConn->Server ), ( char* ) 
pPropValue );
+            if ( pPropValue )
+            {
+                copyTrimmed ( & ( ( char* ) pConn -> Server ), ( char* ) 
pPropValue );
             }
-            
-            if ( pConn->Server == NULL || strlen ( pConn->Server ) == 0 ) {
+
+            if ( pConn -> Server == NULL || strlen ( pConn -> Server ) == 0 )
+            {
                 __ODBCPopMsg ( "Server cannot be empty" );
                 return BAD;
             }
-            
+
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The server is set to 
%s", pConn->Server ) );
             break;
-            
-        case CONN_PROP_PORT:
-        
+
+        case CONN_PROP_PORT :
+
             // numeric values are passed as pointer to value
             if ( pPropValue )
-            { pConn->ServerPort = * ( ( ULong* ) pPropValue ); }
-            
-            if ( pConn->ServerPort == 0 ) {
+            {
+                pConn -> ServerPort = * ( ( ULong* ) pPropValue );
+            }
+
+            if ( pConn -> ServerPort == 0 )
+            {
                 __ODBCPopMsg ( "ServerPort cannot be 0" );
                 return BAD;
             }
-            
+
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The port is set to %d", 
pConn->ServerPort ) );
             break;
-            
-        case CONN_PROP_UID:
-        
+
+        case CONN_PROP_UID :
+
             // check if a new value has to be put
             if ( pPropValue )
-            { copyTrimmed ( & ( ( char* ) pConn->UserName ), ( char* ) 
pPropValue ); }
-            
-            if ( pConn->UserName == NULL || strlen ( pConn->UserName ) == 0 ) {
+            {
+                copyTrimmed ( & ( ( char* ) pConn -> UserName ), ( char* ) 
pPropValue );
+            }
+
+            if ( pConn -> UserName == NULL || strlen ( pConn -> UserName ) == 
0 )
+            {
                 __ODBCPopMsg ( "UserName cannot be empty" );
                 return BAD;
             }
-            
+
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The uid is set to %s", 
pConn->UserName ) );
             break;
-            
-        case CONN_PROP_PWD:
-        
+
+        case CONN_PROP_PWD :
+
             // check if a new value has to be put
             if ( pPropValue )
-            { copyTrimmed ( & ( ( char* ) pConn->Password ), ( char* ) 
pPropValue ); }
-            
-            if ( pConn->Password == NULL || strlen ( pConn->Password ) == 0 ) {
+            {
+                copyTrimmed ( & ( ( char* ) pConn -> Password ), ( char* ) 
pPropValue );
+            }
+
+            if ( pConn -> Password == NULL || strlen ( pConn -> Password ) == 
0 )
+            {
                 __ODBCPopMsg ( "Password cannot be empty" );
                 return BAD;
             }
-            
+
             break;
-            
-        case CONN_PROP_PROJECT:
-        
+
+        case CONN_PROP_PROJECT :
+
             // check if a new value has to be put
             if ( pPropValue )
-            { copyTrimmed ( & ( ( char* ) pConn->Project ), ( char* ) 
pPropValue ); }
-            
-            if ( pConn->Project == NULL || strlen ( pConn->Project ) == 0 ) {
+            {
+                copyTrimmed ( & ( ( char* ) pConn -> Project ), ( char* ) 
pPropValue );
+            }
+
+            if ( pConn -> Project == NULL || strlen ( pConn -> Project ) == 0 )
+            {
                 __ODBCPopMsg ( "Project cannot be empty" );
                 return BAD;
             }
-            
+
             break;
-            
-        default:
+
+        default :
             __ODBCPOPMSG ( _ODBCPopMsg ( "Bad connection property" ) );
             return BAD;
     }
-    
+
     return GOOD;
 }
 
@@ -170,45 +186,52 @@ eGoodBad SetConnProp ( pODBCConn pConn, Word pPropID, 
void* pPropValue ) {
 // to create copy of a value and then set it in the struct
 // -----------------------------------------------------------------------
 
-static eGoodBad CreateAndSetConnProp ( pODBCConn pConn, Word pPropID, void* 
pPropValue ) {
-    bool    IsPropStr;
-    
+static eGoodBad CreateAndSetConnProp ( pODBCConn pConn, Word pPropID, void* 
pPropValue )
+{
+    bool IsPropStr;
+
     // precaution
     if ( !pConn )
-    { return BAD; }
-    
+    {
+        return BAD;
+    }
+
     // determine the prop type
-    switch ( pPropID ) {
-        case CONN_PROP_PORT:                // port is stored as a number
+    switch ( pPropID )
+    {
+        case CONN_PROP_PORT : // port is stored as a number
             IsPropStr = FALSE;
             break;
-            
-        default:
+
+        default :
             IsPropStr = TRUE;
             break;
     }
-    
+
     // check property type
-    if ( IsPropStr ) {
-        Word    x;
-        unique_ptr<char[]> s = NULL;
+    if ( IsPropStr )
+    {
+        Word x;
+        unique_ptr <char[]> s = NULL;
         // find length of property
         x = pPropValue ? strlen ( ( StrPtr ) pPropValue ) : 0;
-        
+
         // check if something
-        if ( x > 0 ) {
+        if ( x > 0 )
+        {
             // create copy of property
             s = make_unique_str ( x );
             // store
-            strcpy ( s.get(), ( StrPtr ) pPropValue );
+            strcpy ( s . get (), ( StrPtr ) pPropValue );
         }
-        
+
         // now set the property
-        return SetConnProp ( pConn, pPropID, s.get() );
+        return SetConnProp ( pConn, pPropID, s . get () );
     }
-    
-    else {
-        Long    v;
+
+    else
+    {
+        Long v;
         // convert value to integer
         v = ( pPropValue ) ? atoi ( ( StrPtr ) pPropValue ) : 0;
         // now set the property
@@ -220,146 +243,198 @@ static eGoodBad CreateAndSetConnProp ( pODBCConn pConn, 
Word pPropID, void* pPro
 // to provide the default data to DSN config dialog 1
 // -----------------------------------------------------------------------
 
-static eGoodBad PutDataToDlgDSNCfg1 ( pODBCConn pConn, HWND hDlg ) {
-    BOOL    x;
-    
+static eGoodBad PutDataToDlgDSNCfg1 ( pODBCConn pConn, HWND hDlg )
+{
+    BOOL x;
+
     // precaution
-    if ( !pConn || !hDlg ) {
+    if ( !pConn || !hDlg )
+    {
         __ODBCPOPMSG ( _ODBCPopMsg ( "PutDataToDlgDSNCfg1 - Bad params" ) );
         return BAD;
     }
-    
+
     // server name/IP
-    if ( pConn->Server )
-    { x = SetDlgItemText ( hDlg, IDC_SERVER, pConn->Server ); }
-    
+    if ( pConn -> Server )
+    {
+        x = SetDlgItemText ( hDlg, IDC_SERVER, pConn -> Server );
+    }
+
     else
-    { x = SetDlgItemText ( hDlg, IDC_SERVER, "" ); }
-    
-    if ( !x )  { return BAD; }
-    
+    {
+        x = SetDlgItemText ( hDlg, IDC_SERVER, "" );
+    }
+
+    if ( !x )
+    {
+        return BAD;
+    }
+
     // server port
-    if ( pConn->ServerPort )
-    { x = SetDlgItemInt ( hDlg, IDC_PORT, pConn->ServerPort, FALSE ); }
-    
+    if ( pConn -> ServerPort )
+    {
+        x = SetDlgItemInt ( hDlg, IDC_PORT, pConn -> ServerPort, FALSE );
+    }
+
     else
-    { x = SetDlgItemInt ( hDlg, IDC_PORT, DEFAULT_PORT, FALSE ); }
-    
-    if ( !x )  { return BAD; }
-    
+    {
+        x = SetDlgItemInt ( hDlg, IDC_PORT, DEFAULT_PORT, FALSE );
+    }
+
+    if ( !x )
+    {
+        return BAD;
+    }
+
     // user name
-    if ( pConn->UserName )
-    { x = SetDlgItemText ( hDlg, IDC_UID, pConn->UserName ); }
-    
+    if ( pConn -> UserName )
+    {
+        x = SetDlgItemText ( hDlg, IDC_UID, pConn -> UserName );
+    }
+
     else
-    { x = SetDlgItemText ( hDlg, IDC_UID, "" ); }
-    
-    if ( !x )  { return BAD; }
-    
+    {
+        x = SetDlgItemText ( hDlg, IDC_UID, "" );
+    }
+
+    if ( !x )
+    {
+        return BAD;
+    }
+
     // password
-    if ( pConn->Password )
-    { x = SetDlgItemText ( hDlg, IDC_PWD, pConn->Password ); }
-    
+    if ( pConn -> Password )
+    {
+        x = SetDlgItemText ( hDlg, IDC_PWD, pConn -> Password );
+    }
+
     else
-    { x = SetDlgItemText ( hDlg, IDC_PWD, "" ); }
-    
-    if ( !x )  { return BAD; }
-    
+    {
+        x = SetDlgItemText ( hDlg, IDC_PWD, "" );
+    }
+
+    if ( !x )
+    {
+        return BAD;
+    }
+
     return GOOD;
 }
 
 
-
 // -----------------------------------------------------------------------
 // to fetch the data from the dialog 1 into the conn-struct
 // -----------------------------------------------------------------------
 
-static eGoodBad GetDataFromDlgDSNCfg1 ( HWND hDlg, pODBCConn pConn ) {
-    Long    x;
-    std::unique_ptr<char[]>  n = NULL;
+static eGoodBad GetDataFromDlgDSNCfg1 ( HWND hDlg, pODBCConn pConn )
+{
+    Long x;
+    std::unique_ptr <char[]> n = NULL;
     eGoodBad status;
-    
+
     // note
     // no error handling is currently being done for
     // GetDlgItemText/GetDlgItemInt/SetConnProp
     // generally should not be a problem
-    
+
     // precaution
-    if ( !pConn || !hDlg ) {
+    if ( !pConn || !hDlg )
+    {
         __ODBCPOPMSG ( _ODBCPopMsg ( "GetDataFromDlgDSNCfg1 - Bad params" ) );
         return BAD;
     }
-    
+
     ////// server name/IP
     // get length of input text
     x = SendDlgItemMessage ( hDlg, IDC_SERVER, EM_LINELENGTH, 0, 0 );
-    
-    if ( x > 0 ) {
-        n = make_unique_str ( x + 8 );                                         
                // allocate space for holding the text
-
-               char serverStrBuf[256];                                         
  
-        GetDlgItemText ( hDlg, IDC_SERVER, serverStrBuf, x + 1 );      // get 
text from dialog
-
-               HWND hwndCombo = GetDlgItem ( hDlg, IDC_PROTOCOL );
-               int ItemIndex = SendMessage ( hwndCombo, ( UINT ) CB_GETCURSEL, 
( WPARAM ) 0, ( LPARAM ) 0 );
-               
-               strcpy ( n.get(), supportedProtocols[ItemIndex] );
-               strcat ( n.get(), PROTOCOL_SEP );
-               strcat ( n.get(), serverStrBuf );
+
+    if ( x > 0 )
+    {
+        n = make_unique_str ( x + 8 ); // allocate space for holding the text
+
+        char serverStrBuf[256];
+        GetDlgItemText ( hDlg, IDC_SERVER, serverStrBuf, x + 1 ); // get text 
from dialog
+
+        HWND hwndCombo = GetDlgItem ( hDlg, IDC_PROTOCOL );
+        int ItemIndex = SendMessage ( hwndCombo, ( UINT ) CB_GETCURSEL, ( 
WPARAM ) 0, ( LPARAM ) 0 );
+
+        strcpy ( n . get (), supportedProtocols[ItemIndex] );
+        strcat ( n . get (), PROTOCOL_SEP );
+        strcat ( n . get (), serverStrBuf );
     }
-    
+
     else
-    { n = NULL; }                                           // no input
-    
+    {
+        n = NULL;
+    } // no input
+
     // set value in struct
-    status = SetConnProp ( pConn, CONN_PROP_SERVER, n.get() );
-    
-    if ( status == BAD ) { return BAD; }
-    
+    status = SetConnProp ( pConn, CONN_PROP_SERVER, n . get () );
+
+    if ( status == BAD )
+    {
+        return BAD;
+    }
+
     /////  Port
     // get value
     x = GetDlgItemInt ( hDlg, IDC_PORT, NULL, FALSE );
     // set value in struct
     status = SetConnProp ( pConn, CONN_PROP_PORT, &x );
-    
-    if ( status == BAD ) { return BAD; }
-    
+
+    if ( status == BAD )
+    {
+        return BAD;
+    }
+
     ////// User name
     // get length
     x = SendDlgItemMessage ( hDlg, IDC_UID, EM_LINELENGTH, 0, 0 );
-    
-    if ( x > 0 ) {
+
+    if ( x > 0 )
+    {
         // allocate space
-        n = make_unique_str ( x );                              // allocate 
space for holding the text
-        GetDlgItemText ( hDlg, IDC_UID, n.get(), x + 1 );
+        n = make_unique_str ( x ); // allocate space for holding the text
+        GetDlgItemText ( hDlg, IDC_UID, n . get (), x + 1 );
     }
-    
+
     else
-    { n = NULL; }
-    
+    {
+        n = NULL;
+    }
+
     // set value in struct
-    status = SetConnProp ( pConn, CONN_PROP_UID, n.get() );
-    
-    if ( status == BAD ) { return BAD; }
-    
+    status = SetConnProp ( pConn, CONN_PROP_UID, n . get () );
+
+    if ( status == BAD )
+    {
+        return BAD;
+    }
+
     ////// Password
     // get length
     x = SendDlgItemMessage ( hDlg, IDC_PWD, EM_LINELENGTH, 0, 0 );
-    
-    if ( x > 0 ) {
+
+    if ( x > 0 )
+    {
         // allocate space
-        n = make_unique_str ( x );                              // allocate 
space for holding the text
-        GetDlgItemText ( hDlg, IDC_PWD, n.get(), x + 1 );
+        n = make_unique_str ( x ); // allocate space for holding the text
+        GetDlgItemText ( hDlg, IDC_PWD, n . get (), x + 1 );
     }
-    
+
     else
-    { n = NULL; }
-    
+    {
+        n = NULL;
+    }
+
     // set value in struct
-    status = SetConnProp ( pConn, CONN_PROP_PWD, n.get() );
-    
-    if ( status == BAD ) { return BAD; }
-    
+    status = SetConnProp ( pConn, CONN_PROP_PWD, n . get () );
+
+    if ( status == BAD )
+    {
+        return BAD;
+    }
+
     return GOOD;
 }
 
@@ -368,18 +443,21 @@ static eGoodBad GetDataFromDlgDSNCfg1 ( HWND hDlg, 
pODBCConn pConn ) {
 // call back for DSN config dialog 1
 // --------------------------------------------------------------------------
 
-INT_PTR CALLBACK DlgDSNCfg1Proc ( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM 
lParam ) {
+INT_PTR CALLBACK DlgDSNCfg1Proc ( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM 
lParam )
+{
     pODBCConn pgConn = NULL;
     eGoodBad status = GOOD;
     RETCODE ret = SQL_SUCCESS;
-    
-    switch ( uMsg ) {
-        case WM_INITDIALOG: {
-                       // init protocol list
-                       HWND hwndCombo = GetDlgItem ( hDlg, IDC_PROTOCOL );
-            SendMessage(hwndCombo, CB_ADDSTRING, 0, 
reinterpret_cast<LPARAM>((LPCTSTR)supportedProtocols[0]));
-                       SendMessage(hwndCombo, CB_ADDSTRING, 0, 
reinterpret_cast<LPARAM>((LPCTSTR)supportedProtocols[1]));
-                       SendMessage(hwndCombo, CB_SETCURSEL, 0, 0 );
+
+    switch ( uMsg )
+    {
+        case WM_INITDIALOG :
+        {
+            // init protocol list
+            HWND hwndCombo = GetDlgItem ( hDlg, IDC_PROTOCOL );
+            SendMessage ( hwndCombo, CB_ADDSTRING, 0, reinterpret_cast 
<LPARAM> ( ( LPCTSTR )supportedProtocols[0] ) );
+            SendMessage ( hwndCombo, CB_ADDSTRING, 0, reinterpret_cast 
<LPARAM> ( ( LPCTSTR )supportedProtocols[1] ) );
+            SendMessage ( hwndCombo, CB_SETCURSEL, 0, 0 );
 
             // store the structure for future use
             SetWindowLongPtr ( hDlg, DWLP_USER, lParam );
@@ -387,120 +465,136 @@ INT_PTR CALLBACK DlgDSNCfg1Proc ( HWND hDlg, UINT uMsg, 
WPARAM wParam, LPARAM lP
             PutDataToDlgDSNCfg1 ( ( pODBCConn ) lParam, hDlg );
             // set focus automatically
             return TRUE;
-               }
-        case WM_COMMAND:
-            switch ( LOWORD ( wParam ) ) {
-                               case IDC_PROTOCOL: {
-                                       switch ( HIWORD ( wParam ) ) {
-                                               case CBN_SELCHANGE: {
-                                                       HWND hwndCombo = 
GetDlgItem ( hDlg, IDC_PROTOCOL );
-                                                       int portIndex = 
SendMessage ( hwndCombo, ( UINT ) CB_GETCURSEL, ( WPARAM ) 0, ( LPARAM ) 0 );
-                                                       if ( SetDlgItemText ( 
hDlg, IDC_PORT, defaultPorts[portIndex] ) ) { return TRUE; }
-
-                                                       return FALSE;
-                                               }
-                                               default:
-                                                       break;
-                                       }
-                                       break;
-                               }
-
-                case IDC_CONNECT: {
-                        HWND hwndCombo = GetDlgItem ( hDlg, IDC_COMBO1 );
-                        HWND hwndOK = GetDlgItem ( hDlg, IDOK );
-                        // fetch all information from controls & feed to struct
-                        pgConn = ( pODBCConn ) GetWindowLongPtr ( hDlg, 
DWLP_USER );
-                        status = GetDataFromDlgDSNCfg1 ( hDlg, pgConn );
-                        
-                        if ( status == BAD ) {
-                            //Blank input, already popped message
-                            return FALSE;
-                        }
-                        
-                        ret = TryAuthenticate ( pgConn );
-                        
-                        if ( ret == SQL_ERROR ) {
-                            //validation of data & other prompts goes here
-                            __ODBCPopMsg ( "Username/Password not authorized, 
or server out of service." );
-                            return FALSE;
-                        }
-                        
-                        //passed verification
-                        EnableWindow ( hwndCombo, TRUE );
-                        
-                        try {
-                            std::vector<string> projects;
-                            restListProjects ( pgConn->Server, 
pgConn->ServerPort, pgConn->UserName, pgConn->Password, projects );
-                            
-                                                       // reload project list
-                                                       SendMessage ( 
hwndCombo, CB_RESETCONTENT, 0, 0 );
-                            for ( unsigned int i = 0 ; i < projects.size(); 
++i ) {
-                                SendMessage ( hwndCombo, ( UINT ) 
CB_ADDSTRING, ( WPARAM ) 0, ( LPARAM ) projects.at ( i ).c_str() );
+        }
+        case WM_COMMAND :
+            switch ( LOWORD ( wParam ) )
+            {
+                case IDC_PROTOCOL :
+                {
+                    switch ( HIWORD ( wParam ) )
+                    {
+                        case CBN_SELCHANGE :
+                        {
+                            HWND hwndCombo = GetDlgItem ( hDlg, IDC_PROTOCOL );
+                            int portIndex = SendMessage ( hwndCombo, ( UINT ) 
CB_GETCURSEL, ( WPARAM ) 0, ( LPARAM ) 0 );
+                            if ( SetDlgItemText ( hDlg, IDC_PORT, 
defaultPorts[portIndex] ) )
+                            {
+                                return TRUE;
                             }
-                            
-                            SendMessage ( hwndCombo, CB_SETCURSEL, ( WPARAM ) 
0, ( LPARAM ) 0 );
-                        }
-                        
-                        catch ( exception& e ) {
-                            __ODBCPopMsg ( e.what() );
+
                             return FALSE;
                         }
-                        
-                        EnableWindow ( hwndOK, TRUE );
-                        return TRUE;
+                        default :
+                            break;
                     }
-                    
-                case IDOK: {
-                        pgConn = ( pODBCConn ) GetWindowLongPtr ( hDlg, 
DWLP_USER );
-                        HWND hwndCombo = GetDlgItem ( hDlg, IDC_COMBO1 );
-                        int ItemIndex = SendMessage ( ( HWND ) hwndCombo, ( 
UINT ) CB_GETCURSEL,
-                                                      ( WPARAM ) 0, ( LPARAM ) 
0 );
-                        TCHAR  projectName[256];
-                        ( TCHAR ) SendMessage ( ( HWND ) hwndCombo, ( UINT ) 
CB_GETLBTEXT,
-                                                ( WPARAM ) ItemIndex, ( LPARAM 
) projectName );
-                        SetConnProp ( pgConn, CONN_PROP_PROJECT, projectName );
-                        //last trial with project given
-                        ret = TryFetchMetadata ( pgConn );
-                        
-                        if ( ret == SQL_ERROR ) {
-                            //validation of data & other prompts goes here
-                            __ODBCPopMsg ( "Something went wrong with your 
selected project" );
-                            return FALSE;
+                    break;
+                }
+
+                case IDC_CONNECT :
+                {
+                    HWND hwndCombo = GetDlgItem ( hDlg, IDC_COMBO1 );
+                    HWND hwndOK = GetDlgItem ( hDlg, IDOK );
+                    // fetch all information from controls & feed to struct
+                    pgConn = ( pODBCConn ) GetWindowLongPtr ( hDlg, DWLP_USER 
);
+                    status = GetDataFromDlgDSNCfg1 ( hDlg, pgConn );
+
+                    if ( status == BAD )
+                    {
+                        //Blank input, already popped message
+                        return FALSE;
+                    }
+
+                    ret = TryAuthenticate ( pgConn );
+
+                    if ( ret == SQL_ERROR )
+                    {
+                        //validation of data & other prompts goes here
+                        __ODBCPopMsg ( "Username/Password not authorized, or 
server out of service." );
+                        return FALSE;
+                    }
+
+                    //passed verification
+                    EnableWindow ( hwndCombo, TRUE );
+
+                    try
+                    {
+                        std::vector <string> projects;
+                        restListProjects ( pgConn -> Server, pgConn -> 
ServerPort, pgConn -> UserName, pgConn -> Password, projects );
+
+                        // reload project list
+                        SendMessage ( hwndCombo, CB_RESETCONTENT, 0, 0 );
+                        for ( unsigned int i = 0; i < projects . size (); ++i )
+                        {
+                            SendMessage ( hwndCombo, ( UINT ) CB_ADDSTRING, ( 
WPARAM ) 0, ( LPARAM ) projects . at ( i ) . c_str () );
                         }
-                        
-                        EndDialog ( hDlg, wParam );
-                        return TRUE;
+
+                        SendMessage ( hwndCombo, CB_SETCURSEL, ( WPARAM ) 0, ( 
LPARAM ) 0 );
                     }
-                    
-                // Fall through, do not break or return
-                case IDCANCEL:
+
+                    catch ( exception& e )
+                    {
+                        __ODBCPopMsg ( e . what () );
+                        return FALSE;
+                    }
+
+                    EnableWindow ( hwndOK, TRUE );
+                    return TRUE;
+                }
+
+                case IDOK :
+                {
+                    pgConn = ( pODBCConn ) GetWindowLongPtr ( hDlg, DWLP_USER 
);
+                    HWND hwndCombo = GetDlgItem ( hDlg, IDC_COMBO1 );
+                    int ItemIndex = SendMessage ( ( HWND ) hwndCombo, ( UINT ) 
CB_GETCURSEL,
+                                                  ( WPARAM ) 0, ( LPARAM ) 0 );
+                    TCHAR projectName[256];
+                    ( TCHAR ) SendMessage ( ( HWND ) hwndCombo, ( UINT ) 
CB_GETLBTEXT,
+                                            ( WPARAM ) ItemIndex, ( LPARAM ) 
projectName );
+                    SetConnProp ( pgConn, CONN_PROP_PROJECT, projectName );
+                    //last trial with project given
+                    ret = TryFetchMetadata ( pgConn );
+
+                    if ( ret == SQL_ERROR )
+                    {
+                        //validation of data & other prompts goes here
+                        __ODBCPopMsg ( "Something went wrong with your 
selected project" );
+                        return FALSE;
+                    }
+
+                    EndDialog ( hDlg, wParam );
+                    return TRUE;
+                }
+
+                    // Fall through, do not break or return
+                case IDCANCEL :
                     // indicate end with control id as return value
                     EndDialog ( hDlg, wParam );
                     return TRUE;
             }
     }
-    
+
     return FALSE;
 }
 
 
-
 // -----------------------------------------------------------------------
 // to get connection info from user
 // -----------------------------------------------------------------------
 
-static Word PromptForConnInfo ( SQLHDBC pConn ) {
-    int     i;
+static Word PromptForConnInfo ( SQLHDBC pConn )
+{
+    int i;
     // invoke dialog to fetch info
     i = DialogBoxParam ( ghInstDLL, MAKEINTRESOURCE ( IDD_DSN_CFG1 ), NULL, 
DlgDSNCfg1Proc, ( LPARAM ) pConn );
-    
+
     // check status
-    switch ( i ) {
-        case IDOK:
-            return 1;           // complete
-            
-        default:
-            return 0;           // user-cancelled
+    switch ( i )
+    {
+        case IDOK :
+            return 1; // complete
+
+        default :
+            return 0; // user-cancelled
     }
 }
 
@@ -509,109 +603,129 @@ static Word PromptForConnInfo ( SQLHDBC pConn ) {
 // to split a given string into key value pairs separated with semi-colon
 // -----------------------------------------------------------------------
 
-eGoodBad CvtStrToKeyValues ( CStrPtr pStr, Word pMaxLen, Word* pNumPair, 
struct ODBCKV** pKV ) {
-    bool    flgError;
-    Word    x;
-    Word    pairs;
-    Word    i, len;
-    struct ODBCKV*    kvtemp;
-    struct ODBCKV*    kv;
+eGoodBad CvtStrToKeyValues ( CStrPtr pStr, Word pMaxLen, Word* pNumPair, 
struct ODBCKV** pKV )
+{
+    bool flgError;
+    Word x;
+    Word pairs;
+    Word i, len;
+    struct ODBCKV* kvtemp;
+    struct ODBCKV* kv;
     // caller safe
-    *pNumPair   = 0;
-    *pKV        = NULL;
+    *pNumPair = 0;
+    *pKV = NULL;
     // local initializations
-    kvtemp  = NULL;
-    kv      = NULL;
-    
+    kvtemp = NULL;
+    kv = NULL;
+
     // main loop to split the strings into key values
-    for ( pairs = 0, i = 0, len = ( pMaxLen > 0 ) ? pMaxLen : strlen ( pStr ), 
flgError = FALSE; i < len &&
-            !flgError; pairs ++ ) {
+    for ( pairs = 0 , i = 0 , len = ( pMaxLen > 0 ) ? pMaxLen : strlen ( pStr 
) , flgError = FALSE; i < len &&
+          !flgError; pairs ++ )
+    {
         // find the length of key
-        for ( x = 0; pStr[i] != '=' && i < len; x ++, i ++ );
-        
+        for ( x = 0; pStr[i] != '=' && i < len; x ++ , i ++ );
+
         // check if a valid key found
-        if ( x <= 0 ) {
-            flgError = TRUE;                // error condition
+        if ( x <= 0 )
+        {
+            flgError = TRUE; // error condition
             continue;
         }
-        
+
         // allocate a new record ie key-value if required
-        if ( kv == NULL || pairs % KV_BLOCK_SIZE == 0 ) {
+        if ( kv == NULL || pairs % KV_BLOCK_SIZE == 0 )
+        {
             // allocate more records
-            kvtemp = new struct ODBCKV[pairs + KV_BLOCK_SIZE];
-            memset ( kvtemp, 0, sizeof ( struct ODBCKV ) * ( pairs + 
KV_BLOCK_SIZE ) );
-            
+            kvtemp = new struct ODBCKV[pairs + KV_BLOCK_SIZE ];
+            memset ( kvtemp, 0, sizeof ( struct ODBCKV) * ( pairs + 
KV_BLOCK_SIZE ) );
+
             // transfer the old ones into this new one
-            if ( kv ) {
-                memcpy ( kvtemp, kv, sizeof ( struct ODBCKV ) *pairs );
+            if ( kv )
+            {
+                memcpy ( kvtemp, kv, sizeof ( struct ODBCKV) * pairs );
                 delete[] kv;
                 kv = NULL;
             }
-            
+
             // now start using the new one
-            kv      = kvtemp;
-            kvtemp  = NULL;
+            kv = kvtemp;
+            kvtemp = NULL;
         }
-        
+
         // create key in current row
-        kv[pairs].key = new Char[x + 1];
+        kv[pairs] . key = new Char[x + 1];
         // put key
-        strncpy ( kv[pairs].key, pStr + ( i - x ), x );
-        kv[pairs].key[x] = 0;
+        strncpy ( kv[pairs] . key, pStr + ( i - x ), x );
+        kv[pairs] . key[x] = 0;
         // move ahead to ignore equals sign
         ++ i;
-        
+
         // find the length of value
-        if ( strcmp ( kv[pairs].key, "PWD" ) != 0 ) {
-            for ( x = 0;  pStr[i] != ';' && i < len; x ++, i ++ ) ;
+        if ( strcmp ( kv[pairs] . key, "PWD" ) != 0 )
+        {
+            for ( x = 0; pStr[i] != ';' && i < len; x ++ , i ++ );
         }
-        
-        else {
+
+        else
+        {
             //There may exist ; in PWD
-            for ( x = 0;  i < len; x ++, i ++ ) {
+            for ( x = 0; i < len; x ++ , i ++ )
+            {
                 if ( strnicmp ( &pStr[i], ";SERVER=", 8 ) == 0 )
-                { break; }
+                {
+                    break;
+                }
             }
         }
-        
+
         // check if a non-empty value found
-        if ( x > 0 ) {
+        if ( x > 0 )
+        {
             // create value in current row
-            kv[pairs].value = new Char[x + 1];
+            kv[pairs] . value = new Char[x + 1];
             // put value
-            strncpy ( kv[pairs].value, pStr + ( i - x ), x );
-            kv[pairs].value[x] = 0;
+            strncpy ( kv[pairs] . value, pStr + ( i - x ), x );
+            kv[pairs] . value[x] = 0;
         }
-        
+
         // move ahead to ignore the semi-colon at end of key-value
         ++ i;
     }
-    
+
     // check for error condition
-    if ( flgError ) {
+    if ( flgError )
+    {
         // clean up
-        if ( kv ) {
+        if ( kv )
+        {
             delete[] kv;
             kv = NULL;
         }
-        
-        return BAD;                // error condition
+
+        return BAD; // error condition
     }
-    
-    else {
-        *pNumPair   = pairs;
-        *pKV        = kv;
+
+    else
+    {
+        *pNumPair = pairs;
+        *pKV = kv;
         return GOOD;
     }
 }
 
-void        FreeGenODBCKeyValues ( ODBCKV* keyvalues, int pairs ) {
-    for ( int i = 0 ; i < pairs; ++i ) {
-        if ( keyvalues[i].key )
-        { delete[] keyvalues[i].key ; }
-        
-        if ( keyvalues[i].value )
-        { delete[] keyvalues[i].value; }
+void FreeGenODBCKeyValues ( ODBCKV* keyvalues, int pairs )
+{
+    for ( int i = 0; i < pairs; ++i )
+    {
+        if ( keyvalues[i] . key )
+        {
+            delete[] keyvalues[i] . key ;
+        }
+
+        if ( keyvalues[i] . value )
+        {
+            delete[] keyvalues[i] . value;
+        }
     }
 }
 
@@ -620,30 +734,41 @@ void        FreeGenODBCKeyValues ( ODBCKV* keyvalues, int 
pairs ) {
 // to find a particular key and/or value in key-value pair list
 // -----------------------------------------------------------------------
 
-bool FindInKeyValues ( CStrPtr pKey, CStrPtr pValue, struct ODBCKV* pKV, Word 
pItems, Word* pPosition ) {
-    Word    i;
-    bool    flgMatch;
-    
+bool FindInKeyValues ( CStrPtr pKey, CStrPtr pValue, struct ODBCKV* pKV, Word 
pItems, Word* pPosition )
+{
+    Word i;
+    bool flgMatch;
+
     // loop to traverse the list
-    for ( i = 0, flgMatch = FALSE; i < pItems; i ++ ) {
+    for ( i = 0 , flgMatch = FALSE; i < pItems; i ++ )
+    {
         // match key
-        flgMatch = ( pKey && _stricmp ( pKey, pKV[i].key ) == 0 );
-        
+        flgMatch = ( pKey && _stricmp ( pKey, pKV[i] . key ) == 0 );
+
         // match value
-        if ( pValue && pKV[i].value )
-        { flgMatch = ( _stricmp ( pValue, pKV[i].value ) == 0 ); }
-        
+        if ( pValue && pKV[i] . value )
+        {
+            flgMatch = ( _stricmp ( pValue, pKV[i] . value ) == 0 );
+        }
+
         // break if match
-        if ( flgMatch ) { break; }
+        if ( flgMatch )
+        {
+            break;
+        }
     }
-    
+
     // check if found
-    if ( flgMatch ) {
-        if ( pPosition )  { *pPosition = i; }
-        
+    if ( flgMatch )
+    {
+        if ( pPosition )
+        {
+            *pPosition = i;
+        }
+
         return TRUE;
     }
-    
+
     return FALSE;
 }
 
@@ -653,7 +778,8 @@ bool FindInKeyValues ( CStrPtr pKey, CStrPtr pValue, struct 
ODBCKV* pKV, Word pI
 // -----------------------------------------------------------------------
 
 static eGoodBad LoadKeyValuesfromFileDSN ( pODBCConn pConn, CStrPtr pDSNName, 
Word* pNumPair,
-                                           struct ODBCKV** pKV ) {
+                                           struct ODBCKV** pKV )
+{
     //Never called
     throw - 1;
 }
@@ -663,30 +789,36 @@ static eGoodBad LoadKeyValuesfromFileDSN ( pODBCConn 
pConn, CStrPtr pDSNName, Wo
 // to add a key-value pair to specified conn string
 // -----------------------------------------------------------------------
 
-static bool AddKVToConnStr ( StrPtr pKey, StrPtr pValue, Word* iPos, StrPtr 
pStrConn, Word pMaxLen ) {
-    Word    i, j;
-    
+static bool AddKVToConnStr ( StrPtr pKey, StrPtr pValue, Word* iPos, StrPtr 
pStrConn, Word pMaxLen )
+{
+    Word i, j;
+
     // precaution
     if ( !pKey )
-    { return FALSE; }
-    
+    {
+        return FALSE;
+    }
+
     // get length of key and value
     i = strlen ( pKey );
     j = ( pValue ) ? strlen ( pValue ) : 0;
-    
+
     // check if both can be added along with equal sign & semi-colon
-    if ( *iPos + i + j + 2 <= pMaxLen ) {
+    if ( *iPos + i + j + 2 <= pMaxLen )
+    {
         strcat ( pStrConn, pKey );
         strcat ( pStrConn, "=" );
-        
+
         if ( pValue )
-        { strcat ( pStrConn, pValue ); }
-        
+        {
+            strcat ( pStrConn, pValue );
+        }
+
         strcat ( pStrConn, ";" );
-        ( *iPos ) = ( *iPos ) + i + j + 2;  // re-position
+        ( *iPos ) = ( *iPos ) + i + j + 2; // re-position
         return TRUE;
     }
-    
+
     return FALSE;
 }
 
@@ -696,321 +828,384 @@ static bool AddKVToConnStr ( StrPtr pKey, StrPtr 
pValue, Word* iPos, StrPtr pStr
 // -----------------------------------------------------------------------
 
 static bool BuildConnStr ( char* pStrConn, Word pMaxLen, pODBCConn pConn, 
struct ODBCKV* KVInput,
-                           Word iKVInputPairs, struct ODBCKV* KVFileDSN, Word 
iKVFileDSNPairs ) {
-    Word    iPos = 0;
-    Char    p[32];                              // arbitary for string port 
number as string
+                           Word iKVInputPairs, struct ODBCKV* KVFileDSN, Word 
iKVFileDSNPairs )
+{
+    Word iPos = 0;
+    Char p[32]; // arbitary for string port number as string
     // initializations
     memset ( pStrConn, 0, pMaxLen );
     // convert port number to string
-    _itoa ( pConn->ServerPort, p, 10 );
-    
+    _itoa ( pConn -> ServerPort, p, 10 );
+
     // transfer all strings from struct
-    if ( !AddKVToConnStr ( "DRIVER", "{KylinODBCDriver}", &iPos, pStrConn, 
pMaxLen ) ) {
+    if ( !AddKVToConnStr ( "DRIVER", "{KylinODBCDriver}", &iPos, pStrConn, 
pMaxLen ) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "AddKVToConnStr failed in 
%s", "Driver" ) );
         return FALSE;
     }
-    
-    if ( !AddKVToConnStr ( "SERVER", pConn->Server, &iPos, pStrConn, pMaxLen ) 
) {
+
+    if ( !AddKVToConnStr ( "SERVER", pConn -> Server, &iPos, pStrConn, pMaxLen 
) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "AddKVToConnStr failed in 
%s", "Server" ) );
         return FALSE;
     }
-    
-    if ( !AddKVToConnStr ( "PROJECT", pConn->Project, &iPos, pStrConn, pMaxLen 
) ) {
+
+    if ( !AddKVToConnStr ( "PROJECT", pConn -> Project, &iPos, pStrConn, 
pMaxLen ) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "AddKVToConnStr failed in 
%s", "Project" ) );
         return FALSE;
     }
-    
-    if ( !AddKVToConnStr ( "PORT", p, &iPos, pStrConn, pMaxLen ) ) {
+
+    if ( !AddKVToConnStr ( "PORT", p, &iPos, pStrConn, pMaxLen ) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "AddKVToConnStr failed in 
%s", "Port" ) );
         return FALSE;
     }
-    
-    if ( !AddKVToConnStr ( "UID", pConn->UserName, &iPos, pStrConn, pMaxLen ) 
) {
+
+    if ( !AddKVToConnStr ( "UID", pConn -> UserName, &iPos, pStrConn, pMaxLen 
) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "AddKVToConnStr failed in 
%s", "Uid" ) );
         return FALSE;
     }
-    
-    if ( !AddKVToConnStr ( "PWD", pConn->Password, &iPos, pStrConn, pMaxLen ) 
) {
+
+    if ( !AddKVToConnStr ( "PWD", pConn -> Password, &iPos, pStrConn, pMaxLen 
) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "AddKVToConnStr failed in 
%s", "Pwd" ) );
         return FALSE;
     }
-    
+
     return TRUE;
 }
 
 // -----------------------------------------------------------------------
 // to connect to the driver
 // -----------------------------------------------------------------------
-RETCODE SQL_API SQLDriverConnectW ( SQLHDBC            hdbc,
-                                    SQLHWND             hwnd,
-                                    SQLWCHAR*           szConnStrIn,
-                                    SQLSMALLINT         cchConnStrIn,
-                                    SQLWCHAR*           szConnStrOut,
-                                    SQLSMALLINT         cchConnStrOutMax,
-                                    SQLSMALLINT*        pcchConnStrOut,
-                                    SQLUSMALLINT        fDriverCompletion ) {
+RETCODE SQL_API SQLDriverConnectW ( SQLHDBC hdbc,
+                                    SQLHWND hwnd,
+                                    SQLWCHAR* szConnStrIn,
+                                    SQLSMALLINT cchConnStrIn,
+                                    SQLWCHAR* szConnStrOut,
+                                    SQLSMALLINT cchConnStrOutMax,
+                                    SQLSMALLINT* pcchConnStrOut,
+                                    SQLUSMALLINT fDriverCompletion )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLDriverConnectW called, 
cchConnStrIn %d, cchConnStrOutMax %d, wcslen %d",
-                              cchConnStrIn, cchConnStrOutMax, wcslen ( 
szConnStrIn ) ) );
+        cchConnStrIn, cchConnStrOutMax, wcslen ( szConnStrIn ) ) );
     int inStrLength = wcslen ( szConnStrIn ) + 1;
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The inStr Length is : %d", 
inStrLength ) );
-    unique_ptr<char[]> pInStr ( new char[inStrLength] );
-    unique_ptr<char[]> pOutStr ( new char[cchConnStrOutMax + 1] );
-    wchar2char ( szConnStrIn, pInStr.get(), inStrLength );
+    unique_ptr <char[]> pInStr ( new char[inStrLength] );
+    unique_ptr <char[]> pOutStr ( new char[cchConnStrOutMax + 1] );
+    wchar2char ( szConnStrIn, pInStr . get (), inStrLength );
     //__ODBCLOG(_ODBCLogMsg(LogLevel_DEBUG,"The inStr is : %s",pInStr.get()));
-    SQLSMALLINT outStrLength = 0 ;
-    RETCODE code = SQLDriverConnect ( hdbc, hwnd, ( SQLCHAR* ) pInStr.get(), 
cchConnStrIn, ( SQLCHAR* ) pOutStr.get(),
+    SQLSMALLINT outStrLength = 0;
+    RETCODE code = SQLDriverConnect ( hdbc, hwnd, ( SQLCHAR* ) pInStr . get 
(), cchConnStrIn, ( SQLCHAR* ) pOutStr . get (),
                                       cchConnStrOutMax, &outStrLength, 
fDriverCompletion );
-                                      
-    if ( code == SQL_ERROR ) {
+
+    if ( code == SQL_ERROR )
+    {
         return code;
     }
-    
+
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "pcchConnStrOut null? %d, 
cchConnStrOutMax > 0 ? %d, szConnStrOut null? %d",
-                              pcchConnStrOut == NULL, cchConnStrOutMax > 0 , 
szConnStrOut == NULL ) );
-                              
-    if ( cchConnStrOutMax > 0 && pcchConnStrOut && szConnStrOut ) {
-        char2wchar ( pOutStr.get(), szConnStrOut, ( int ) cchConnStrOutMax );
+        pcchConnStrOut == NULL, cchConnStrOutMax > 0 , szConnStrOut == NULL ) 
);
+
+    if ( cchConnStrOutMax > 0 && pcchConnStrOut && szConnStrOut )
+    {
+        char2wchar ( pOutStr . get (), szConnStrOut, ( int ) cchConnStrOutMax 
);
         *pcchConnStrOut = wcslen ( szConnStrOut );
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "(W)The Length of Out Conn 
Str is %d", *pcchConnStrOut ) );
     }
-    
+
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "the ret code is %d", code ) );
     return code;
 }
 
-RETCODE SQL_API SQLDriverConnect ( SQLHDBC         pConn,
-                                   SQLHWND         pWndHandle,
-                                   SQLCHAR*        pInConnStr,
-                                   SQLSMALLINT     pInConnStrLen,
-                                   SQLCHAR*        pOutConnStr,
-                                   SQLSMALLINT     pOutConnStrLen,
-                                   SQLSMALLINT*    pOutConnStrLenPtr,
-                                   SQLUSMALLINT    pDriverCompletion ) {
+RETCODE SQL_API SQLDriverConnect ( SQLHDBC pConn,
+                                   SQLHWND pWndHandle,
+                                   SQLCHAR* pInConnStr,
+                                   SQLSMALLINT pInConnStrLen,
+                                   SQLCHAR* pOutConnStr,
+                                   SQLSMALLINT pOutConnStrLen,
+                                   SQLSMALLINT* pOutConnStrLenPtr,
+                                   SQLUSMALLINT pDriverCompletion )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The window handle is %d, the 
driver completion flag is %d", pWndHandle,
-                              pDriverCompletion ) );
+        pDriverCompletion ) );
     pODBCConn pgConn = ( pODBCConn ) pConn;
-    bool    f;
-    bool    flgDriver, flgDSN;                                  // flags for 
knowing if these key present in string
-    bool    flgServer, flgPort, flgUID, flgPWD, flgProj;         // flags for 
knowing if these key present in string
-    Word    i, n;
-    Word    iKVInputPairs;             // no of key value pairs as input
-    Word    iDriverPos, iDSNPos;                    // ??? can be eliminated 
by optimization of code
-    Word    iServerPos, iPortPos, iUIDPos, iPWDPos, iProjPos;     // ??? can 
be eliminated by optimization of code
-    struct ODBCKV* KVInput;                    // key value as input via  
function param
-    struct ODBCKV* KV;                         // generic, temp
-    
-    if ( !pInConnStr ) {
+    bool f;
+    bool flgDriver, flgDSN; // flags for knowing if these key present in string
+    bool flgServer, flgPort, flgUID, flgPWD, flgProj; // flags for knowing if 
these key present in string
+    Word i, n;
+    Word iKVInputPairs; // no of key value pairs as input
+    Word iDriverPos, iDSNPos; // ??? can be eliminated by optimization of code
+    Word iServerPos, iPortPos, iUIDPos, iPWDPos, iProjPos; // ??? can be 
eliminated by optimization of code
+    struct ODBCKV* KVInput; // key value as input via  function param
+    struct ODBCKV* KV; // generic, temp
+
+    if ( !pInConnStr )
+    {
         __ODBCPOPMSG ( _ODBCPopMsg ( "SQLDriverConnect: pInConnStr is 
required" ) );
         return SQL_ERROR;
     }
-    
-    else {
+
+    else
+    {
         //__ODBCLOG(_ODBCLogMsg(LogLevel_DEBUG,"The passed-in Connection Str 
is %s",(char*)pInConnStr));
     }
-    
+
     __CHK_HANDLE ( pConn, SQL_HANDLE_DBC, SQL_ERROR );
     _SQLFreeDiag ( _DIAGCONN ( pConn ) );
-    
+
     // caller safe
-    if ( pOutConnStr ) { *pOutConnStr = 0; }
-    
-    if ( pOutConnStrLenPtr ) { *pOutConnStrLenPtr = 0; }
-    
+    if ( pOutConnStr )
+    {
+        *pOutConnStr = 0;
+    }
+
+    if ( pOutConnStrLenPtr )
+    {
+        *pOutConnStrLenPtr = 0;
+    }
+
     // initializations
-    KVInput     = NULL;
-    flgServer   = FALSE;
-    flgPort     = FALSE;
-    flgUID      = FALSE;
-    flgPWD      = FALSE;
-    flgProj     = FALSE;
-    
+    KVInput = NULL;
+    flgServer = FALSE;
+    flgPort = FALSE;
+    flgUID = FALSE;
+    flgPWD = FALSE;
+    flgProj = FALSE;
+
     // check if an in-string has been specified
-    if ( pInConnStr ) {
+    if ( pInConnStr )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "Parsing the in str" ) );
-        
+
         // split into key-value pairs
-        if ( CvtStrToKeyValues ( ( StrPtr ) pInConnStr, pInConnStrLen, 
&iKVInputPairs, &KVInput ) != GOOD ) {
+        if ( CvtStrToKeyValues ( ( StrPtr ) pInConnStr, pInConnStrLen, 
&iKVInputPairs, &KVInput ) != GOOD )
+        {
             return SQL_ERROR;
         }
-        
+
         // first check if dsn keyword is present
         flgDSN = FindInKeyValues ( "DSN", NULL, KVInput, iKVInputPairs, 
&iDSNPos );
         // look for driver only if DSN is absent else Driver is always ignored
         flgDriver = ( flgDSN ) ? FALSE : FindInKeyValues ( "DRIVER", NULL, 
KVInput, iKVInputPairs, &iDriverPos );
-        
+
         // if DSN is to be used, fetch its set of key values
-        if ( flgDSN ) {
+        if ( flgDSN )
+        {
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The in str is a dsn 
string" ) );
             //connect by dsn
             SetCurrentDSN ( ( char* ) pInConnStr, "SQLDriverConnect" );
-            
-            if ( LoadODBCINIDataToConn ( pgConn ) != GOOD ) {
+
+            if ( LoadODBCINIDataToConn ( pgConn ) != GOOD )
+            {
                 return SQL_ERROR;
             }
         }
-        
-        else if ( flgDriver ) {
+
+        else if ( flgDriver )
+        {
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The in str is a driver 
string" ) );
             /************* debug
                 for (  i = 0, n = iKVInputPairs, KV = KVInput; i < n; i++ )
                 fprintf ( stderr, "Index: %d, Key: %s, Value: %s\n", i, 
KV[i].key ? KV[i].key : "(nokey)", KV[i].value ? KV[i].value : "(no value)" );
             *********/
-            
+
             // loop to parse both input key-values and DSN key-values & feed 
into struct
-            for ( i = 0, n = iKVInputPairs, KV = KVInput; i < n; i++ ) {
-                if ( !flgServer ) {
+            for ( i = 0 , n = iKVInputPairs , KV = KVInput; i < n; i++ )
+            {
+                if ( !flgServer )
+                {
                     flgServer = FindInKeyValues ( "SERVER", NULL, KV, n, 
&iServerPos );
-                    
-                    if ( flgServer ) { CreateAndSetConnProp ( ( pODBCConn ) 
pConn, CONN_PROP_SERVER, KV[iServerPos].value ); }
+
+                    if ( flgServer )
+                    {
+                        CreateAndSetConnProp ( ( pODBCConn ) pConn, 
CONN_PROP_SERVER, KV[iServerPos] . value );
+                    }
                 }
-                
-                if ( !flgPort ) {
+
+                if ( !flgPort )
+                {
                     flgPort = FindInKeyValues ( "PORT", NULL, KV, n, &iPortPos 
);
-                    
-                    if ( flgPort )  { CreateAndSetConnProp ( ( pODBCConn ) 
pConn, CONN_PROP_PORT, KV[iPortPos].value ); }
+
+                    if ( flgPort )
+                    {
+                        CreateAndSetConnProp ( ( pODBCConn ) pConn, 
CONN_PROP_PORT, KV[iPortPos] . value );
+                    }
                 }
-                
-                if ( !flgUID ) {
+
+                if ( !flgUID )
+                {
                     flgUID = FindInKeyValues ( "UID", NULL, KV, n, &iUIDPos );
-                    
-                    if ( flgUID ) {
-                        CreateAndSetConnProp ( ( pODBCConn ) pConn, 
CONN_PROP_UID, KV[iUIDPos].value );
+
+                    if ( flgUID )
+                    {
+                        CreateAndSetConnProp ( ( pODBCConn ) pConn, 
CONN_PROP_UID, KV[iUIDPos] . value );
                         __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "Log in as 
User : %s ", KV[iUIDPos].value ) );
                     }
                 }
-                
-                if ( !flgPWD ) {
+
+                if ( !flgPWD )
+                {
                     flgPWD = FindInKeyValues ( "PWD", NULL, KV, n, &iPWDPos );
-                    
-                    if ( flgPWD )  { CreateAndSetConnProp ( ( pODBCConn ) 
pConn, CONN_PROP_PWD, KV[iPWDPos].value ); }
+
+                    if ( flgPWD )
+                    {
+                        CreateAndSetConnProp ( ( pODBCConn ) pConn, 
CONN_PROP_PWD, KV[iPWDPos] . value );
+                    }
                 }
-                
-                if ( !flgProj ) {
+
+                if ( !flgProj )
+                {
                     flgProj = FindInKeyValues ( "PROJECT", NULL, KV, n, 
&iProjPos );
-                    
-                    if ( flgProj )  { CreateAndSetConnProp ( ( pODBCConn ) 
pConn, CONN_PROP_PROJECT, KV[iProjPos].value ); }
+
+                    if ( flgProj )
+                    {
+                        CreateAndSetConnProp ( ( pODBCConn ) pConn, 
CONN_PROP_PROJECT, KV[iProjPos] . value );
+                    }
                 }
             }
         }
-        
-        else {
+
+        else
+        {
             _SQLPutDiagRow ( SQL_HANDLE_DBC, pConn, "SQLDriverConnectW", 
"HY000", 1045, "Only DSN or driver connect is allowed" );
             __ODBCPOPMSG ( _ODBCPopMsg ( "Only DSN or driver connect is 
allowed, instead of %s", pInConnStr ) );
             return SQL_ERROR;
         }
-        
+
         FreeGenODBCKeyValues ( KVInput, iKVInputPairs );
         delete[] KVInput;
     }
-    
-    else if ( pDriverCompletion == SQL_DRIVER_NOPROMPT ) {  // check if 
no-prompt forced
+
+    else if ( pDriverCompletion == SQL_DRIVER_NOPROMPT )
+    { // check if no-prompt forced
         __ODBCPOPMSG ( _ODBCPopMsg ( "No connection string && no prompt 
specified" ) );
         _SQLPutDiagRow ( SQL_HANDLE_DBC, pConn, "SQLDriverConnectW", "HY000", 
1045,
-                         "Access denied. (using UID: NO , using password: NO)" 
);
+                                       "Access denied. (using UID: NO , using 
password: NO)" );
         return SQL_ERROR;
     }
-    
+
     RETCODE ret;
-    
+
     // check if prompt required ie any info is missing
-    if ( flgDriver && ( !flgServer || !flgPort || !flgUID || !flgPWD || 
!flgProj ) ) {
+    if ( flgDriver && ( !flgServer || !flgPort || !flgUID || !flgPWD || 
!flgProj ) )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_INFO, "Connection info imcomplete, 
prompt for input..." ) );
-        
-        if ( flgUID && !flgPWD &&  pDriverCompletion == SQL_DRIVER_NOPROMPT ) {
+
+        if ( flgUID && !flgPWD && pDriverCompletion == SQL_DRIVER_NOPROMPT )
+        {
             _SQLPutDiagRow ( SQL_HANDLE_DBC, pConn, "SQLDriverConnectW", 
"HY000", 1045,
-                             "Access denied for user 
'root'@'kylin-tableau-clean.com' (using password: NO)" );
+                                           "Access denied for user 
'root'@'kylin-tableau-clean.com' (using password: NO)" );
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR,
-                                      "UID present but PWD absent, guessing 
it's on Tableau Server, return SQL ERROR" ) );
+                "UID present but PWD absent, guessing it's on Tableau Server, 
return SQL ERROR" ) );
             return SQL_ERROR;
         }
-        
+
         //connect by driver
         // fetch entire connection information thru dialogs
-        switch ( PromptForConnInfo ( pConn ) ) {
-            case 0:         // user-cancelled
+        switch ( PromptForConnInfo ( pConn ) )
+        {
+            case 0 : // user-cancelled
                 return SQL_NO_DATA_FOUND;
-                
-            default:
+
+            default :
                 break;
         }
-        
+
         ret = SQL_SUCCESS;
     }
-    
-    else {
+
+    else
+    {
         ret = TryFetchMetadata ( pgConn ) ;
-        
-        if ( ret == SQL_ERROR ) {
+
+        if ( ret == SQL_ERROR )
+        {
             return ret;
         }
     }
-    
+
     // OUT CONN STRING
     // build the out-connection string if required
-    if ( pOutConnStr && pOutConnStrLen > 0 && pOutConnStrLenPtr ) {
-        if ( flgDriver ) {
+    if ( pOutConnStr && pOutConnStrLen > 0 && pOutConnStrLenPtr )
+    {
+        if ( flgDriver )
+        {
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "Building out str..." ) 
);
             // build the out conn string using key value pairs
             f = BuildConnStr ( ( StrPtr ) pOutConnStr, pOutConnStrLen, ( 
pODBCConn ) pConn, NULL, 0, NULL, 0 );
-            
-            if ( !f ) {
+
+            if ( !f )
+            {
                 _SQLPutDiagRow ( SQL_HANDLE_DBC, pConn, "SQLDriverConnectW", 
"HY000", 1045, "Out connection string not complete" );
             }
         }
-        
-        else {
+
+        else
+        {
             __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "Copy in str to out str" 
) );
             strcpy ( ( char* ) pOutConnStr, ( char* ) pInConnStr );
         }
-        
+
         *pOutConnStrLenPtr = strlen ( ( StrPtr ) pOutConnStr );
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "The Length of Out Conn Str 
is %d", *pOutConnStrLenPtr ) );
     }
-    
-    else {
+
+    else
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "skip writing to the out put 
string" ) );
     }
-    
+
     return ret;
 }
 
 
-RETCODE   TryFetchMetadata ( pODBCConn pgConn ) {
+RETCODE TryFetchMetadata ( pODBCConn pgConn )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "start loading metadata..." ) );
-    
-    try {
-        pgConn->meta = std::move ( restGetMeta ( pgConn->Server, 
pgConn->ServerPort, pgConn->UserName, pgConn->Password,
-                                                 pgConn->Project ) );
+
+    try
+    {
+        pgConn -> meta = std::move ( restGetMeta ( pgConn -> Server, pgConn -> 
ServerPort, pgConn -> UserName, pgConn -> Password,
+                                                   pgConn -> Project ) );
     }
-    
-    catch ( const exception& e ) {
+
+    catch ( const exception& e )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR, "The REST request failed to 
get metadata" ) );
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR, e.what() ) );
         _SQLPutDiagRow ( SQL_HANDLE_DBC, pgConn, "SQLDriverConnect", "HY000", 
1045, "Access denied. (using password: NO)" );
         return SQL_ERROR;
     }
-    
+
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "End loading metadata" ) );
     return SQL_SUCCESS;
 }
 
-RETCODE   TryAuthenticate ( pODBCConn pgConn ) {
+RETCODE TryAuthenticate ( pODBCConn pgConn )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "Start authenticating.." ) );
-    
-    try {
-        bool authenticated = restAuthenticate ( pgConn->Server, 
pgConn->ServerPort, pgConn->UserName, pgConn->Password );
-        
+
+    try
+    {
+        bool authenticated = restAuthenticate ( pgConn -> Server, pgConn -> 
ServerPort, pgConn -> UserName, pgConn -> Password );
+
         if ( !authenticated )
-        { throw exception ( "Username/Password incorrect." ); }
+        {
+            throw exception ( "Username/Password incorrect." );
+        }
     }
-    
-    catch ( const exception& e ) {
+
+    catch ( const exception& e )
+    {
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR, "The REST request failed to 
authenticate." ) );
         __ODBCLOG ( _ODBCLogMsg ( LogLevel_ERROR, e.what() ) );
         _SQLPutDiagRow ( SQL_HANDLE_DBC, pgConn, "SQLDriverConnect", "HY000", 
1045, "Access denied. (using password: NO)" );
         return SQL_ERROR;
     }
-    
+
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "End authenticating" ) );
     return SQL_SUCCESS;
 }
@@ -1019,13 +1214,14 @@ RETCODE   TryAuthenticate ( pODBCConn pgConn ) {
 // to connect to the server using standard parameters
 // -----------------------------------------------------------------------
 
-RETCODE SQL_API SQLConnect ( SQLHDBC     pConn,
-                             SQLCHAR*    pServerName,
+RETCODE SQL_API SQLConnect ( SQLHDBC pConn,
+                             SQLCHAR* pServerName,
                              SQLSMALLINT pServerNameLen,
-                             SQLCHAR*    pUserName,
+                             SQLCHAR* pUserName,
                              SQLSMALLINT pUserNameLen,
-                             SQLCHAR*    pPassword,
-                             SQLSMALLINT pPasswordLen ) {
+                             SQLCHAR* pPassword,
+                             SQLSMALLINT pPasswordLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLConnect called" ) );
     __CHK_HANDLE ( pConn, SQL_HANDLE_DBC, SQL_ERROR );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLConnect - not implemented, use 
SQLDriverConnect" ) );
@@ -1034,14 +1230,15 @@ RETCODE SQL_API SQLConnect ( SQLHDBC     pConn,
     return ( SQL_SUCCESS );
 }
 
-SQLRETURN SQL_API SQLConnectW ( SQLHDBC             hdbc,
+SQLRETURN SQL_API SQLConnectW ( SQLHDBC hdbc,
                                 SQLWCHAR* szDSN,
-                                SQLSMALLINT         cchDSN,
+                                SQLSMALLINT cchDSN,
                                 SQLWCHAR* szUID,
-                                SQLSMALLINT         cchUID,
+                                SQLSMALLINT cchUID,
                                 SQLWCHAR* szAuthStr,
-                                SQLSMALLINT         cchAuthStr
-                              ) {
+                                SQLSMALLINT cchAuthStr
+)
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLConnectW called" ) );
     __CHK_HANDLE ( hdbc, SQL_HANDLE_DBC, SQL_ERROR );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLConnectW - not implemented, use 
SQLDriverConnectW" ) );
@@ -1051,18 +1248,19 @@ SQLRETURN SQL_API SQLConnectW ( SQLHDBC             
hdbc,
 }
 
 
-
 // -----------------------------------------------------------------------
 // to connect in multiple iterations
 // -----------------------------------------------------------------------
 
-RETCODE SQL_API SQLBrowseConnect ( SQLHDBC         pConn,
-                                   SQLCHAR*        InConnectionString,
-                                   SQLSMALLINT     StringLength1,
-                                   SQLCHAR*        OutConnectionString,
-                                   SQLSMALLINT     BufferLength,
-                                   SQLSMALLINT*    StringLength2Ptr ) {
+RETCODE SQL_API SQLBrowseConnect ( SQLHDBC pConn,
+                                   SQLCHAR* InConnectionString,
+                                   SQLSMALLINT StringLength1,
+                                   SQLCHAR* OutConnectionString,
+                                   SQLSMALLINT BufferLength,
+                                   SQLSMALLINT* StringLength2Ptr )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLBrowseConnect called" ) );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLBrowseConnect - not implemented, use 
SQLDriverConnect" ) );
     return SQL_ERROR;
-}
\ No newline at end of file
+}
+

http://git-wip-us.apache.org/repos/asf/kylin/blob/3c2329dc/odbc/Driver/KO_CTLG.CPP
----------------------------------------------------------------------
diff --git a/odbc/Driver/KO_CTLG.CPP b/odbc/Driver/KO_CTLG.CPP
index dc23551..7206ec1 100644
--- a/odbc/Driver/KO_CTLG.CPP
+++ b/odbc/Driver/KO_CTLG.CPP
@@ -15,8 +15,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- 
- 
+
+
 // ----------------------------------------------------------------------------
 //
 // File:    KO_CTLG.CPP
@@ -46,49 +46,51 @@
 #include "stdafx.h"
 
 
-
 // -----------------------------------------------------------------------
 // to get list of catalog(database), schema(users), tables(tables)
 // ------------------------------------------------------------------------
 
-RETCODE SQL_API SQLTablesW ( SQLHSTMT        pStmt,
-                             SQLWCHAR*        pCatalogName,
-                             SQLSMALLINT     pCatalogNameSize,
-                             SQLWCHAR*        pSchemaName,
-                             SQLSMALLINT     pSchemaNameSize,
-                             SQLWCHAR*        pTableName,
-                             SQLSMALLINT     pTableNameSize,
-                             SQLWCHAR*        pTableType,
-                             SQLSMALLINT     pTableTypeSize ) {
+RETCODE SQL_API SQLTablesW ( SQLHSTMT pStmt,
+                             SQLWCHAR* pCatalogName,
+                             SQLSMALLINT pCatalogNameSize,
+                             SQLWCHAR* pSchemaName,
+                             SQLSMALLINT pSchemaNameSize,
+                             SQLWCHAR* pTableName,
+                             SQLSMALLINT pTableNameSize,
+                             SQLWCHAR* pTableType,
+                             SQLSMALLINT pTableTypeSize )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLTablesW is called " ) );
-    unique_ptr<char[]> p1 ( wchar2char ( pCatalogName ) );
-    unique_ptr<char[]> p2 ( wchar2char ( pSchemaName ) );
-    unique_ptr<char[]> p3 ( wchar2char ( pTableName ) );
-    unique_ptr<char[]> p4 ( wchar2char ( pTableType ) );
-    return SQLTables ( pStmt, ( SQLCHAR* )  p1.get(), pCatalogNameSize, ( 
SQLCHAR* ) p2.get(), pSchemaNameSize,
-                       ( SQLCHAR* )  p3.get(), pTableNameSize, ( SQLCHAR* ) 
p4.get(), pTableTypeSize );
+    unique_ptr <char[]> p1 ( wchar2char ( pCatalogName ) );
+    unique_ptr <char[]> p2 ( wchar2char ( pSchemaName ) );
+    unique_ptr <char[]> p3 ( wchar2char ( pTableName ) );
+    unique_ptr <char[]> p4 ( wchar2char ( pTableType ) );
+    return SQLTables ( pStmt, ( SQLCHAR* ) p1 . get (), pCatalogNameSize, ( 
SQLCHAR* ) p2 . get (), pSchemaNameSize,
+                       ( SQLCHAR* ) p3 . get (), pTableNameSize, ( SQLCHAR* ) 
p4 . get (), pTableTypeSize );
 }
 
-RETCODE SQL_API SQLTables ( SQLHSTMT        pStmt,
-                            SQLCHAR*        pCatalogName,
-                            SQLSMALLINT     pCatalogNameSize,
-                            SQLCHAR*        pSchemaName,
-                            SQLSMALLINT     pSchemaNameSize,
-                            SQLCHAR*        pTableName,
-                            SQLSMALLINT     pTableNameSize,
-                            SQLCHAR*        pTableType,
-                            SQLSMALLINT     pTableTypeSize ) {
+RETCODE SQL_API SQLTables ( SQLHSTMT pStmt,
+                            SQLCHAR* pCatalogName,
+                            SQLSMALLINT pCatalogNameSize,
+                            SQLCHAR* pSchemaName,
+                            SQLSMALLINT pSchemaNameSize,
+                            SQLCHAR* pTableName,
+                            SQLSMALLINT pTableNameSize,
+                            SQLCHAR* pTableType,
+                            SQLSMALLINT pTableTypeSize )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLTables: Ctlg: %s, %d, 
Schema: %s, %d, Table: %s,%d, Type: %s, %d",
-                              pCatalogName, pCatalogNameSize, pSchemaName, 
pSchemaNameSize, pTableName, pTableNameSize, pTableType,
-                              pTableTypeSize ) );
+        pCatalogName, pCatalogNameSize, pSchemaName, pSchemaNameSize, 
pTableName, pTableNameSize, pTableType,
+        pTableTypeSize ) );
     __CHK_HANDLE ( pStmt, SQL_HANDLE_STMT, SQL_ERROR );
     _SQLFreeDiag ( _DIAGSTMT ( pStmt ) );
-    std::unique_ptr<SQLResponse> p = SQLResponse::MakeResp4SQLTables ( ( ( 
pODBCStmt ) pStmt )->Conn->meta.get() );
-    
-    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD ) {
+    std::unique_ptr <SQLResponse> p = SQLResponse::MakeResp4SQLTables ( ( ( 
pODBCStmt ) pStmt ) -> Conn -> meta . get () );
+
+    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD )
+    {
         return SQL_ERROR;
     }
-    
+
     return SQL_SUCCESS;
 }
 
@@ -96,49 +98,52 @@ RETCODE SQL_API SQLTables ( SQLHSTMT        pStmt,
 // to get the list of column names in specified tables
 // ------------------------------------------------------------------------
 
-RETCODE SQL_API SQLColumnsW ( SQLHSTMT        pStmt,
-                              SQLWCHAR*        pCtlgName,
-                              SQLSMALLINT     pCtlgNameLen,
-                              SQLWCHAR*        pSchemaName,
-                              SQLSMALLINT     pSchemaNameLen,
-                              SQLWCHAR*        pTableName,
-                              SQLSMALLINT     pTableNameLen,
-                              SQLWCHAR*        pColumnName,
-                              SQLSMALLINT     pColumnNameLen ) {
+RETCODE SQL_API SQLColumnsW ( SQLHSTMT pStmt,
+                              SQLWCHAR* pCtlgName,
+                              SQLSMALLINT pCtlgNameLen,
+                              SQLWCHAR* pSchemaName,
+                              SQLSMALLINT pSchemaNameLen,
+                              SQLWCHAR* pTableName,
+                              SQLSMALLINT pTableNameLen,
+                              SQLWCHAR* pColumnName,
+                              SQLSMALLINT pColumnNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLColumnsW is called" ) );
-    unique_ptr<char[]> p1 ( wchar2char ( pCtlgName ) );
-    unique_ptr<char[]> p2 ( wchar2char ( pSchemaName ) );
-    unique_ptr<char[]> p3 ( wchar2char ( pTableName ) );
-    unique_ptr<char[]> p4 ( wchar2char ( pColumnName ) );
-    return SQLColumns ( pStmt, ( SQLCHAR* ) p1.get(), pCtlgNameLen, ( SQLCHAR* 
)  p2.get(), pSchemaNameLen,
-                        ( SQLCHAR* )    p3.get(), pTableNameLen, ( SQLCHAR* ) 
p4.get(), pColumnNameLen );
+    unique_ptr <char[]> p1 ( wchar2char ( pCtlgName ) );
+    unique_ptr <char[]> p2 ( wchar2char ( pSchemaName ) );
+    unique_ptr <char[]> p3 ( wchar2char ( pTableName ) );
+    unique_ptr <char[]> p4 ( wchar2char ( pColumnName ) );
+    return SQLColumns ( pStmt, ( SQLCHAR* ) p1 . get (), pCtlgNameLen, ( 
SQLCHAR* ) p2 . get (), pSchemaNameLen,
+                        ( SQLCHAR* ) p3 . get (), pTableNameLen, ( SQLCHAR* ) 
p4 . get (), pColumnNameLen );
 }
 
-RETCODE SQL_API SQLColumns ( SQLHSTMT        pStmt,
-                             SQLCHAR*        pCtlgName,
-                             SQLSMALLINT     pCtlgNameLen,
-                             SQLCHAR*        pSchemaName,
-                             SQLSMALLINT     pSchemaNameLen,
-                             SQLCHAR*        pTableName,
-                             SQLSMALLINT     pTableNameLen,
-                             SQLCHAR*        pColumnName,
-                             SQLSMALLINT     pColumnNameLen ) {
+RETCODE SQL_API SQLColumns ( SQLHSTMT pStmt,
+                             SQLCHAR* pCtlgName,
+                             SQLSMALLINT pCtlgNameLen,
+                             SQLCHAR* pSchemaName,
+                             SQLSMALLINT pSchemaNameLen,
+                             SQLCHAR* pTableName,
+                             SQLSMALLINT pTableNameLen,
+                             SQLCHAR* pColumnName,
+                             SQLSMALLINT pColumnNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLColumns called, Ctlg: %s, 
%d. Schema: %s, %d, Table: %s, %d, Col: %s, %d",
-                              pCtlgName, pCtlgNameLen, pSchemaName, 
pSchemaNameLen, pTableName, pTableNameLen, pColumnName, pColumnNameLen ) );
+        pCtlgName, pCtlgNameLen, pSchemaName, pSchemaNameLen, pTableName, 
pTableNameLen, pColumnName, pColumnNameLen ) );
     __CHK_HANDLE ( pStmt, SQL_HANDLE_STMT, SQL_ERROR );
     _SQLFreeDiag ( _DIAGSTMT ( pStmt ) );
 
-       // Some application will bring '\\' into table name
-       remove_char(( char* )pTableName, '\\');
+    // Some application will bring '\\' into table name
+    remove_char ( ( char* )pTableName, '\\' );
 
     // feed stmt structure with response
-    std::unique_ptr<SQLResponse> p = SQLResponse::MakeResp4SQLColumns ( ( ( 
pODBCStmt ) pStmt )->Conn->meta.get(),
-                                     ( char* ) pTableName, ( char* ) 
pColumnName );
-                                     
-    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD ) {
+    std::unique_ptr <SQLResponse> p = SQLResponse::MakeResp4SQLColumns ( ( ( 
pODBCStmt ) pStmt ) -> Conn -> meta . get (),
+                                                                         ( 
char* ) pTableName, ( char* ) pColumnName );
+
+    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD )
+    {
         return SQL_ERROR;
     }
-    
+
     return SQL_SUCCESS;
 }
 
@@ -146,16 +151,16 @@ RETCODE SQL_API SQLColumns ( SQLHSTMT        pStmt,
 // to get the list of column names which make a row unqiue or r updateable
 // ------------------------------------------------------------------------
 
-SQLRETURN SQL_API SQLSpecialColumns ( SQLHSTMT        pStmt,
-                                      SQLUSMALLINT    pIdentifierType,
-                                      SQLCHAR*        pCtlgName,
-                                      SQLSMALLINT     pCtlgNameLen,
-                                      SQLCHAR*        pSchemaName,
-                                      SQLSMALLINT     pSchemaNameLen,
-                                      SQLCHAR*        pTableName,
-                                      SQLSMALLINT     pTableNameLen,
-                                      SQLUSMALLINT    pScope,
-                                      SQLUSMALLINT    pNullable )
+SQLRETURN SQL_API SQLSpecialColumns ( SQLHSTMT pStmt,
+                                      SQLUSMALLINT pIdentifierType,
+                                      SQLCHAR* pCtlgName,
+                                      SQLSMALLINT pCtlgNameLen,
+                                      SQLCHAR* pSchemaName,
+                                      SQLSMALLINT pSchemaNameLen,
+                                      SQLCHAR* pTableName,
+                                      SQLSMALLINT pTableNameLen,
+                                      SQLUSMALLINT pScope,
+                                      SQLUSMALLINT pNullable )
 
 {
     // note
@@ -168,7 +173,7 @@ SQLRETURN SQL_API SQLSpecialColumns ( SQLHSTMT        pStmt,
     // SQL_SCOPE_TRANSACTION
     // SQL_SCOPE_SESSION
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLSpecialColumns called, Ctlg: 
%s, %d. Schema: %s, %d, Table: %s, %d",
-                              pCtlgName, pCtlgNameLen, pSchemaName, 
pSchemaNameLen, pTableName, pTableNameLen ) );
+        pCtlgName, pCtlgNameLen, pSchemaName, pSchemaNameLen, pTableName, 
pTableNameLen ) );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLSpecialColumns not implemented" ) );
     return SQL_ERROR;
 }
@@ -177,15 +182,16 @@ SQLRETURN SQL_API SQLSpecialColumns ( SQLHSTMT        
pStmt,
 // to get table and/or index statistics
 // ------------------------------------------------------------------------
 
-RETCODE SQL_API SQLStatistics ( SQLHSTMT        pStmt,
-                                SQLCHAR*        pCtlgName,
-                                SQLSMALLINT     pCtlgNameLen,
-                                SQLCHAR*        pSchemaName,
-                                SQLSMALLINT     pSchemaNameLen,
-                                SQLCHAR*        pTableName,
-                                SQLSMALLINT     pTableNameLen,
-                                SQLUSMALLINT    pUnique,
-                                SQLUSMALLINT    pReserved ) {
+RETCODE SQL_API SQLStatistics ( SQLHSTMT pStmt,
+                                SQLCHAR* pCtlgName,
+                                SQLSMALLINT pCtlgNameLen,
+                                SQLCHAR* pSchemaName,
+                                SQLSMALLINT pSchemaNameLen,
+                                SQLCHAR* pTableName,
+                                SQLSMALLINT pTableNameLen,
+                                SQLUSMALLINT pUnique,
+                                SQLUSMALLINT pReserved )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLStatistics called" ) );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLStatistics not implemented" ) );
     return SQL_ERROR;
@@ -194,95 +200,101 @@ RETCODE SQL_API SQLStatistics ( SQLHSTMT        pStmt,
 // -----------------------------------------------------------------------
 // to get columns which make up the p-keys
 // ------------------------------------------------------------------------
-RETCODE SQL_API SQLPrimaryKeysW ( SQLHSTMT    pStmt,
-                                  SQLWCHAR*    pCtlgName,
+RETCODE SQL_API SQLPrimaryKeysW ( SQLHSTMT pStmt,
+                                  SQLWCHAR* pCtlgName,
                                   SQLSMALLINT pCtlgNameLen,
-                                  SQLWCHAR*    pSchemaName,
+                                  SQLWCHAR* pSchemaName,
                                   SQLSMALLINT pSchemaNameLen,
-                                  SQLWCHAR*    pTableName,
-                                  SQLSMALLINT pTableNameLen ) {
+                                  SQLWCHAR* pTableName,
+                                  SQLSMALLINT pTableNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLPrimaryKeysW called" ) );
     return SQLPrimaryKeys ( pStmt, NULL, NULL, NULL, NULL, NULL, NULL );
 }
 
 
-RETCODE SQL_API SQLPrimaryKeys ( SQLHSTMT    pStmt,
-                                 SQLCHAR*    pCtlgName,
+RETCODE SQL_API SQLPrimaryKeys ( SQLHSTMT pStmt,
+                                 SQLCHAR* pCtlgName,
                                  SQLSMALLINT pCtlgNameLen,
-                                 SQLCHAR*    pSchemaName,
+                                 SQLCHAR* pSchemaName,
                                  SQLSMALLINT pSchemaNameLen,
-                                 SQLCHAR*    pTableName,
-                                 SQLSMALLINT pTableNameLen ) {
+                                 SQLCHAR* pTableName,
+                                 SQLSMALLINT pTableNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLPrimaryKeys called" ) );
-    std::unique_ptr<SQLResponse> p ( new SQLResponse() );
-    
-    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD ) {
+    std::unique_ptr <SQLResponse> p ( new SQLResponse () );
+
+    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD )
+    {
         return SQL_ERROR;
     }
-    
+
     return SQL_SUCCESS;
 }
 
 // -----------------------------------------------------------------------
 // to get foreign key information
 // ------------------------------------------------------------------------
-RETCODE SQL_API SQLForeignKeysW ( SQLHSTMT        pStmt,
-                                  SQLWCHAR*        pPKCtlgName,
-                                  SQLSMALLINT     pPKCtlgNameLen,
-                                  SQLWCHAR*        pPKSchemaName,
-                                  SQLSMALLINT     pPKSchemaNameLen,
-                                  SQLWCHAR*        pPKTableName,
-                                  SQLSMALLINT     pPKTableNameLen,
-                                  SQLWCHAR*        pFKCtlgName,
-                                  SQLSMALLINT     pFKCtlgNameLen,
-                                  SQLWCHAR*        pFKSchemaName,
-                                  SQLSMALLINT     pFKSchemaNameLen,
-                                  SQLWCHAR*        pFKTableName,
-                                  SQLSMALLINT     pFKTableNameLen ) {
+RETCODE SQL_API SQLForeignKeysW ( SQLHSTMT pStmt,
+                                  SQLWCHAR* pPKCtlgName,
+                                  SQLSMALLINT pPKCtlgNameLen,
+                                  SQLWCHAR* pPKSchemaName,
+                                  SQLSMALLINT pPKSchemaNameLen,
+                                  SQLWCHAR* pPKTableName,
+                                  SQLSMALLINT pPKTableNameLen,
+                                  SQLWCHAR* pFKCtlgName,
+                                  SQLSMALLINT pFKCtlgNameLen,
+                                  SQLWCHAR* pFKSchemaName,
+                                  SQLSMALLINT pFKSchemaNameLen,
+                                  SQLWCHAR* pFKTableName,
+                                  SQLSMALLINT pFKTableNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLForeignKeysW called" ) );
-    unique_ptr<char[]> p1 ( wchar2char ( pPKCtlgName ) );
-    unique_ptr<char[]> p2 ( wchar2char ( pPKSchemaName ) );
-    unique_ptr<char[]> p3 ( wchar2char ( pPKTableName ) );
-    unique_ptr<char[]> p4 ( wchar2char ( pFKCtlgName ) );
-    unique_ptr<char[]> p5 ( wchar2char ( pFKSchemaName ) );
-    unique_ptr<char[]> p6 ( wchar2char ( pFKTableName ) );
+    unique_ptr <char[]> p1 ( wchar2char ( pPKCtlgName ) );
+    unique_ptr <char[]> p2 ( wchar2char ( pPKSchemaName ) );
+    unique_ptr <char[]> p3 ( wchar2char ( pPKTableName ) );
+    unique_ptr <char[]> p4 ( wchar2char ( pFKCtlgName ) );
+    unique_ptr <char[]> p5 ( wchar2char ( pFKSchemaName ) );
+    unique_ptr <char[]> p6 ( wchar2char ( pFKTableName ) );
     return SQLForeignKeys ( pStmt,
-                            ( SQLCHAR* ) p1.get(),
+                            ( SQLCHAR* ) p1 . get (),
                             pPKCtlgNameLen,
-                            ( SQLCHAR* ) p2.get(),
+                            ( SQLCHAR* ) p2 . get (),
                             pPKSchemaNameLen,
-                            ( SQLCHAR* ) p3.get(),
+                            ( SQLCHAR* ) p3 . get (),
                             pPKTableNameLen,
-                            ( SQLCHAR* ) p4.get(),
+                            ( SQLCHAR* ) p4 . get (),
                             pFKCtlgNameLen,
-                            ( SQLCHAR* ) p5.get(),
+                            ( SQLCHAR* ) p5 . get (),
                             pFKSchemaNameLen,
-                            ( SQLCHAR* ) p6.get(),
+                            ( SQLCHAR* ) p6 . get (),
                             pFKTableNameLen );
 }
 
-RETCODE SQL_API SQLForeignKeys ( SQLHSTMT        pStmt,
-                                 SQLCHAR*        pPKCtlgName,
-                                 SQLSMALLINT     pPKCtlgNameLen,
-                                 SQLCHAR*        pPKSchemaName,
-                                 SQLSMALLINT     pPKSchemaNameLen,
-                                 SQLCHAR*        pPKTableName,
-                                 SQLSMALLINT     pPKTableNameLen,
-                                 SQLCHAR*        pFKCtlgName,
-                                 SQLSMALLINT     pFKCtlgNameLen,
-                                 SQLCHAR*        pFKSchemaName,
-                                 SQLSMALLINT     pFKSchemaNameLen,
-                                 SQLCHAR*        pFKTableName,
-                                 SQLSMALLINT     pFKTableNameLen ) {
+RETCODE SQL_API SQLForeignKeys ( SQLHSTMT pStmt,
+                                 SQLCHAR* pPKCtlgName,
+                                 SQLSMALLINT pPKCtlgNameLen,
+                                 SQLCHAR* pPKSchemaName,
+                                 SQLSMALLINT pPKSchemaNameLen,
+                                 SQLCHAR* pPKTableName,
+                                 SQLSMALLINT pPKTableNameLen,
+                                 SQLCHAR* pFKCtlgName,
+                                 SQLSMALLINT pFKCtlgNameLen,
+                                 SQLCHAR* pFKSchemaName,
+                                 SQLSMALLINT pFKSchemaNameLen,
+                                 SQLCHAR* pFKTableName,
+                                 SQLSMALLINT pFKTableNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG,
-                              "SQLForeignKeys called pPKCtlgName: %s, 
pPKSchemaName : %s, pPKTableName: %s, pFKCtlgName: %s, pFKSchemaName: %s, 
pFKTableName: %s",
-                              pPKCtlgName, pPKSchemaName, pPKTableName, 
pFKCtlgName, pFKSchemaName, pFKTableName ) );
-    std::unique_ptr<SQLResponse> p ( new SQLResponse() );
-    
-    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD ) {
+        "SQLForeignKeys called pPKCtlgName: %s, pPKSchemaName : %s, 
pPKTableName: %s, pFKCtlgName: %s, pFKSchemaName: %s, pFKTableName: %s",
+        pPKCtlgName, pPKSchemaName, pPKTableName, pFKCtlgName, pFKSchemaName, 
pFKTableName ) );
+    std::unique_ptr <SQLResponse> p ( new SQLResponse () );
+
+    if ( PutRespToStmt ( ( pODBCStmt ) pStmt, std::move ( p ) ) != GOOD )
+    {
         return SQL_ERROR;
     }
-    
+
     return SQL_SUCCESS;
 }
 
@@ -291,13 +303,13 @@ RETCODE SQL_API SQLForeignKeys ( SQLHSTMT        pStmt,
 // to get a list of tables and the privileges associated with each table
 // ------------------------------------------------------------------------
 
-RETCODE SQL_API SQLTablePrivileges ( SQLHSTMT        pStmt,
-                                     SQLCHAR*        pCtlgName,
-                                     SQLSMALLINT     pCtlgNameLen,
-                                     SQLCHAR*        pSchemaName,
-                                     SQLSMALLINT     pSchemaNameLen,
-                                     SQLCHAR*        pTableName,
-                                     SQLSMALLINT     pTableNameLen )
+RETCODE SQL_API SQLTablePrivileges ( SQLHSTMT pStmt,
+                                     SQLCHAR* pCtlgName,
+                                     SQLSMALLINT pCtlgNameLen,
+                                     SQLCHAR* pSchemaName,
+                                     SQLSMALLINT pSchemaNameLen,
+                                     SQLCHAR* pTableName,
+                                     SQLSMALLINT pTableNameLen )
 
 {
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLTablePrivileges called" ) );
@@ -309,15 +321,16 @@ RETCODE SQL_API SQLTablePrivileges ( SQLHSTMT        
pStmt,
 // to get a list of columns and associated privileges for the specified table
 // ------------------------------------------------------------------------
 
-RETCODE SQL_API SQLColumnPrivileges ( SQLHSTMT        pStmt,
-                                      SQLCHAR*        pCtlgName,
-                                      SQLSMALLINT     pCtlgNameLen,
-                                      SQLCHAR*        pSchemaName,
-                                      SQLSMALLINT     pSchemaNameLen,
-                                      SQLCHAR*        pTableName,
-                                      SQLSMALLINT     pTableNameLen,
-                                      SQLCHAR*        pColumnName,
-                                      SQLSMALLINT     pColumnNameLen ) {
+RETCODE SQL_API SQLColumnPrivileges ( SQLHSTMT pStmt,
+                                      SQLCHAR* pCtlgName,
+                                      SQLSMALLINT pCtlgNameLen,
+                                      SQLCHAR* pSchemaName,
+                                      SQLSMALLINT pSchemaNameLen,
+                                      SQLCHAR* pTableName,
+                                      SQLSMALLINT pTableNameLen,
+                                      SQLCHAR* pColumnName,
+                                      SQLSMALLINT pColumnNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLColumnPrivileges called" ) );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLColumnPrivileges not implemented" ) );
     return SQL_ERROR;
@@ -329,13 +342,14 @@ RETCODE SQL_API SQLColumnPrivileges ( SQLHSTMT        
pStmt,
 // ------------------------------------------------------------------------
 
 
-RETCODE SQL_API SQLProcedures ( SQLHSTMT        pStmt,
-                                SQLCHAR*        pCtlgName,
-                                SQLSMALLINT     pCtlgNameLen,
-                                SQLCHAR*        pSchemaName,
-                                SQLSMALLINT     pSchemaNameLen,
-                                SQLCHAR*        pProcName,
-                                SQLSMALLINT     pProcNameLen ) {
+RETCODE SQL_API SQLProcedures ( SQLHSTMT pStmt,
+                                SQLCHAR* pCtlgName,
+                                SQLSMALLINT pCtlgNameLen,
+                                SQLCHAR* pSchemaName,
+                                SQLSMALLINT pSchemaNameLen,
+                                SQLCHAR* pProcName,
+                                SQLSMALLINT pProcNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLProcedures called" ) );
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLProcedures not implemented" ) );
     return SQL_ERROR;
@@ -346,18 +360,18 @@ RETCODE SQL_API SQLProcedures ( SQLHSTMT        pStmt,
 // to get a list of procedure names stored in a specific data source
 // ------------------------------------------------------------------------
 
-RETCODE SQL_API SQLProcedureColumns ( SQLHSTMT        pStmt,
-                                      SQLCHAR*        pCtlgName,
-                                      SQLSMALLINT     pCtlgNameLen,
-                                      SQLCHAR*        pSchemaName,
-                                      SQLSMALLINT     pSchemaNameLen,
-                                      SQLCHAR*        pProcName,
-                                      SQLSMALLINT     pProcNameLen,
-                                      SQLCHAR*        pColumnName,
-                                      SQLSMALLINT     pColumnNameLen ) {
+RETCODE SQL_API SQLProcedureColumns ( SQLHSTMT pStmt,
+                                      SQLCHAR* pCtlgName,
+                                      SQLSMALLINT pCtlgNameLen,
+                                      SQLCHAR* pSchemaName,
+                                      SQLSMALLINT pSchemaNameLen,
+                                      SQLCHAR* pProcName,
+                                      SQLSMALLINT pProcNameLen,
+                                      SQLCHAR* pColumnName,
+                                      SQLSMALLINT pColumnNameLen )
+{
     __ODBCLOG ( _ODBCLogMsg ( LogLevel_DEBUG, "SQLProceduresColumns called" ) 
);
     __ODBCPOPMSG ( _ODBCPopMsg ( "SQLProceduresColumns not implemented" ) );
     return SQL_ERROR;
 }
 
-

Reply via email to