List:Commits« Previous MessageNext Message »
From:jbalint Date:November 2 2007 4:37pm
Subject:Connector/ODBC 3.51 commit: r833 - in branches/guffert: driver util wingui wingui/dialog wingui/odbcdialogparams
View as plain text  
Added:
   branches/guffert/wingui/dialog/callbacks.c
   branches/guffert/wingui/dialog/utils.c
Removed:
   branches/guffert/wingui/dialog/callbacks.cpp
   branches/guffert/wingui/dialog/utils.cpp
Modified:
   branches/guffert/driver/connect.c
   branches/guffert/util/CMakeLists.txt
   branches/guffert/wingui/CMakeLists.txt
   branches/guffert/wingui/ConfigDSN.c
   branches/guffert/wingui/dialog/callbacks.h
   branches/guffert/wingui/dialog/utils.h
   branches/guffert/wingui/myodbc5S.def
   branches/guffert/wingui/odbcdialogparams/odbcdialogparams.cpp
   branches/guffert/wingui/odbcdialogparams/odbcdialogparams.h
Log:
updated utils and callbacks in wingui to be pure C, and some small fixes
added most things needed for prompting with wingui

Modified: branches/guffert/driver/connect.c
===================================================================
--- branches/guffert/driver/connect.c	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/driver/connect.c	2007-11-02 16:37:36 UTC (rev 833)
@@ -43,6 +43,7 @@
 # define CLIENT_NO_SCHEMA      16
 #endif
 
+#define USE_LEGACY_ODBC_GUI
 
 /**
   Get the connection flags based on the driver options.
@@ -433,8 +434,10 @@
   DataSource *ds= ds_new();
   /* We may have to read driver info to find the setup library. */
   Driver *pDriver= driver_new();
+#ifdef USE_LEGACY_ODBC_GUI
   /* Legacy setup lib, used for prompting, will be deprecated by native guis */
   MYODBCUTIL_DATASOURCE *oldds=
MYODBCUtilAllocDataSource(MYODBCUTIL_DATASOURCE_MODE_DRIVER_CONNECT);
+#endif /* USE_LEGACY_ODBC_GUI */
   BOOL bPrompt= FALSE;
   HMODULE hModule= NULL;
   unsigned long options;
@@ -483,26 +486,17 @@
   switch (fDriverCompletion)
   {
   case SQL_DRIVER_PROMPT:
-    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_PROMPT;
     bPrompt= TRUE;
     break;
 
   case SQL_DRIVER_COMPLETE:
-    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_COMPLETE;
-    if (myodbc_do_connect(dbc, ds) == SQL_SUCCESS)
-      goto connected;
-    bPrompt= TRUE;
-    break;
-
   case SQL_DRIVER_COMPLETE_REQUIRED:
-    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_REQUIRED;
     if (myodbc_do_connect(dbc, ds) == SQL_SUCCESS)
       goto connected;
     bPrompt= TRUE;
     break;
 
   case SQL_DRIVER_NOPROMPT:
-    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_NOPROMPT;
     bPrompt= FALSE;
     break;
 
@@ -511,6 +505,25 @@
     goto error;
   }
 
+#ifdef USE_LEGACY_ODBC_GUI
+  /* set prompt type for legacy GUI code */
+  switch (fDriverCompletion)
+  {
+  case SQL_DRIVER_PROMPT:
+    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_PROMPT;
+    break;
+  case SQL_DRIVER_COMPLETE:
+    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_COMPLETE;
+    break;
+  case SQL_DRIVER_COMPLETE_REQUIRED:
+    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_REQUIRED;
+    break;
+  case SQL_DRIVER_NOPROMPT:
+    oldds->nPrompt= MYODBCUTIL_DATASOURCE_PROMPT_NOPROMPT;
+    break;
+  }
+#endif /* USE_LEGACY_ODBC_GUI */
+
 #ifdef __APPLE__
   /*
     We don't support prompting on Mac OS X, because Qt requires that
@@ -529,7 +542,11 @@
 
   if (bPrompt)
   {
+#ifndef USE_LEGACY_ODBC_GUI
+    BOOL (*pFunc)(SQLHWND, SQLWCHAR *, SQLUSMALLINT, SQLWCHAR *, SQLINTEGER);
+#else /* USE_LEGACY_ODBC_GUI */
     BOOL (*pFunc)(SQLHDBC, SQLHWND, MYODBCUTIL_DATASOURCE *);
+#endif /* USE_LEGACY_ODBC_GUI */
 
     /*
      We can not present a prompt unless we can lookup the name of the setup
@@ -540,8 +557,7 @@
      connect with a DSN which does not exist. A possible solution would be to
      hard-code some fall-back value for ds->pszDRIVER.
     */
-    /* TODO support pszDriverFileName somewhere? */
-    if (!ds->driver /*&& !ds->pszDriverFileName*/)
+    if (!ds->driver)
     {
       char szError[1024];
       sprintf(szError,
@@ -605,13 +621,17 @@
       goto error;
     }
 
+#ifndef USE_LEGACY_ODBC_GUI
+    pFunc= (BOOL (*)(SQLHWND, SQLWCHAR *, SQLUSMALLINT, SQLWCHAR *, SQLINTEGER))
+      GetProcAddress(hModule, "Driver_Prompt");
+#else /* USE_LEGACY_ODBC_GUI */
     /*
        The setup library should expose a MYODBCSetupDriverConnect() C entry point
        for us to call.
     */
-    /* TODO new name? args? */
     pFunc= (BOOL (*)(SQLHDBC, SQLHWND, MYODBCUTIL_DATASOURCE *))
       GetProcAddress(hModule, "MYODBCSetupDriverConnect");
+#endif /* USE_LEGACY_ODBC_GUI */
 
     if (pFunc == NULL)
     {
@@ -630,6 +650,16 @@
       goto error;
     }
 
+#ifndef USE_LEGACY_ODBC_GUI
+    /* TODO new */
+    /* Prompt. Function returns false if user cancels.  */
+    //if (!pFunc(hdbc, hwnd, NULL))
+    {
+      set_dbc_error(hdbc, "HY000", "User cancelled.", 0);
+      rc= SQL_ERROR;
+      goto error;
+    }
+#else /* USE_LEGACY_ODBC_GUI */
     /* Copy to the legacy data source structure for prompting */
     if (ds->name)
       oldds->pszDSN=         _global_strdup(ds_get_utf8attr(ds->name,
&ds->name8));
@@ -701,6 +731,7 @@
       ds_setattr_from_utf8(&ds->charset, oldds->pszCHARSET);
     if (oldds->pszPORT)
       ds->port= strtoul(oldds->pszPORT, NULL, 10);
+#endif /* USE_LEGACY_ODBC_GUI */
   }
 
   if ((rc= myodbc_do_connect(dbc, ds)) != SQL_SUCCESS)
