=== modified file 'CMakeLists.txt' (properties changed: -x to +x) --- CMakeLists.txt 2010-01-31 00:29:06 +0000 +++ CMakeLists.txt 2010-02-17 10:08:29 +0000 @@ -143,6 +143,8 @@ #MESSAGE("New CMAKE_${TYPE}_FLAGS${CFG}: ${CMAKE_${TYPE}_FLAGS${CFG}}") ENDFOREACH(CFG) ENDFOREACH(TYPE) +ELSE(WIN32) + ADD_DEFINITIONS(-D_UNIX_) ENDIF(WIN32) #----------------------------------------------------- === modified file 'LICENSE.commercial' (properties changed: -x to +x) === modified file 'MYODBC_CONF.h' (properties changed: -x to +x) === modified file 'MYODBC_MYSQL.h' (properties changed: -x to +x) === modified file 'MYODBC_ODBC.h' (properties changed: -x to +x) === modified file 'Makefile.am' (properties changed: -x to +x) === modified file 'README' (properties changed: -x to +x) === modified file 'VersionInfo.h' (properties changed: -x to +x) === modified file 'cmake/FindMySQL.cmake' (properties changed: -x to +x) === modified file 'cmake/FindODBC.cmake' (properties changed: -x to +x) === modified file 'cmake/getmysqlversion.c' (properties changed: -x to +x) === modified file 'cmake/sqlcolattrib.c' (properties changed: -x to +x) === modified file 'cmake/sqlcolattrib1.c' (properties changed: -x to +x) === modified file 'cmake/sqlcolattrib2.c' (properties changed: -x to +x) === modified file 'cmake/sqlparamopt1.c' (properties changed: -x to +x) === modified file 'cmake/sqlparamopt2.c' (properties changed: -x to +x) === modified file 'configure.in' (properties changed: -x to +x) === modified file 'dltest/CMakeLists.txt' (properties changed: -x to +x) === modified file 'dltest/dltest.c' (properties changed: -x to +x) === modified file 'driver/CMakeLists.txt' (properties changed: -x to +x) === modified file 'driver/Makefile.am' (properties changed: -x to +x) === modified file 'driver/ansi.c' (properties changed: -x to +x) === modified file 'driver/catalog.c' (properties changed: -x to +x) === modified file 'driver/connect.c' (properties changed: -x to +x) --- driver/connect.c 2010-01-31 00:29:06 +0000 +++ driver/connect.c 2010-02-18 11:14:49 +0000 @@ -68,6 +68,8 @@ flags|= CLIENT_IGNORE_SPACE; if (ds->allow_multiple_statements) flags|= CLIENT_MULTI_STATEMENTS; + if (ds->clientinteractive) + flags|= CLIENT_INTERACTIVE; return flags; } @@ -725,6 +727,8 @@ oldds->pszOPTION= _global_alloc(20); sprintf(oldds->pszOPTION, "%ul", ds_get_options(ds)); } + oldds->bINTERACTIVE= (ds->clientinteractive != 0); + if (ds->sslkey) oldds->pszSSLKEY= _global_strdup(ds_get_utf8attr(ds->sslkey, &ds->sslkey8)); if (ds->sslcert) @@ -741,7 +745,7 @@ oldds->pszPORT= _global_strdup(" "); sprintf(oldds->pszPORT, "%d", ds->port); - oldds->pszSSL= _global_strdup(" "); + oldds->pszSSLVERIFY= _global_strdup(" "); sprintf(oldds->pszSSLVERIFY,"%d", ds->sslverify); /* Prompt. Function returns false if user cancels. */ @@ -766,7 +770,13 @@ if (oldds->pszSTMT) ds_setattr_from_utf8(&ds->initstmt, oldds->pszSTMT); if (oldds->pszOPTION) +#ifdef _WIN32 + ds_set_options(ds, strtoul(oldds->pszOPTION, NULL, 10)); +#else ds_set_options(ds, strtoul(oldds->pszOPTION)); +#endif + ds->clientinteractive= oldds->bINTERACTIVE; + if (oldds->pszSSLKEY) ds_setattr_from_utf8(&ds->sslkey, oldds->pszSSLKEY); if (oldds->pszSSLCERT) === modified file 'driver/cursor.c' (properties changed: -x to +x) === modified file 'driver/desc.c' (properties changed: -x to +x) === modified file 'driver/dll.c' (properties changed: -x to +x) === modified file 'driver/driver.c' (properties changed: -x to +x) === modified file 'driver/driver.def' (properties changed: -x to +x) === modified file 'driver/driver.h' (properties changed: -x to +x) === modified file 'driver/driver.rc' (properties changed: -x to +x) === modified file 'driver/error.c' (properties changed: -x to +x) === modified file 'driver/error.h' (properties changed: -x to +x) === modified file 'driver/execute.c' (properties changed: -x to +x) === modified file 'driver/handle.c' (properties changed: -x to +x) === modified file 'driver/info.c' (properties changed: -x to +x) === modified file 'driver/myutil.h' (properties changed: -x to +x) === modified file 'driver/options.c' (properties changed: -x to +x) === modified file 'driver/prepare.c' (properties changed: -x to +x) === modified file 'driver/results.c' (properties changed: -x to +x) === modified file 'driver/transact.c' (properties changed: -x to +x) === modified file 'driver/unicode.c' (properties changed: -x to +x) === modified file 'driver/utility.c' (properties changed: -x to +x) === modified file 'installer/CMakeLists.txt' (properties changed: -x to +x) === modified file 'installer/myodbc3i.c' (properties changed: -x to +x) === modified file 'resource.h' (properties changed: -x to +x) === modified file 'scripts/Makefile.am' (properties changed: -x to +x) === modified file 'scripts/myodbc3.spec.sh' (properties changed: -x to +x) === modified file 'setup/CMakeLists.txt' (properties changed: -x to +x) === modified file 'setup/ConfigDSN.c' (properties changed: -x to +x) === modified file 'setup/MYODBCSetup.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupAssistText.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupAssistText.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupCheckBox.cpp' (properties changed: -x to +x) === removed file 'setup/MYODBCSetupCheckBox.h' --- setup/MYODBCSetupCheckBox.h 2010-01-31 00:29:06 +0000 +++ setup/MYODBCSetupCheckBox.h 2010-02-17 17:39:57 +0000 @@ -29,6 +29,16 @@ #include #include + +#ifndef MYODBC_ADD_TOOLTIP + +#if QT_VERSION >= 0x040000 +# define MYODBC_ADD_TOOLTIP(control, tooltipStr) control->setToolTip(tooltipStr); +#else +# define MYODBC_ADD_TOOLTIP(control, tooltipStr) QToolTip::add(control, tooltipStr); +#endif + +#endif class MYODBCSetupCheckBox : public QCheckBox { Q_OBJECT === modified file 'setup/MYODBCSetupComboBox.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupComboBox.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupComboBoxDatabases.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupComboBoxDatabases.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupConfigDSNAdd.c' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupConfigDSNEdit.c' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupConfigDSNRemove.c' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceConfig.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceDialog.cpp' (properties changed: -x to +x) --- setup/MYODBCSetupDataSourceDialog.cpp 2010-01-31 00:29:06 +0000 +++ setup/MYODBCSetupDataSourceDialog.cpp 2010-02-17 17:58:32 +0000 @@ -280,6 +280,8 @@ pDataSource->pszOPTION = (char*)_global_alloc(50); sprintf( pDataSource->pszOPTION, "%d", nFlags ); } + + pDataSource->bINTERACTIVE= ptab3->getInteractiveFlag(); } // exit @@ -439,6 +441,8 @@ ptab3->ptab3a->pcheckboxDisableBinaryResult->setChecked( nOptions & (1 << 28) ? TRUE : FALSE ); } + ptab3->ptab3a->pcheckboxInteractive->setChecked(pDataSource->bINTERACTIVE); + connect( ppushbuttonTest, SIGNAL(clicked()), SLOT(slotTest()) ); connect( ppushbuttonDiagnostics, SIGNAL(toggled(bool)), SLOT(slotToggleGuru(bool)) ); connect( ppushbuttonHelp, SIGNAL(clicked()), SLOT(slotHelp()) ); === modified file 'setup/MYODBCSetupDataSourceDialog.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab1.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab1.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab2.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab2.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab3.cpp' (properties changed: -x to +x) --- setup/MYODBCSetupDataSourceTab3.cpp 2010-01-31 00:29:06 +0000 +++ setup/MYODBCSetupDataSourceTab3.cpp 2010-02-17 16:12:29 +0000 @@ -109,3 +109,8 @@ return nFlags; } + +BOOL MYODBCSetupDataSourceTab3::getInteractiveFlag() +{ + return ptab3->pcheckboxInteractive->isChecked(); +} \ No newline at end of file === removed file 'setup/MYODBCSetupDataSourceTab3.h' --- setup/MYODBCSetupDataSourceTab3.h 2010-01-31 00:29:06 +0000 +++ setup/MYODBCSetupDataSourceTab3.h 2010-02-17 16:09:13 +0000 @@ -51,7 +51,8 @@ MYODBCSetupDataSourceTab3c * ptab3c; MYODBCSetupDataSourceTab3d * ptab3d; - unsigned int getFlags(); + unsigned int getFlags(); + BOOL getInteractiveFlag(); }; #endif === modified file 'setup/MYODBCSetupDataSourceTab3a.cpp' (properties changed: -x to +x) --- setup/MYODBCSetupDataSourceTab3a.cpp 2010-01-31 00:29:06 +0000 +++ setup/MYODBCSetupDataSourceTab3a.cpp 2010-02-17 17:42:44 +0000 @@ -36,6 +36,7 @@ QString stringEnableReconnect( tr("Enables automatic reconnect. Attention: it is strongly not recommended to set this flag for transactional operations!") ); QString stringAutoIncrementIsNull( tr("Turns on/off the handling of searching for the last inserted row with WHERE auto_increment_column IS NULL") ); QString stringDisableBinaryResult( tr("Always handle binary function results as character data") ); + QString stringInteractive( tr("Tells server to use longer wait timeout for the connection(interactive timeout)") ); #if QT_VERSION >= 0x040000 QVBoxLayout * playoutFields = new QVBoxLayout; setLayout( playoutFields ); @@ -118,6 +119,11 @@ QToolTip::add( pcheckboxDisableBinaryResult, stringDisableBinaryResult ); #endif + pcheckboxInteractive = new MYODBCSetupCheckBox( tr("Interactive client"), this ); + pcheckboxInteractive->setAssistText( stringInteractive ); + playoutFields->addWidget( pcheckboxInteractive ); + MYODBC_ADD_TOOLTIP(pcheckboxInteractive, stringInteractive); + playoutFields->addStretch( 10 ); } === removed file 'setup/MYODBCSetupDataSourceTab3a.h' --- setup/MYODBCSetupDataSourceTab3a.h 2010-01-31 00:29:06 +0000 +++ setup/MYODBCSetupDataSourceTab3a.h 2010-02-17 16:13:31 +0000 @@ -55,6 +55,7 @@ MYODBCSetupCheckBox *pcheckboxEnableReconnect; MYODBCSetupCheckBox *pcheckboxAutoIncrementIsNull; MYODBCSetupCheckBox *pcheckboxDisableBinaryResult; + MYODBCSetupCheckBox *pcheckboxInteractive; }; #endif === modified file 'setup/MYODBCSetupDataSourceTab3b.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab3b.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab3c.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab3c.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab3d.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDataSourceTab3d.h' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDriverConnect.c' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupDriverConnectPrompt.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupHandleInstallerError.c' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupLineEdit.cpp' (properties changed: -x to +x) === modified file 'setup/MYODBCSetupLineEdit.h' (properties changed: -x to +x) === modified file 'setup/myodbc3S.rc' (properties changed: -x to +x) === modified file 'setupgui/CMakeLists.txt' (properties changed: -x to +x) === modified file 'setupgui/ConfigDSN.c' (properties changed: -x to +x) === modified file 'setupgui/callbacks.c' (properties changed: -x to +x) === modified file 'setupgui/setupgui.h' (properties changed: -x to +x) === modified file 'setupgui/utils.c' (properties changed: -x to +x) === modified file 'setupgui/windows/TabCtrl.cpp' (properties changed: -x to +x) === modified file 'setupgui/windows/TabCtrl.h' (properties changed: -x to +x) === modified file 'setupgui/windows/main.cpp' (properties changed: -x to +x) === modified file 'setupgui/windows/odbcdialogparams.cpp' (properties changed: -x to +x) --- setupgui/windows/odbcdialogparams.cpp 2010-01-31 00:29:06 +0000 +++ setupgui/windows/odbcdialogparams.cpp 2010-02-16 21:37:59 +0000 @@ -240,6 +240,7 @@ GET_BOOL(CONNECTION_TAB, auto_reconnect); GET_BOOL(CONNECTION_TAB, force_use_of_named_pipes); GET_BOOL(CONNECTION_TAB, allow_multiple_statements); + GET_BOOL(CONNECTION_TAB, clientinteractive); getStrFieldData(¶ms.charset , CONNECTION_TAB, IDC_EDIT_charset); getStrFieldData(¶ms.initstmt, CONNECTION_TAB, IDC_EDIT_initstmt); @@ -289,6 +290,7 @@ SET_BOOL(CONNECTION_TAB, auto_reconnect); SET_BOOL(CONNECTION_TAB, force_use_of_named_pipes); SET_BOOL(CONNECTION_TAB, allow_multiple_statements); + SET_BOOL(CONNECTION_TAB, clientinteractive); if ( TabCtrl_1.hTabPages[CONNECTION_TAB-1]) { === modified file 'setupgui/windows/odbcdialogparams.h' (properties changed: -x to +x) === modified file 'setupgui/windows/odbcdialogparams.rc' (properties changed: -x to +x) --- setupgui/windows/odbcdialogparams.rc 2010-01-31 00:29:06 +0000 +++ setupgui/windows/odbcdialogparams.rc 2010-02-16 21:37:59 +0000 @@ -104,6 +104,11 @@ COMBOBOX IDC_EDIT_charset,90,102,97,8,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP RTEXT "Initial Statement:",IDC_STATIC,12,117,67,8 EDITTEXT IDC_EDIT_initstmt,90,117,97,12,ES_AUTOHSCROLL + +// Second Column + CONTROL "Interactive Client",IDC_CHECK_clientinteractive, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,130,12,79,10 + END IDD_TAB2 DIALOGEX 0, 0, 209, 151 === modified file 'setupgui/windows/resource.h' (properties changed: -x to +x) --- setupgui/windows/resource.h 2010-01-31 00:29:06 +0000 +++ setupgui/windows/resource.h 2010-02-16 21:37:59 +0000 @@ -113,6 +113,7 @@ #define IDC_EDIT_sslcipher 10035 #define IDC_CHECK_handle_binary_as_char 10036 #define IDC_CHECK_save_queries 10037 +#define IDC_CHECK_clientinteractive 10040 #define IDC_BUTTON_TEST 11014 #define IDC_BUTTON_HELP 11015 #define IDC_STATIC -1 === modified file 'test/CMakeLists.txt' (properties changed: -x to +x) === modified file 'test/Makefile.am' (properties changed: -x to +x) === modified file 'test/my_basics.c' (properties changed: -x to +x) --- test/my_basics.c 2010-01-31 00:29:06 +0000 +++ test/my_basics.c 2010-02-16 21:37:59 +0000 @@ -994,6 +994,83 @@ } +DECLARE_TEST(t_bug48603) +{ + SQLINTEGER timeout, interactive, diff= 1000; + SQLSMALLINT conn_out_len; + HDBC hdbc1; + HSTMT hstmt1; + SQLCHAR conn[256], conn_out[256], query[53]; + int result= OK; + + ok_sql(hstmt, "select @@wait_timeout, @@interactive_timeout"); + ok_stmt(hstmt,SQLFetch(hstmt)); + timeout= my_fetch_int(hstmt, 1); + interactive= my_fetch_int(hstmt, 2); + ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE)); + + if (timeout == interactive) + { + /* Changing globally interactive timeout to be able to test + if INTERACTIVE option works */ + SQLRETURN rc; + sprintf((char *)query, "set GLOBAL interactive_timeout=%d", timeout + diff); + rc= SQLExecDirect(hstmt, query, SQL_NTS); + + if (!SQL_SUCCEEDED(rc)) + { + printMessage("Don't have rights to change interactive timeout globally - so can't really test if option INTERACTIVE works"); + //return FAIL; + } + + ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE)); + } + else + diff= interactive - timeout; + + /* INITSTMT={set @@wait_timeout=%d} */ + sprintf((char *)conn, "DSN=%s;UID=%s;PWD=%s;CHARSET=utf8;INITSTMT={set @@interactive_timeout=%d};INTERACTIVE=1", + mydsn, myuid, mypwd, timeout+diff); + + if (mysock != NULL) + { + strcat((char *)conn, ";SOCKET="); + strcat((char *)conn, (char *)mysock); + } + if (myport) + { + char pbuff[20]; + sprintf(pbuff, ";PORT=%d", myport); + strcat((char *)conn, pbuff); + } + + ok_env(henv, SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1)); + + ok_con(hdbc1, SQLDriverConnect(hdbc1, NULL, conn, sizeof(conn), conn_out, + sizeof(conn_out), &conn_out_len, + SQL_DRIVER_NOPROMPT)); + ok_con(hdbc1, SQLAllocStmt(hdbc1, &hstmt1)); + ok_sql(hstmt1, "select @@wait_timeout"); + ok_stmt(hstmt1,SQLFetch(hstmt1)); + + if ((timeout+diff) != my_fetch_int(hstmt1, 1)) + result= FAIL; + + ok_stmt(hstmt1, SQLFreeStmt(hstmt1, SQL_DROP)); + ok_con(hdbc1, SQLDisconnect(hdbc1)); + ok_con(hdbc1, SQLFreeHandle(SQL_HANDLE_DBC, hdbc1)); + + if (timeout == interactive) + { + /* setting global interactive timeout back if we changed it */ + sprintf((char *)query, "set GLOBAL interactive_timeout=%d", timeout); + ok_stmt(hstmt, SQLExecDirect(hstmt, query, SQL_NTS)); + } + + return result; +} + + BEGIN_TESTS ADD_TEST(my_basics) ADD_TEST(t_max_select) @@ -1020,6 +1097,7 @@ ADD_TEST(t_bug31959) ADD_TEST(t_bug41256) ADD_TEST(t_bug44971) + ADD_TEST(t_bug48603) END_TESTS === modified file 'test/my_blob.c' (properties changed: -x to +x) === modified file 'test/my_bug13766.c' (properties changed: -x to +x) === modified file 'test/my_bulk.c' (properties changed: -x to +x) === modified file 'test/my_catalog.c' (properties changed: -x to +x) === modified file 'test/my_curext.c' (properties changed: -x to +x) === modified file 'test/my_cursor.c' (properties changed: -x to +x) === modified file 'test/my_datetime.c' (properties changed: -x to +x) === modified file 'test/my_desc.c' (properties changed: -x to +x) === modified file 'test/my_dyn_cursor.c' (properties changed: -x to +x) === modified file 'test/my_error.c' (properties changed: -x to +x) === modified file 'test/my_info.c' (properties changed: -x to +x) === modified file 'test/my_keys.c' (properties changed: -x to +x) === modified file 'test/my_param.c' (properties changed: -x to +x) === modified file 'test/my_prepare.c' (properties changed: -x to +x) === modified file 'test/my_relative.c' (properties changed: -x to +x) === modified file 'test/my_result.c' (properties changed: -x to +x) === modified file 'test/my_scroll.c' (properties changed: -x to +x) === modified file 'test/my_tran.c' (properties changed: -x to +x) === modified file 'test/my_types.c' (properties changed: -x to +x) === modified file 'test/my_unicode.c' (properties changed: -x to +x) === modified file 'test/my_unixodbc.c' (properties changed: -x to +x) === modified file 'test/my_use_result.c' (properties changed: -x to +x) === modified file 'test/odbctap.h' (properties changed: -x to +x) === modified file 'test/unit.pl' (properties changed: -x to +x) === modified file 'util/CMakeLists.txt' (properties changed: -x to +x) === removed file 'util/MYODBCUtil.h' --- util/MYODBCUtil.h 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtil.h 2010-02-17 18:02:01 +0000 @@ -196,6 +196,7 @@ char *pszSOCKET; /* Unix socket file or Windows named pipe to connect to. */ char *pszSTMT; /* Statement that will be exec when connecting to MySQL. */ char *pszOPTION; /* Options that specify how MyODBC should work. */ + BOOL bINTERACTIVE; /* ODBC option for client_interactive connection option */ char *pszSSLKEY; /* pathname to SSL key file */ char *pszSSLCERT; /* pathname to SSL certificate file */ === modified file 'util/MYODBCUtilAllocDataSource.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilAllocDriver.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilClearDataSource.c' (properties changed: -x to +x) --- util/MYODBCUtilClearDataSource.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilClearDataSource.c 2010-02-17 18:01:34 +0000 @@ -135,4 +135,5 @@ pDataSource->pszCHARSET= NULL; } + pDataSource->bINTERACTIVE= FALSE; } === modified file 'util/MYODBCUtilClearDriver.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilDSNExists.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilDefaultDataSource.c' (properties changed: -x to +x) --- util/MYODBCUtilDefaultDataSource.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilDefaultDataSource.c 2010-02-17 18:02:57 +0000 @@ -106,6 +106,8 @@ pDataSource->pszCHARSET= NULL; } + pDataSource->bINTERACTIVE= FALSE; + #ifndef _UNIX_ /* Here we actually unset socket for non-UNIX as it does not apply. */ if ( pDataSource->pszSOCKET && !pDataSource->pszSOCKET[0] ) === modified file 'util/MYODBCUtilFreeDataSource.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilFreeDriver.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilGetDataSourceNames.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilGetDriverNames.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilGetIniFileName.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilInsertStr.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilReadConnectStr.c' (properties changed: -x to +x) --- util/MYODBCUtilReadConnectStr.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilReadConnectStr.c 2010-02-18 10:39:14 +0000 @@ -137,6 +137,13 @@ if ( !pDataSource->pszOPTION ) pDataSource->pszOPTION = (char *)_global_strndup( pAnchorChar, pScanChar - pAnchorChar ); } + else if( strcasecmp( pszName, "INTERACTIVE" ) == 0 ) + { + char tmp= *pScanChar; + *pScanChar= '\0'; + pDataSource->bINTERACTIVE= (atol(pAnchorChar) != 0); + *pScanChar= tmp; + } /* MYODBC RULE === modified file 'util/MYODBCUtilReadDataSource.c' (properties changed: -x to +x) --- util/MYODBCUtilReadDataSource.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilReadDataSource.c 2010-02-18 10:39:14 +0000 @@ -167,6 +167,10 @@ if ( !pDataSource->pszOPTION ) pDataSource->pszOPTION = _global_strdup( szValue ); } + else if ( strcasecmp( pszEntryName, "INTERACTIVE" ) == 0 ) + { + pDataSource->bINTERACTIVE= (atol(szValue) != 0); + } else if ( strcasecmp( pszEntryName, "PWD" ) == 0 || strcasecmp( pszEntryName, "PASSWORD" ) == 0 ) { if ( !pDataSource->pszPASSWORD ) === modified file 'util/MYODBCUtilReadDataSourceStr.c' (properties changed: -x to +x) --- util/MYODBCUtilReadDataSourceStr.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilReadDataSourceStr.c 2010-02-18 10:39:54 +0000 @@ -222,6 +222,13 @@ if ( !pDataSource->pszOPTION ) pDataSource->pszOPTION = (char *)_global_strndup( pAnchorChar, pScanChar - pAnchorChar ); } + else if ( strcasecmp( pszName, "INTERACTIVE" ) == 0 ) + { + char tmp= *pScanChar; + *pScanChar= '\0'; + pDataSource->bINTERACTIVE= (atol(pAnchorChar) != 0); + *pScanChar= tmp; + } /* MYODBC RULE === modified file 'util/MYODBCUtilReadDriver.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilWriteConnectStr.c' (properties changed: -x to +x) --- util/MYODBCUtilWriteConnectStr.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilWriteConnectStr.c 2010-02-18 10:48:31 +0000 @@ -86,6 +86,14 @@ return FALSE; } + if ( pDataSource->bINTERACTIVE ) + { + if ( !MYODBCUtilInsertStr( pszStr, "INTERACTIVE=1", nMaxLen, &nIndex ) ) + return FALSE; + if ( nIndex && !MYODBCUtilInsertStr( pszStr, ";", nMaxLen, &nIndex ) ) + return FALSE; + } + if ( pDataSource->pszPASSWORD ) { if ( !MYODBCUtilInsertStr( pszStr, "PWD=", nMaxLen, &nIndex ) ) === modified file 'util/MYODBCUtilWriteDataSource.c' (properties changed: -x to +x) === modified file 'util/MYODBCUtilWriteDataSourceStr.c' (properties changed: -x to +x) --- util/MYODBCUtilWriteDataSourceStr.c 2010-01-31 00:29:06 +0000 +++ util/MYODBCUtilWriteDataSourceStr.c 2010-02-18 10:57:07 +0000 @@ -107,6 +107,14 @@ return FALSE; } + if ( pDataSource->bINTERACTIVE ) + { + MYODBCUTILWRITEDATASOURCESTR_DELIM; + + if ( !MYODBCUtilInsertStr( pszStr, "INTERACTIVE=1", nMaxLen, &nIndex ) ) + return FALSE; + } + if ( pDataSource->pszPASSWORD ) { MYODBCUTILWRITEDATASOURCESTR_DELIM; === modified file 'util/MYODBCUtilWriteDriver.c' (properties changed: -x to +x) === modified file 'util/installer.c' (properties changed: -x to +x) --- util/installer.c 2010-01-31 00:29:06 +0000 +++ util/installer.c 2010-02-16 21:38:01 +0000 @@ -162,6 +162,9 @@ {'N','O','_','B','I','N','A','R','Y','_','R','E','S','U','L','T',0}; static SQLWCHAR W_DFLT_BIGINT_BIND_STR[]= {'D','F','L','T','_','B','I','G','I','N','T','_','B','I','N','D','_','S','T','R',0}; +static SQLWCHAR W_CLIENT_INTERACTIVE[]= + {'I','N','T','E','R','A','C','T','I','V','E',0}; + /* DS_PARAM */ /* externally used strings */ const SQLWCHAR W_DRIVER_PARAM[]= {';', 'D', 'R', 'I', 'V', 'E', 'R', '=', 0}; @@ -188,7 +191,8 @@ W_FORWARD_CURSOR, W_AUTO_RECONNECT, W_AUTO_IS_NULL, W_ZERO_DATE_TO_MIN, W_MIN_DATE_TO_ZERO, W_MULTI_STATEMENTS, W_COLUMN_SIZE_S32, - W_NO_BINARY_RESULT, W_DFLT_BIGINT_BIND_STR}; + W_NO_BINARY_RESULT, W_DFLT_BIGINT_BIND_STR, + W_CLIENT_INTERACTIVE}; static const int dsnparamcnt= sizeof(dsnparams) / sizeof(SQLWCHAR *); /* DS_PARAM */ @@ -738,6 +742,8 @@ *intdest= &ds->readtimeout; else if (!sqlwcharcasecmp(W_WRITETIMEOUT, param)) *intdest= &ds->writetimeout; + else if (!sqlwcharcasecmp(W_CLIENT_INTERACTIVE, param)) + *intdest= &ds->clientinteractive; else if (!sqlwcharcasecmp(W_FOUND_ROWS, param)) *booldest= &ds->return_matching_rows; @@ -1200,6 +1206,7 @@ if (ds_add_intprop(ds->name, W_PORT , ds->port )) goto error; if (ds_add_intprop(ds->name, W_READTIMEOUT, ds->readtimeout)) goto error; if (ds_add_intprop(ds->name, W_WRITETIMEOUT, ds->writetimeout)) goto error; + if (ds_add_intprop(ds->name, W_CLIENT_INTERACTIVE, ds->clientinteractive)) goto error; if (ds_add_intprop(ds->name, W_FOUND_ROWS, ds->return_matching_rows)) goto error; if (ds_add_intprop(ds->name, W_BIG_PACKETS, ds->allow_big_results)) goto error; === modified file 'util/installer.h' (properties changed: -x to +x) --- util/installer.h 2010-01-31 00:29:06 +0000 +++ util/installer.h 2010-02-16 21:38:01 +0000 @@ -90,6 +90,7 @@ unsigned int port; unsigned int readtimeout; unsigned int writetimeout; + unsigned int clientinteractive; SQLCHAR *name8; SQLCHAR *driver8; === modified file 'util/odbcinstw.c' (properties changed: -x to +x) === modified file 'util/stringutil.c' (properties changed: -x to +x) === modified file 'util/stringutil.h' (properties changed: -x to +x) === modified file 'util/unicode_transcode.c' (properties changed: -x to +x) === modified file 'wix/CMakeLists.txt' (properties changed: -x to +x) === modified file 'wix/cmake/FindWix.cmake' (properties changed: -x to +x) === modified file 'wix/cmake/getodbcversion.c' (properties changed: -x to +x) === modified file 'wix/mysql_common_ui.xml' (properties changed: -x to +x) === modified file 'wix/mysql_odbc.xml' (properties changed: -x to +x) === modified file 'wix/mysql_odbc_fragment.xml' (properties changed: -x to +x)