Changeset: 5d06f2bce31e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5d06f2bce31e
Modified Files:
        clients/odbc/driver/SQLConnect.c
        clients/odbc/winsetup/resource.h
        clients/odbc/winsetup/setup.c
        clients/odbc/winsetup/setup.rc
        vertoo.config
Branch: default
Log Message:

Implemented language option in ODBC DSN.
Also increased the buffer for the database name to 1024 bytes.


diffs (242 lines):

diff --git a/clients/odbc/driver/SQLConnect.c b/clients/odbc/driver/SQLConnect.c
--- a/clients/odbc/driver/SQLConnect.c
+++ b/clients/odbc/driver/SQLConnect.c
@@ -70,7 +70,8 @@
        char uid[32];
        char pwd[32];
        char buf[256];
-       char db[32];
+       char db[1024];
+       char lang[32];
        char *s;
        int n;
        Mapi mid;
@@ -123,6 +124,12 @@
                strncpy(pwd, (char *) szPWD, nPWDLength);
                pwd[nPWDLength] = 0;
        }
+       if (dsn && *dsn)
+               n = SQLGetPrivateProfileString(dsn, "language", "sql", lang, 
sizeof(lang), "odbc.ini");
+       else
+               n = 0;
+       if (n == 0)
+               strncpy(lang, "sql", sizeof(lang));
 
        if (schema == NULL || *schema == 0) {
                if (dsn && *dsn) {
@@ -159,7 +166,7 @@
 
        /* connect to a server on host via port */
        /* FIXME: use dbname/catalog from ODBC connect string/options here */
-       mid = mapi_connect(host, port, uid, pwd, "sql", schema);
+       mid = mapi_connect(host, port, uid, pwd, lang, schema);
        if (mid == NULL || mapi_error(mid)) {
                /* Client unable to establish connection */
                addDbcError(dbc, "08001", NULL, 0);
diff --git a/clients/odbc/winsetup/resource.h b/clients/odbc/winsetup/resource.h
--- a/clients/odbc/winsetup/resource.h
+++ b/clients/odbc/winsetup/resource.h
@@ -19,7 +19,7 @@
 
 //{{NO_DEPENDENCIES}}
 // Microsoft Visual C++ generated include file.
-// Used by odbcconfig.rc
+// Used by setup.rc
 //
 #define IDD_SETUP_DIALOG                106
 #define IDC_EDIT_DSN                    2000
@@ -30,6 +30,7 @@
 #define IDC_EDIT_PORT                   2004
 #define IDC_BUTTON_CANCEL               2006
 #define IDC_EDIT_DATABASE               2007
+#define IDC_EDIT_LANGUAGE               2008
 
 // Next default values for new objects
 // 
@@ -37,7 +38,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        2004
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         2008
+#define _APS_NEXT_CONTROL_VALUE         2009
 #define _APS_NEXT_SYMED_VALUE           2000
 #endif
 #endif
diff --git a/clients/odbc/winsetup/setup.c b/clients/odbc/winsetup/setup.c
--- a/clients/odbc/winsetup/setup.c
+++ b/clients/odbc/winsetup/setup.c
@@ -101,6 +101,7 @@
        char *host;
        char *port;
        char *database;
+       char *language;
        HWND parent;
        WORD request;
 };
@@ -149,6 +150,7 @@
                SetDlgItemText(hwndDlg, IDC_EDIT_HOST, datap->host ? 
datap->host : "");
                SetDlgItemText(hwndDlg, IDC_EDIT_PORT, datap->port ? 
datap->port : "");
                SetDlgItemText(hwndDlg, IDC_EDIT_DATABASE, datap->database ? 
datap->database : "");
+               SetDlgItemText(hwndDlg, IDC_EDIT_LANGUAGE, datap->language ? 
datap->language : "sql");
                if (datap->request == ODBC_ADD_DSN && datap->dsn && *datap->dsn)
                        EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_DSN), FALSE);
                return TRUE;