@@ -742,7 +773,9 @@
 
   driver_delete(pDriver);
   ds_delete(ds);
+#ifdef USE_LEGACY_ODBC_GUI
   MYODBCUtilFreeDataSource(oldds);
+#endif /* USE_LEGACY_ODBC_GUI */
 
   return rc;
 }

Modified: branches/guffert/util/CMakeLists.txt
===================================================================
--- branches/guffert/util/CMakeLists.txt	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/util/CMakeLists.txt	2007-11-02 16:37:36 UTC (rev 833)
@@ -20,12 +20,14 @@
 
 ##########################################################################
 
-ADD_LIBRARY(myodbc3u STATIC
-                        stringutil.c
-                        stringutil.h
-                        unicode_transcode.c
-                        installer.c
-                        installer.h
+SET(myodbc3u_SRCS stringutil.c
+                  stringutil.h
+                  unicode_transcode.c
+                  installer.c
+                  installer.h)
+
+#IF(NOT WIN32)
+  SET(myodbc3u_SRCS ${myodbc3u_SRCS}
                         MYODBCUtilAllocDataSource.c
                         MYODBCUtilAllocDriver.c
                         MYODBCUtilClearDataSource.c
@@ -46,6 +48,9 @@
                         MYODBCUtilWriteDataSource.c
                         MYODBCUtilWriteDataSourceStr.c
                         MYODBCUtilWriteDriver.c)
+#ENDIF(NOT WIN32)
 
+ADD_LIBRARY(myodbc3u STATIC ${myodbc3u_SRCS})
+
 TARGET_LINK_LIBRARIES(myodbc3u ${ODBCINSTLIB})
 

Modified: branches/guffert/wingui/CMakeLists.txt
===================================================================
--- branches/guffert/wingui/CMakeLists.txt	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/CMakeLists.txt	2007-11-02 16:37:36 UTC (rev 833)
@@ -23,9 +23,9 @@
 ADD_DEFINITIONS(-DUNICODE -D_UNICODE)
 
 ADD_LIBRARY(myodbc5S SHARED
-    dialog/callbacks.cpp
+    dialog/callbacks.c
     dialog/callbacks.h
-    dialog/utils.cpp
+    dialog/utils.c
     dialog/utils.h
     odbcdialogparams/main.cpp
     odbcdialogparams/odbcdialogparams.cpp
@@ -41,6 +41,7 @@
 
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/util)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/driver)
 
 TARGET_LINK_LIBRARIES(myodbc5S
 		myodbc3u ${ODBCLIB} ${ODBCINSTLIB} ${MYSQL_CLIENT_LIBS}

Modified: branches/guffert/wingui/ConfigDSN.c
===================================================================
--- branches/guffert/wingui/ConfigDSN.c	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/ConfigDSN.c	2007-11-02 16:37:36 UTC (rev 833)
@@ -27,6 +27,55 @@
 #include "stringutil.h"
 #include "odbcdialogparams/odbcdialogparams.h"
 
+/* TODO no L"" */
+static SQLWCHAR *W_INVALID_ATTR_STR = L"Invalid attribute string";
+static SQLWCHAR *W_USER_CANCELLED = L"User cancelled";
+
+BOOL Driver_Prompt(HWND hWnd, SQLWCHAR *instr, SQLUSMALLINT completion,
+                   SQLWCHAR *outstr, SQLINTEGER outmax, SQLINTEGER *outlen)
+{
+  DataSource *ds= ds_new();
+  BOOL rc= FALSE;
+
+  /*
+     parse the attr string, dsn lookup will have already been
+     done in the driver
+  */
+  if (instr && *instr)
+  {
+    if (ds_from_kvpair(ds, instr, (SQLWCHAR)';'))
+    {
+      SQLPostInstallerError(ODBC_ERROR_INVALID_KEYWORD_VALUE,
+                            W_INVALID_ATTR_STR);
+      goto exit;
+    }
+  }
+
+  /* TODO make sure the ds->driver is ok, for Test,etc */
+  /* Show the dialog and handle result */
+  if (ShowOdbcParamsDialog(ds, hWnd, TRUE) == 1)
+  {
+    /* serialize to outstr */
+    if ((*outlen= ds_to_kvpair(ds, outstr, outmax, (SQLWCHAR)';')) == -1)
+    {
+      /* truncated, up to caller to see outmax == *outlen */
+      *outlen= outmax;
+      outstr[outmax]= 0;
+    }
+    rc= TRUE;
+  }
+  else
+  {
+    SQLPostInstallerError(ODBC_ERROR_INVALID_KEYWORD_VALUE,
+                          W_USER_CANCELLED);
+  }
+
+exit:
+  ds_delete(ds);
+  return rc;
+}
+
+
 /*
    Add, edit, or remove a Data Source Name (DSN). This function is
    called by "Data Source Administrator" on Windows, or similar
@@ -39,15 +88,14 @@
   BOOL rc= TRUE;
   SQLWCHAR *driverfile;
 
-  if (*pszAttributes)
+  if (pszAttributes && *pszAttributes)
   {
     if (ds_from_kvpair(ds, pszAttributes, (SQLWCHAR)';'))
     {
-        SQLPostInstallerError(ODBC_ERROR_INVALID_KEYWORD_VALUE,
-                              /* TODO can't be long string */
-                              L"Invalid attribute string");
-        rc= FALSE;
-        goto exitConfigDSN;
+      SQLPostInstallerError(ODBC_ERROR_INVALID_KEYWORD_VALUE,
+                            W_INVALID_ATTR_STR);
+      rc= FALSE;
+      goto exitConfigDSN;
     }
     if (ds_lookup(ds))
     {
@@ -71,7 +119,7 @@
   {
   case ODBC_ADD_DSN:
   case ODBC_CONFIG_DSN:
-    if (ShowOdbcParamsDialog(ds, hWnd) == 1)
+    if (ShowOdbcParamsDialog(ds, hWnd, FALSE) == 1)
     {
       ds_set_strattr(&ds->driver, driverfile);
       /* save datasource */

Copied: branches/guffert/wingui/dialog/callbacks.c (from rev 831,
branches/guffert/wingui/dialog/callbacks.cpp)
===================================================================
--- branches/guffert/wingui/dialog/callbacks.c	                        (rev 0)
+++ branches/guffert/wingui/dialog/callbacks.c	2007-11-02 16:37:36 UTC (rev 833)
@@ -0,0 +1,124 @@
+/****************************************************************************
+ *                                                                          *
+ * File    : 						                                        *
+ *                                                                          *
+ * Purpose : GUI Callbacks                                                  *
+ *                                                                          *
+ * History : Date      Reason                                               *
+ *           00/00/00  Created                                              *
+ *                                                                          *
+ ****************************************************************************/
+
+#include "callbacks.h"
+#include "stringutil.h"
+
+WCHAR **		errorMsgs		= NULL;
+
+SQLHDBC			hDBC			= SQL_NULL_HDBC;
+
+wchar_t * mytest(HWND hwnd, DataSource* params)
+{
+	SQLHDBC hDbc = hDBC;
+	SQLHENV hEnv = SQL_NULL_HENV;
+  wchar_t *rc;
+
+	if ( SQL_SUCCEEDED( Connect( &hDbc, &hEnv, params ) ) )
+		rc= sqlwchardup(L"Connection successful", SQL_NTS);
+	else
+	{
+        SQLWCHAR state[10];
+        SQLINTEGER native;
+        SQLSMALLINT len;
+        rc= (wchar_t *) my_malloc(512 * sizeof(SQLWCHAR), MYF(0));
+        *rc= 0;
+
+        wcscat(rc, L"Connection Failed");
+        len= sqlwcharlen(rc);
+        if (SQL_SUCCEEDED(SQLGetDiagRecW(SQL_HANDLE_DBC, hDbc, 1, state,
+                                         &native, rc + len + 10,
+                                         512 - len - 11, &len)))
+        {
+          wcscat(rc, L": [");
+          len= sqlwcharlen(rc);
+          sqlwcharncpy(rc + len, state, 6);
+          *(rc + sqlwcharlen(rc) + 1) = ' ';
+          *(rc + sqlwcharlen(rc)) = ']';
+        }
+	}
+
+	Disconnect( hDbc, hEnv );
+  return rc;
+}
+
+BOOL mytestaccept(HWND hwnd, DataSource* params)
+{
+    /* TODO validation */
+	return TRUE;
+}
+
+LIST *mygetdatabases(HWND hwnd, DataSource* params)
+{
+	SQLHENV     hEnv        = SQL_NULL_HENV;
+	SQLHDBC     hDbc        = hDBC;
+	SQLHSTMT    hStmt;
+	SQLRETURN   nReturn;
+	SQLWCHAR     szCatalog[MYODBC_DB_NAME_MAX];
+	SQLLEN      nCatalog;
+    LIST *dbs= NULL;
+
+	nReturn = Connect( &hDbc, &hEnv, params );
+
+	if ( nReturn != SQL_SUCCESS )
+		ShowDiagnostics( nReturn, SQL_HANDLE_DBC, hDbc );
+	if ( !SQL_SUCCEEDED(nReturn) )
+    {
+		Disconnect( hDbc,hEnv );
+        return NULL;
+    }
+
+	nReturn = SQLAllocHandle( SQL_HANDLE_STMT, hDbc, &hStmt );
+	if ( nReturn != SQL_SUCCESS )
+		ShowDiagnostics( nReturn, SQL_HANDLE_DBC, hDbc );
+	if ( !SQL_SUCCEEDED(nReturn) )
+    {
+		Disconnect( hDbc,hEnv );
+        return NULL;
+    }
+
+	nReturn = SQLTablesW( hStmt, (SQLWCHAR*)SQL_ALL_CATALOGS, SQL_NTS, (SQLWCHAR*)L"",
SQL_NTS, (SQLWCHAR*)L"", 0, (SQLWCHAR*)L"", 0 );
+
+	if ( nReturn != SQL_SUCCESS )
+		ShowDiagnostics( nReturn, SQL_HANDLE_STMT, hStmt );
+	if ( !SQL_SUCCEEDED(nReturn) )
+    {
+    SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
+		Disconnect( hDbc, hEnv );
+        return NULL;
+    }
+
+	nReturn = SQLBindCol( hStmt, 1, SQL_C_WCHAR, szCatalog, MYODBC_DB_NAME_MAX,
&nCatalog );
+	while ( TRUE )
+	{
+		nReturn = SQLFetch( hStmt );
+
+		if ( nReturn == SQL_NO_DATA )
+			break;
+		else if ( nReturn != SQL_SUCCESS )
+			ShowDiagnostics( nReturn, SQL_HANDLE_STMT, hStmt );
+		if ( SQL_SUCCEEDED(nReturn) )
+			dbs= list_cons(sqlwchardup(szCatalog, SQL_NTS), dbs);
+		else
+			break;
+	}
+
+	SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
+	Disconnect( hDbc, hEnv );
+
+	return list_reverse(dbs);
+}
+
+void myhelp(HWND hwnd)
+{
+    /** TODO: Rewrite - Shouldn't be windows stuff here */
+	MessageBoxW(hwnd, L"HELP", L"Sorry, Help is not Available", MB_OK);
+}

Deleted: branches/guffert/wingui/dialog/callbacks.cpp
===================================================================
--- branches/guffert/wingui/dialog/callbacks.cpp	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/dialog/callbacks.cpp	2007-11-02 16:37:36 UTC (rev 833)
@@ -1,117 +0,0 @@
-/****************************************************************************
- *                                                                          *
- * File    : 						                                        *
- *                                                                          *
- * Purpose : GUI Callbacks                                                  *
- *                                                                          *
- * History : Date      Reason                                               *
- *           00/00/00  Created                                              *
- *                                                                          *
- ****************************************************************************/
-
-#include "callbacks.h"
-#include "stringutil.h"
-
-WCHAR **		errorMsgs		= NULL;
-
-SQLHDBC			hDBC			= SQL_NULL_HDBC;
-
-wchar_t * mytest(HWND hwnd, DataSource* params)
-{
-	SQLHDBC hDbc = hDBC;
-	SQLHENV hEnv = SQL_NULL_HENV;
-
-	if ( SQL_SUCCEEDED( Connect( hDbc, hEnv, params ) ) )
-		return sqlwchardup(L"Connection successful", SQL_NTS);
-	else
-	{
-        wchar_t *tmp= (wchar_t *) my_malloc(512 * sizeof(SQLWCHAR), MYF(0));
-        SQLWCHAR state[10];
-        SQLINTEGER native;
-        SQLSMALLINT len;
-        *tmp= 0;
-
-        wcscat(tmp, L"Connection Failed: [");
-        len= sqlwcharlen(tmp);
-        SQLGetDiagRecW(SQL_HANDLE_DBC, hDbc, 1, state, &native,
-                       tmp + len + 7, 512 - len - 8, &len);
-        sqlwcharncpy(tmp + sqlwcharlen(tmp), state, 6);
-        *(tmp + sqlwcharlen(tmp) + 1) = ' ';
-        *(tmp + sqlwcharlen(tmp)) = ']';
-
-        return tmp;
-	}
-
-	Disconnect( hDbc, hEnv );
-}
-
-BOOL mytestaccept(HWND hwnd, DataSource* params)
-{
-    /* TODO validation */
-	return TRUE;
-}
-
-LIST *mygetdatabases(HWND hwnd, DataSource* params)
-{
-	SQLHENV     hEnv        = SQL_NULL_HENV;
-	SQLHDBC     hDbc        = hDBC;
-	SQLHSTMT    hStmt;
-	SQLRETURN   nReturn;
-	SQLWCHAR     szCatalog[MYODBC_DB_NAME_MAX];
-	SQLLEN      nCatalog;
-    LIST *dbs= NULL;
-
-	nReturn = Connect( hDbc, hEnv, params );
-
-	if ( nReturn != SQL_SUCCESS )
-		ShowDiagnostics( nReturn, SQL_HANDLE_DBC, hDbc );
-	if ( !SQL_SUCCEEDED(nReturn) )
-    {
-		Disconnect( hDbc,hEnv );
-        return NULL;
-    }
-
-	nReturn = SQLAllocHandle( SQL_HANDLE_STMT, hDbc, &hStmt );
-	if ( nReturn != SQL_SUCCESS )
-		ShowDiagnostics( nReturn, SQL_HANDLE_DBC, hDbc );
-	if ( !SQL_SUCCEEDED(nReturn) )
-    {
-		Disconnect( hDbc,hEnv );
-        return NULL;
-    }
-
-	nReturn = SQLTablesW( hStmt, (SQLWCHAR*)SQL_ALL_CATALOGS, SQL_NTS, (SQLWCHAR*)L"",
SQL_NTS, (SQLWCHAR*)L"", 0, (SQLWCHAR*)L"", 0 );
-
-	if ( nReturn != SQL_SUCCESS )
-		ShowDiagnostics( nReturn, SQL_HANDLE_STMT, hStmt );
-	if ( !SQL_SUCCEEDED(nReturn) )
-    {
-		Disconnect( hStmt, hDbc, hEnv );
-        return NULL;
-    }
-
-	nReturn = SQLBindCol( hStmt, 1, SQL_C_WCHAR, szCatalog, MYODBC_DB_NAME_MAX,
&nCatalog );
-	while ( TRUE )
-	{
-		nReturn = SQLFetch( hStmt );
-
-		if ( nReturn == SQL_NO_DATA )
-			break;
-		else if ( nReturn != SQL_SUCCESS )
-			ShowDiagnostics( nReturn, SQL_HANDLE_STMT, hStmt );
-		if ( SQL_SUCCEEDED(nReturn) )
-			dbs= list_cons(sqlwchardup(szCatalog, SQL_NTS), dbs);
-		else
-			break;
-	}
-
-	Disconnect( hStmt, hDbc, hEnv );
-
-	return list_reverse(dbs);
-}
-
-void myhelp(HWND hwnd)
-{
-    /** TODO: Rewrite - Shouldn't be windows stuff here */
-	MessageBoxW(hwnd, L"HELP", L"Sorry, Help is not Available", MB_OK);
-}

Modified: branches/guffert/wingui/dialog/callbacks.h
===================================================================
--- branches/guffert/wingui/dialog/callbacks.h	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/dialog/callbacks.h	2007-11-02 16:37:36 UTC (rev 833)
@@ -8,6 +8,10 @@
 #include "MYODBC_MYSQL.h"
 #include "utils.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Max DB name len, used when retrieving database list */
 #define MYODBC_DB_NAME_MAX 255
 
@@ -16,4 +20,8 @@
 LIST *mygetdatabases(HWND hwnd, DataSource* params);
 void myhelp(HWND hwnd);
 
+#ifdef __cplusplus
+}
 #endif
+
+#endif

Copied: branches/guffert/wingui/dialog/utils.c (from rev 831,
branches/guffert/wingui/dialog/utils.cpp)
===================================================================
--- branches/guffert/wingui/dialog/utils.c	                        (rev 0)
+++ branches/guffert/wingui/dialog/utils.c	2007-11-02 16:37:36 UTC (rev 833)
@@ -0,0 +1,213 @@
+/****************************************************************************
+ *                                                                          *
+ * File    : 						                               *
+ *                                                                          *
+ * Purpose : utilities for callbacks.							*
+ *                                                                          *
+ * History : Date      Reason                                               *
+ *           00/00/00  Created                                              *
+ *                                                                          *
+ ****************************************************************************/
+
+/** couple of temporary hacks to make it compile here*/
+/*typedef char	byte;*/
+#ifdef _WIN32
+#include <winsock2.h>
+#endif
+/** end hacks */
+
+#include <sql.h>
+
+#include "utils.h"
+
+#include "driver.h"
+#include "stringutil.h"
+
+
+extern	SQLHDBC			hDBC;
+extern	WCHAR **		errorMsgs;
+
+void DecompileOptions(DataSource *params)
+{
+	ulong nOptions = sqlwchartoul( params->option );
+
+    params->dont_optimize_column_width=				(nOptions & FLAG_FIELD_LENGTH) > 0;
+    params->return_matching_rows=                    (nOptions & FLAG_FOUND_ROWS)
> 0;  /* 2 */
+	params->allow_big_results=						(nOptions & FLAG_BIG_PACKETS) > 0;
+	params->dont_prompt_upon_connect=				(nOptions & FLAG_NO_PROMPT) > 0;
+	params->enable_dynamic_cursor=					(nOptions & FLAG_DYNAMIC_CURSOR) > 0;
+	params->ignore_N_in_name_table=					(nOptions & FLAG_NO_SCHEMA) > 0;
+	params->user_manager_cursor=						(nOptions & FLAG_NO_DEFAULT_CURSOR) > 0;
+	params->dont_use_set_locale=						(nOptions & FLAG_NO_LOCALE) > 0;
+	params->pad_char_to_full_length=					(nOptions & FLAG_PAD_SPACE) > 0;
+	params->return_table_names_for_SqlDesribeCol=    (nOptions &
FLAG_FULL_COLUMN_NAMES) > 0;
+	params->use_compressed_protocol=					(nOptions & FLAG_COMPRESSED_PROTO) > 0;
+	params->ignore_space_after_function_names=		(nOptions & FLAG_IGNORE_SPACE) >
0; 
+	params->force_use_of_named_pipes=				(nOptions & FLAG_NAMED_PIPE) > 0;        
 
+	params->change_bigint_columns_to_int=			(nOptions & FLAG_NO_BIGINT) > 0;
+	params->no_catalog=								(nOptions & FLAG_NO_CATALOG) > 0;
+	params->read_options_from_mycnf=					(nOptions & FLAG_USE_MYCNF) > 0;         

+	params->safe=									(nOptions & FLAG_SAFE) > 0;
+	params->disable_transactions=					(nOptions & FLAG_NO_TRANSACTIONS) > 0;      
    
+	params->save_queries=							(nOptions & FLAG_LOG_QUERY) > 0;
+	params->dont_cache_result=						(nOptions & FLAG_NO_CACHE) > 0;
+	params->force_use_of_forward_only_cursors=		(nOptions & FLAG_FORWARD_CURSOR) >
0;  
+	params->enable_auto_reconnect=					(nOptions & FLAG_AUTO_RECONNECT) > 0;
+	params->enable_auto_increment_null_search=		(nOptions & FLAG_AUTO_IS_NULL ) >
0;
+}
+
+void FreeEnvHandle( SQLHENV hEnv )
+{
+	if ( hDBC == SQL_NULL_HDBC )
+		SQLFreeHandle( SQL_HANDLE_ENV, hEnv );
+}
+
+
+void Disconnect( SQLHDBC hDbc, SQLHENV hEnv  )
+{
+	SQLDisconnect( hDbc );
+
+	if ( hDBC == SQL_NULL_HDBC )
+		SQLFreeHandle( SQL_HANDLE_DBC, hDbc );
+
+	FreeEnvHandle( hEnv );
+}
+
+
+SQLRETURN Connect(SQLHDBC *hDbc, SQLHENV *hEnv, DataSource *params)
+{
+	SQLRETURN   nReturn;
+	SQLWCHAR      stringConnectIn[1024] = {0};
+
+	/* Blank out DSN name, otherwise it will pull the info from the registry */
+	ds_set_strattr(&params->name, NULL);
+
+    if (ds_to_kvpair(params, stringConnectIn, 1024-1, ';') == -1)
+    {
+        /* TODO error message..... */
+        return SQL_ERROR;
+    }
+
+	if ( hDBC == SQL_NULL_HDBC )
+	{
+		nReturn = SQLAllocHandle( SQL_HANDLE_ENV, NULL, hEnv );
+
+		if ( nReturn != SQL_SUCCESS )
+			ShowDiagnostics( nReturn, SQL_HANDLE_ENV, NULL );
+
+		if ( !SQL_SUCCEEDED(nReturn) )
+			return nReturn;
+
+		nReturn = SQLSetEnvAttr(*hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0 );
+
+		if ( nReturn != SQL_SUCCESS )
+			ShowDiagnostics( nReturn, SQL_HANDLE_ENV, NULL );
+
+		if ( !SQL_SUCCEEDED(nReturn) )
+		{
+			return nReturn;
+		}
+
+		nReturn = SQLAllocHandle( SQL_HANDLE_DBC, *hEnv, hDbc );
+		if ( nReturn != SQL_SUCCESS )
+			ShowDiagnostics( nReturn, SQL_HANDLE_ENV, *hEnv );
+		if ( !SQL_SUCCEEDED(nReturn) )
+		{
+			return nReturn;
+		}
+	}
+
+	nReturn = SQLDriverConnectW(*hDbc, NULL, (SQLWCHAR*)( stringConnectIn ), SQL_NTS, NULL,
0, NULL, SQL_DRIVER_NOPROMPT );
+
+	if ( nReturn != SQL_SUCCESS )
+		ShowDiagnostics( nReturn, SQL_HANDLE_DBC, *hDbc );
+
+	return nReturn;
+}
+
+
+void ShowDiagnostics( SQLRETURN nReturn, SQLSMALLINT nHandleType, SQLHANDLE h )
+{
+	BOOL        bDiagnostics = FALSE;
+	SQLSMALLINT nRec = 1;
+	SQLWCHAR     szSQLState[6];
+	SQLINTEGER  nNative;
+	SQLWCHAR     szMessage[SQL_MAX_MESSAGE_LENGTH];
+	SQLSMALLINT nMessage;
+
+	if ( h )
+	{
+		*szSQLState = '\0';
+		*szMessage  = '\0';
+
+		while ( SQL_SUCCEEDED( SQLGetDiagRecW( nHandleType,
+			h,
+			nRec,
+			szSQLState,
+			&nNative,
+			szMessage,
+			SQL_MAX_MESSAGE_LENGTH,
+			&nMessage ) ) )
+		{
+			szSQLState[5]               = '\0';
+			szMessage[SQL_MAX_MESSAGE_LENGTH - 1]  = '\0';
+
+
+			//add2list(errorMsgs, szMessage);
+
+			bDiagnostics = TRUE;
+			nRec++;
+
+			*szSQLState = '\0';
+			*szMessage  = '\0';
+		}
+	}
+
+	switch ( nReturn )
+	{
+	case SQL_ERROR:
+		//strAssign( popupMsg, L"Request returned with SQL_ERROR." );//, L"MYODBCConfig" );
+		break;
+	case SQL_SUCCESS_WITH_INFO:
+		//strAssign( popupMsg, L"Request return with SQL_SUCCESS_WITH_INFO." );//,
L"MYODBCConfig" );
+		break;
+	case SQL_INVALID_HANDLE:
+		//strAssign( popupMsg, L"Request returned with SQL_INVALID_HANDLE." );//,
L"MYODBCConfig" );
+		break;
+	default:
+		//strAssign( popupMsg, L"Request did not return with SQL_SUCCESS." );//,
L"MYODBCConfig" );
+		break;
+	}
+}
+
+
+unsigned long CompileOptions( DataSource * params )
+{
+	unsigned long nFlags = 0;
+
+    if (params->dont_optimize_column_width)				nFlags |= FLAG_FIELD_LENGTH;
+    if (params->return_matching_rows)                   nFlags |= FLAG_FOUND_ROWS;  /*
2 */
+    if (params->allow_big_results)						nFlags |= FLAG_BIG_PACKETS;
+    if (params->dont_prompt_upon_connect)				nFlags |= FLAG_NO_PROMPT;
+    if (params->enable_dynamic_cursor)					nFlags |= FLAG_DYNAMIC_CURSOR;
+    if (params->ignore_N_in_name_table)					nFlags |= FLAG_NO_SCHEMA;
+    if (params->user_manager_cursor)					nFlags |= FLAG_NO_DEFAULT_CURSOR;
+    if (params->dont_use_set_locale)					nFlags |= FLAG_NO_LOCALE;
+    if (params->pad_char_to_full_length)				nFlags |= FLAG_PAD_SPACE;
+    if (params->return_table_names_for_SqlDesribeCol)   nFlags |=
FLAG_FULL_COLUMN_NAMES;
+    if (params->use_compressed_protocol)				nFlags |= FLAG_COMPRESSED_PROTO;
+    if (params->ignore_space_after_function_names)		nFlags |= FLAG_IGNORE_SPACE; 
+    if (params->force_use_of_named_pipes)				nFlags |= FLAG_NAMED_PIPE;          
+    if (params->change_bigint_columns_to_int)			nFlags |= FLAG_NO_BIGINT;
+    if (params->no_catalog)								nFlags |= FLAG_NO_CATALOG;
+    if (params->read_options_from_mycnf)				nFlags |= FLAG_USE_MYCNF;          
+    if (params->safe)									nFlags |= FLAG_SAFE;
+    if (params->disable_transactions)					nFlags |= FLAG_NO_TRANSACTIONS;
+    if (params->save_queries)							nFlags |= FLAG_LOG_QUERY;
+    if (params->dont_cache_result)						nFlags |= FLAG_NO_CACHE;
+    if (params->force_use_of_forward_only_cursors)		nFlags |= FLAG_FORWARD_CURSOR;  
+    if (params->enable_auto_reconnect)					nFlags |= FLAG_AUTO_RECONNECT;
+    if (params->enable_auto_increment_null_search)		nFlags |= FLAG_AUTO_IS_NULL;
+
+	return nFlags;
+}

