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