@@ -190,6 +192,10 @@
                        if (datap->database)
                                free(datap->database);
                        datap->database = strdup(buf);
+                       GetDlgItemText(hwndDlg, IDC_EDIT_LANGUAGE, buf, 
sizeof(buf));
+                       if (datap->language)
+                               free(datap->language);
+                       datap->language = strdup(buf);
                        /* fall through */
                case IDCANCEL:
                        EndDialog(hwndDlg, LOWORD(wParam));
@@ -233,6 +239,7 @@
        data.host = NULL;
        data.port = NULL;
        data.database = NULL;
+       data.language = NULL;
        data.parent = parent;
        data.request = request;
 
@@ -258,6 +265,8 @@
                        data.port = strdup(value);
                else if (strncasecmp("database=", attributes, value - 
attributes) == 0)
                        data.database = strdup(value);
+               else if (strncasecmp("language=", attributes, value - 
attributes) == 0)
+                       data.language = strdup(value);
                attributes = value + strlen(value) + 1;
        }
 
@@ -277,14 +286,16 @@
        MergeFromProfileString(data.dsn, &data.host, "host", "localhost");
        MergeFromProfileString(data.dsn, &data.port, "port", "50000");
        MergeFromProfileString(data.dsn, &data.database, "database", "");
+       MergeFromProfileString(data.dsn, &data.language, "language", "");
 
-       ODBCLOG("ConfigDSN values: dsn=%s uid=%s pwd=%s host=%s port=%s 
database=%s\n",
+       ODBCLOG("ConfigDSN values: dsn=%s uid=%s pwd=%s host=%s port=%s 
database=%s language=%s\n",
                data.dsn ? data.dsn : "(null)",
                data.uid ? data.uid : "(null)",
                data.pwd ? data.pwd : "(null)",
                data.host ? data.host : "(null)",
                data.port ? data.port : "(null)",
-               data.database ? data.database : "(null)");
+               data.database ? data.database : "(null)",
+               data.language ? data.language : "(null)");
 
        /* we're optimistic: default return value */
        rc = TRUE;
@@ -370,19 +381,21 @@
                        goto finish;
                }
        }