Deleted: branches/guffert/wingui/dialog/utils.cpp
===================================================================
--- branches/guffert/wingui/dialog/utils.cpp	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/dialog/utils.cpp	2007-11-02 16:37:36 UTC (rev 833)
@@ -1,224 +0,0 @@
-/****************************************************************************
- *                                                                          *
- * File    : 						                               *
- *                                                                          *
- * Purpose : utilities for callbacks.							*
- *                                                                          *
- * History : Date      Reason                                               *
- *           00/00/00  Created                                              *
- *                                                                          *
- ****************************************************************************/
-
-/*#include "stdafx.h"*/
-
-/** couple of temporary hacks to make it compile here*/
-/*typedef char	byte;*/
-#ifdef _WIN32
-#include <winsock2.h>
-#endif
-/** end hacks */
-
-#include <sql.h>
-
-#include "utils.h"
-
-#include "../driver/driver.h"
-#include "../util/stringutil.h"
-#include "../util/MYODBCUtil.h"
-
-
-extern	SQLHDBC			hDBC;
-extern	WCHAR **		errorMsgs;
-
-void DecompileOptions(DataSource *params)
-{
-	ulong nOptions = sqlwchartoul( params->option );
-
-    params->dont_optimize_column_width=				(nOptions & FLAG_FIELD_LENGTH) > 0;
-    params->return_matching_rows=                    (nOptions & FLAG_FOUND_ROWS)
> 0;  /* 2 */
-	params->allow_big_results=						(nOptions & FLAG_BIG_PACKETS) > 0;
-	params->dont_prompt_upon_connect=				(nOptions & FLAG_NO_PROMPT) > 0;
-	params->enable_dynamic_cursor=					(nOptions & FLAG_DYNAMIC_CURSOR) > 0;
-	params->ignore_N_in_name_table=					(nOptions & FLAG_NO_SCHEMA) > 0;
-	params->user_manager_cursor=						(nOptions & FLAG_NO_DEFAULT_CURSOR) > 0;
-	params->dont_use_set_locale=						(nOptions & FLAG_NO_LOCALE) > 0;
-	params->pad_char_to_full_length=					(nOptions & FLAG_PAD_SPACE) > 0;
-	params->return_table_names_for_SqlDesribeCol=    (nOptions &
FLAG_FULL_COLUMN_NAMES) > 0;
-	params->use_compressed_protocol=					(nOptions & FLAG_COMPRESSED_PROTO) > 0;
-	params->ignore_space_after_function_names=		(nOptions & FLAG_IGNORE_SPACE) >
0; 
-	params->force_use_of_named_pipes=				(nOptions & FLAG_NAMED_PIPE) > 0;        
 
-	params->change_bigint_columns_to_int=			(nOptions & FLAG_NO_BIGINT) > 0;
-	params->no_catalog=								(nOptions & FLAG_NO_CATALOG) > 0;
-	params->read_options_from_mycnf=					(nOptions & FLAG_USE_MYCNF) > 0;         

-	params->safe=									(nOptions & FLAG_SAFE) > 0;
-	params->disable_transactions=					(nOptions & FLAG_NO_TRANSACTIONS) > 0;      
    
-	params->save_queries=							(nOptions & FLAG_LOG_QUERY) > 0;
-	params->dont_cache_result=						(nOptions & FLAG_NO_CACHE) > 0;
-	params->force_use_of_forward_only_cursors=		(nOptions & FLAG_FORWARD_CURSOR) >
0;  
-	params->enable_auto_reconnect=					(nOptions & FLAG_AUTO_RECONNECT) > 0;
-	params->enable_auto_increment_null_search=		(nOptions & FLAG_AUTO_IS_NULL ) >
0;
-}
-
-void FreeEnvHandle( SQLHENV &hEnv )
-{
-	if ( hDBC == SQL_NULL_HDBC )
-		SQLFreeHandle( SQL_HANDLE_ENV, hEnv );
-}
-
-
-void Disconnect( SQLHDBC &hDbc, SQLHENV &hEnv  )
-{
-	SQLDisconnect( hDbc );
-
-	if ( hDBC == SQL_NULL_HDBC )
-		SQLFreeHandle( SQL_HANDLE_DBC, hDbc );
-
-	FreeEnvHandle( hEnv );
-}
-
-
-void Disconnect( SQLHSTMT &hStmt, SQLHDBC &hDbc, SQLHENV &hEnv  )
-{
-	SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
-
-	Disconnect( hDbc, hEnv );
-}
-
-
-SQLRETURN Connect( SQLHDBC  &   hDbc, SQLHENV   &  hEnv, DataSource * params )
-{
-	SQLRETURN   nReturn;
-	SQLWCHAR      stringConnectIn[1024] = {0};
-
-	/* Blank out DSN name, otherwise it will pull the info from the registry */
-	ds_set_strattr(&params->name, NULL);
-
-    if (ds_to_kvpair(params, stringConnectIn, 1024-1, ';') == -1)
-    {
-        /* TODO error message..... */
-        return SQL_ERROR;
-    }
-
-	if ( hDBC == SQL_NULL_HDBC )
-	{
-		nReturn = SQLAllocHandle( SQL_HANDLE_ENV, NULL, &hEnv );
-
-		if ( nReturn != SQL_SUCCESS )
-			ShowDiagnostics( nReturn, SQL_HANDLE_ENV, NULL );
-
-		if ( !SQL_SUCCEEDED(nReturn) )
-			return nReturn;
-
-		nReturn = SQLSetEnvAttr( hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0 );
-
-		if ( nReturn != SQL_SUCCESS )
-			ShowDiagnostics( nReturn, SQL_HANDLE_ENV, NULL );
-
-		if ( !SQL_SUCCEEDED(nReturn) )
-		{
-			return nReturn;
-		}
-
-		nReturn = SQLAllocHandle( SQL_HANDLE_DBC, hEnv, &hDbc );
-		if ( nReturn != SQL_SUCCESS )
-			ShowDiagnostics( nReturn, SQL_HANDLE_ENV, hEnv );
-		if ( !SQL_SUCCEEDED(nReturn) )
-		{
-			return nReturn;
-		}
-	}
-
-	nReturn = SQLDriverConnectW( hDbc, NULL, (SQLWCHAR*)( stringConnectIn ), SQL_NTS, NULL,
0, NULL, SQL_DRIVER_NOPROMPT );
-
-	if ( nReturn != SQL_SUCCESS )
-		ShowDiagnostics( nReturn, SQL_HANDLE_DBC, hDbc );
-
-	return nReturn;
-}
-
-
-void ShowDiagnostics( SQLRETURN nReturn, SQLSMALLINT nHandleType, SQLHANDLE h )
-{
-	BOOL        bDiagnostics = FALSE;
-	SQLSMALLINT nRec = 1;
-	SQLWCHAR     szSQLState[6];
-	SQLINTEGER  nNative;
-	SQLWCHAR     szMessage[SQL_MAX_MESSAGE_LENGTH];
-	SQLSMALLINT nMessage;
-
-	if ( h )
-	{
-		*szSQLState = '\0';
-		*szMessage  = '\0';
-
-		while ( SQL_SUCCEEDED( SQLGetDiagRecW( nHandleType,
-			h,
-			nRec,
-			szSQLState,
-			&nNative,
-			szMessage,
-			SQL_MAX_MESSAGE_LENGTH,
-			&nMessage ) ) )
-		{
-			szSQLState[5]               = '\0';
-			szMessage[SQL_MAX_MESSAGE_LENGTH - 1]  = '\0';
-
-
-			//add2list(errorMsgs, szMessage);
-
-			bDiagnostics = TRUE;
-			nRec++;
-
-			*szSQLState = '\0';
-			*szMessage  = '\0';
-		}
-	}
-
-	switch ( nReturn )
-	{
-	case SQL_ERROR:
-		//strAssign( popupMsg, L"Request returned with SQL_ERROR." );//, L"MYODBCConfig" );
-		break;
-	case SQL_SUCCESS_WITH_INFO:
-		//strAssign( popupMsg, L"Request return with SQL_SUCCESS_WITH_INFO." );//,
L"MYODBCConfig" );
-		break;
-	case SQL_INVALID_HANDLE:
-		//strAssign( popupMsg, L"Request returned with SQL_INVALID_HANDLE." );//,
L"MYODBCConfig" );
-		break;
-	default:
-		//strAssign( popupMsg, L"Request did not return with SQL_SUCCESS." );//,
L"MYODBCConfig" );
-		break;
-	}
-}
-
-
-unsigned long CompileOptions( DataSource * params )
-{
-	unsigned long nFlags = 0;
-
-    if (params->dont_optimize_column_width)				nFlags |= FLAG_FIELD_LENGTH;
-    if (params->return_matching_rows)                   nFlags |= FLAG_FOUND_ROWS;  /*
2 */
-    if (params->allow_big_results)						nFlags |= FLAG_BIG_PACKETS;
-    if (params->dont_prompt_upon_connect)				nFlags |= FLAG_NO_PROMPT;
-    if (params->enable_dynamic_cursor)					nFlags |= FLAG_DYNAMIC_CURSOR;
-    if (params->ignore_N_in_name_table)					nFlags |= FLAG_NO_SCHEMA;
-    if (params->user_manager_cursor)					nFlags |= FLAG_NO_DEFAULT_CURSOR;
-    if (params->dont_use_set_locale)					nFlags |= FLAG_NO_LOCALE;
-    if (params->pad_char_to_full_length)				nFlags |= FLAG_PAD_SPACE;
-    if (params->return_table_names_for_SqlDesribeCol)   nFlags |=
FLAG_FULL_COLUMN_NAMES;
-    if (params->use_compressed_protocol)				nFlags |= FLAG_COMPRESSED_PROTO;
-    if (params->ignore_space_after_function_names)		nFlags |= FLAG_IGNORE_SPACE; 
-    if (params->force_use_of_named_pipes)				nFlags |= FLAG_NAMED_PIPE;          
-    if (params->change_bigint_columns_to_int)			nFlags |= FLAG_NO_BIGINT;
-    if (params->no_catalog)								nFlags |= FLAG_NO_CATALOG;
-    if (params->read_options_from_mycnf)				nFlags |= FLAG_USE_MYCNF;          
-    if (params->safe)									nFlags |= FLAG_SAFE;
-    if (params->disable_transactions)					nFlags |= FLAG_NO_TRANSACTIONS;
-    if (params->save_queries)							nFlags |= FLAG_LOG_QUERY;
-    if (params->dont_cache_result)						nFlags |= FLAG_NO_CACHE;
-    if (params->force_use_of_forward_only_cursors)		nFlags |= FLAG_FORWARD_CURSOR;  
-    if (params->enable_auto_reconnect)					nFlags |= FLAG_AUTO_RECONNECT;
-    if (params->enable_auto_increment_null_search)		nFlags |= FLAG_AUTO_IS_NULL;
-
-	return nFlags;
-}

Modified: branches/guffert/wingui/dialog/utils.h
===================================================================
--- branches/guffert/wingui/dialog/utils.h	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/dialog/utils.h	2007-11-02 16:37:36 UTC (rev 833)
@@ -6,13 +6,19 @@
 
 #include <sql.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void				ShowDiagnostics		( SQLRETURN nReturn, SQLSMALLINT nHandleType, SQLHANDLE h );
-void				FreeEnvHandle		( SQLHENV &hEnv );
-void				Disconnect			( SQLHDBC &hDbc, SQLHENV &hEnv  );
-void				Disconnect			( SQLHSTMT &hStmt, SQLHDBC &hDbc, SQLHENV &hEnv  );
-//const myString &	buildConnectString	( DataSource* params );
-SQLRETURN			Connect				( SQLHDBC  &   hDbc, SQLHENV   &  hEnv, DataSource *
params );
+void				FreeEnvHandle		( SQLHENV hEnv );
+void				Disconnect			( SQLHDBC hDbc, SQLHENV hEnv  );
+SQLRETURN			Connect				( SQLHDBC *hDbc, SQLHENV *hEnv, DataSource *params );
 unsigned long		CompileOptions		( DataSource * params );
 void				DecompileOptions	( DataSource *src );
 
+#ifdef __cplusplus
+}
 #endif