-       ODBCLOG("ConfigDSN writing values: dsn=%s uid=%s pwd=%s host=%s port=%s 
database=%s\n",
+       ODBCLOG("ConfigDSN writing values: dsn=%s uid=%s pwd=%s host=%s port=%s 
database=%s language=%s\n",
                data.dsn ? data.dsn : "(null)",
                data.uid ? data.uid : "(null)",
                data.pwd ? data.pwd : "(null)",
                data.host ? data.host : "(null)",
                data.port ? data.port : "(null)",
-               data.database ? data.database : "(null)");
+               data.database ? data.database : "(null)",
+               data.language ? data.language : "(null)");
 
        if (!SQLWritePrivateProfileString(data.dsn, "uid", data.uid, 
"odbc.ini") ||
            !SQLWritePrivateProfileString(data.dsn, "pwd", data.pwd, 
"odbc.ini") ||
            !SQLWritePrivateProfileString(data.dsn, "host", data.host, 
"odbc.ini") ||
            !SQLWritePrivateProfileString(data.dsn, "port", data.port, 
"odbc.ini") ||
-           !SQLWritePrivateProfileString(data.dsn, "database", data.database, 
"odbc.ini")) {
+           !SQLWritePrivateProfileString(data.dsn, "database", data.database, 
"odbc.ini") ||
+           !SQLWritePrivateProfileString(data.dsn, "language", data.language, 
"odbc.ini")) {
                rc = FALSE;
                if (parent)
                        MessageBox(parent,
@@ -407,6 +420,8 @@
                free(data.port);
        if (data.database)
                free(data.database);
+       if (data.language)
+               free(data.language);
        ODBCLOG("ConfigDSN returning %s\n", rc ? "TRUE" : "FALSE");
        return rc;
 }
diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc
--- a/clients/odbc/winsetup/setup.rc
+++ b/clients/odbc/winsetup/setup.rc
@@ -80,18 +80,12 @@
         BEGIN
             VALUE "CompanyName", "CWI"
             VALUE "FileDescription", "MonetDB ODBC Setup DLL"
-            VALUE "FileVersion", "11.0.0\0"
-            //                    ^^^^^^^^
-            // Maintained via vertoo. Please don't modify by hand!
-            // Contact [email protected] for details 
and/or assistance.
+            VALUE "FileVersion", "11.0.0"
             VALUE "InternalName", "libMonetODBCs.dll"
             VALUE "LegalCopyright", "Copyright (c) MonetDB BV 2008-2011"
             VALUE "OriginalFilename", "libMonetODBCs.dll"
             VALUE "ProductName", "MonetDB SQL Server"
-            VALUE "ProductVersion", "11.0.0\0"
-            //                       ^^^^^^^^
-            // Maintained via vertoo. Please don't modify by hand!
-            // Contact [email protected] for details 
and/or assistance.
+            VALUE "ProductVersion", "11.0.0"
         END
     END
     BLOCK "VarFileInfo"
@@ -106,8 +100,8 @@
 // Dialog
 //
 
-IDD_SETUP_DIALOG DIALOGEX 0, 0, 210, 163
-STYLE DS_MODALFRAME | WS_CAPTION
+IDD_SETUP_DIALOG DIALOGEX 0, 0, 210, 178
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CAPTION
 CAPTION "MonetDB Data Source Configuration"
 FONT 8, "MS Shell Dlg", 0, 0, 0x0
 BEGIN
@@ -117,8 +111,8 @@
     EDITTEXT        IDC_EDIT_HOST,75,88,128,14,ES_AUTOHSCROLL
     EDITTEXT        IDC_EDIT_PORT,75,104,128,14,ES_AUTOHSCROLL | ES_NUMBER
     EDITTEXT        IDC_EDIT_DATABASE,75,120,128,14,ES_AUTOHSCROLL
-    DEFPUSHBUTTON   "OK",IDOK,7,141,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,153,141,50,14
+    DEFPUSHBUTTON   "OK",IDOK,7,156,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,153,156,50,14
     LTEXT           "Data Source Name",IDC_STATIC,7,42,63,8
     LTEXT           "User Name",IDC_STATIC,7,58,36,8
     LTEXT           "Password",IDC_STATIC,7,74,32,8
@@ -126,6 +120,8 @@
     LTEXT           "Port",IDC_STATIC,7,106,14,8
     CONTROL         2003,IDC_STATIC,"Static",SS_BITMAP,0,0,240,37
     LTEXT           "Database",IDC_STATIC,7,122,32,8
+    LTEXT           "Language",IDC_STATIC,7,138,32,8
+    EDITTEXT        IDC_EDIT_LANGUAGE,75,136,128,14,ES_AUTOHSCROLL
 END
 
 
@@ -142,7 +138,7 @@
         LEFTMARGIN, 7
         RIGHTMARGIN, 203
         TOPMARGIN, 7
-        BOTTOMMARGIN, 155
+        BOTTOMMARGIN, 170
     END
 END
 #endif    // APSTUDIO_INVOKED
diff --git a/vertoo.config b/vertoo.config
--- a/vertoo.config
+++ b/vertoo.config
@@ -26,8 +26,8 @@
                 arguments(pattern = '"Value" = "8:%v"',
                           format = '@normal'))
 main.addAnchors("clients/src/odbc/winsetup/setup.rc",
-                'VALUE "FileVersion", "%v\\0"',
-                'VALUE "ProductVersion", "%v\\0"',
+                'VALUE "FileVersion", "%v"',
+                'VALUE "ProductVersion", "%v"',
                 arguments(pattern = 'FILEVERSION %v', format = '@winrc'),
                 arguments(pattern = 'PRODUCTVERSION %v', format = '@winrc'))
 main.addAnchors("clients/src/odbc/driver/driver.rc",
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to