+
+#endif

Modified: branches/guffert/wingui/myodbc5S.def
===================================================================
--- branches/guffert/wingui/myodbc5S.def	2007-11-01 17:33:36 UTC (rev 832)
+++ branches/guffert/wingui/myodbc5S.def	2007-11-02 16:37:36 UTC (rev 833)
@@ -1,4 +1,5 @@
 LIBRARY MYODBC5S.DLL
 EXPORTS
 ConfigDSNW
+Driver_Prompt
 ;

Modified: branches/guffert/wingui/odbcdialogparams/odbcdialogparams.cpp
===================================================================
--- branches/guffert/wingui/odbcdialogparams/odbcdialogparams.cpp	2007-11-01 17:33:36 UTC
(rev 832)
+++ branches/guffert/wingui/odbcdialogparams/odbcdialogparams.cpp	2007-11-02 16:37:36 UTC
(rev 833)
@@ -43,6 +43,8 @@
 static bool  BusyIndicator = false;
 
 static TABCTRL TabCtrl_1;
+/* Whether we are in SQLDriverConnect() prompt mode (used to disable fields) */
+static BOOL g_isPrompt;
 
 HelpButtonPressedCallbackType* gHelpButtonPressedCallback = NULL;
 
@@ -284,14 +286,14 @@
 {
 	syncData(hwnd, params );
 
+	if( TabCtrl_1.hTab )
+		syncTabsData(hwnd, params);
+
   /* pack option values into bitmap */
   unsigned long opts= CompileOptions(pParams);
   SQLWCHAR optstr[15];
   sqlwcharfromul(optstr, opts);
   ds_set_strattr(&pParams->option, optstr);
-
-	if( TabCtrl_1.hTab )
-		syncTabsData(hwnd, params);
 }
 
 void OnDialogClose();
@@ -562,6 +564,13 @@
     DecompileOptions( pParams );
 	syncForm(hwnd,*pParams);
 
+  /* Disable fields if in prompt mode */
+  if (g_isPrompt)
+  {
+    EnableWindow(GetDlgItem(hwnd, IDC_EDIT_name), FALSE);
+    EnableWindow(GetDlgItem(hwnd, IDC_EDIT_description), FALSE);
+  }
+
 	BOOL b = DoCreateDialogTooltip();
 	return 0;
 }
@@ -593,13 +602,14 @@
            0 if the dialog was closed or cancelled
 */
 extern "C"
-int ShowOdbcParamsDialog(DataSource* params, HWND ParentWnd)
+int ShowOdbcParamsDialog(DataSource* params, HWND ParentWnd, BOOL isPrompt)
 {
 	assert(!BusyIndicator);
 	InitStaticValues();
 
 	pParams=                    params;
 	pCaption=                   L"Dialog";
+  g_isPrompt= isPrompt;
 
   DialogBox(ghInstance, MAKEINTRESOURCE(IDD_DIALOG1), ParentWnd,
             (DLGPROC)FormMain_DlgProc);

Modified: branches/guffert/wingui/odbcdialogparams/odbcdialogparams.h
===================================================================
--- branches/guffert/wingui/odbcdialogparams/odbcdialogparams.h	2007-11-01 17:33:36 UTC
(rev 832)
+++ branches/guffert/wingui/odbcdialogparams/odbcdialogparams.h	2007-11-02 16:37:36 UTC
(rev 833)
@@ -22,7 +22,8 @@
 // returns TRUE if user pressed OK, FALSE - otherwise
 int ShowOdbcParamsDialog(
 	DataSource* params,                  /*[inout] params */
-	HWND ParentWnd);                    /* [in] could be NULL */
+	HWND ParentWnd,                     /* [in] could be NULL */
+	BOOL isPrompt);
 
 #ifdef __cplusplus
 }

Thread
Connector/ODBC 3.51 commit: r833 - in branches/guffert: driver util wingui wingui/dialog wingui/odbcdialogparamsjbalint2 Nov