diff options
Diffstat (limited to 'src/interfaces/odbc/dlg_specific.c')
-rw-r--r-- | src/interfaces/odbc/dlg_specific.c | 989 |
1 files changed, 487 insertions, 502 deletions
diff --git a/src/interfaces/odbc/dlg_specific.c b/src/interfaces/odbc/dlg_specific.c index 1f5c7dba5ea..13e8b44e618 100644 --- a/src/interfaces/odbc/dlg_specific.c +++ b/src/interfaces/odbc/dlg_specific.c @@ -1,17 +1,18 @@ -/* Module: dlg_specific.c + +/* Module: dlg_specific.c * - * Description: This module contains any specific code for handling - * dialog boxes such as driver/datasource options. Both the - * ConfigDSN() and the SQLDriverConnect() functions use - * functions in this module. If you were to add a new option - * to any dialog box, you would most likely only have to change - * things in here rather than in 2 separate places as before. + * Description: This module contains any specific code for handling + * dialog boxes such as driver/datasource options. Both the + * ConfigDSN() and the SQLDriverConnect() functions use + * functions in this module. If you were to add a new option + * to any dialog box, you would most likely only have to change + * things in here rather than in 2 separate places as before. * - * Classes: none + * Classes: none * - * API functions: none + * API functions: none * - * Comments: See "notice.txt" for copyright and license information. + * Comments: See "notice.txt" for copyright and license information. * */ @@ -20,14 +21,14 @@ #endif #ifndef WIN32 -#include <string.h> -#include "gpps.h" -#define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f) -#define SQLWritePrivateProfileString(a,b,c,d) WritePrivateProfileString(a,b,c,d) -#ifndef HAVE_STRICMP -#define stricmp(s1,s2) strcasecmp(s1,s2) -#define strnicmp(s1,s2,n) strncasecmp(s1,s2,n) -#endif +# include <string.h> +# include "gpps.h" +# define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f) +# define SQLWritePrivateProfileString(a,b,c,d) WritePrivateProfileString(a,b,c,d) +# ifndef HAVE_STRICMP +# define stricmp(s1,s2) strcasecmp(s1,s2) +# define strnicmp(s1,s2,n) strncasecmp(s1,s2,n) +# endif #endif #include "dlg_specific.h" @@ -49,13 +50,8 @@ extern GLOBAL_VALUES globals; void SetDlgStuff(HWND hdlg, ConnInfo *ci) { - - /* - * If driver attribute NOT present, then set the datasource name and - * description - */ - if (ci->driver[0] == '\0') - { + /* If driver attribute NOT present, then set the datasource name and description */ + if (ci->driver[0] == '\0') { SetDlgItemText(hdlg, IDC_DSNAME, ci->dsn); SetDlgItemText(hdlg, IDC_DESC, ci->desc); } @@ -67,7 +63,7 @@ SetDlgStuff(HWND hdlg, ConnInfo *ci) SetDlgItemText(hdlg, IDC_PORT, ci->port); } -void +void GetDlgStuff(HWND hdlg, ConnInfo *ci) { GetDlgItemText(hdlg, IDC_DESC, ci->desc, sizeof(ci->desc)); @@ -81,294 +77,296 @@ GetDlgStuff(HWND hdlg, ConnInfo *ci) -int CALLBACK -driver_optionsProc(HWND hdlg, - WORD wMsg, - WPARAM wParam, - LPARAM lParam) +int CALLBACK driver_optionsProc(HWND hdlg, + WORD wMsg, + WPARAM wParam, + LPARAM lParam) { - switch (wMsg) - { - case WM_INITDIALOG: - - CheckDlgButton(hdlg, DRV_COMMLOG, globals.commlog); - CheckDlgButton(hdlg, DRV_OPTIMIZER, globals.disable_optimizer); - CheckDlgButton(hdlg, DRV_KSQO, globals.ksqo); - CheckDlgButton(hdlg, DRV_UNIQUEINDEX, globals.unique_index); - CheckDlgButton(hdlg, DRV_READONLY, globals.onlyread); - CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, globals.use_declarefetch); - - /* Unknown (Default) Data Type sizes */ - switch (globals.unknown_sizes) - { - case UNKNOWNS_AS_DONTKNOW: - CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1); - break; - case UNKNOWNS_AS_LONGEST: - CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1); - break; - case UNKNOWNS_AS_MAX: - default: - CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1); - break; - } + switch (wMsg) { + case WM_INITDIALOG: + + CheckDlgButton(hdlg, DRV_COMMLOG, globals.commlog); + CheckDlgButton(hdlg, DRV_OPTIMIZER, globals.disable_optimizer); + CheckDlgButton(hdlg, DRV_KSQO, globals.ksqo); + CheckDlgButton(hdlg, DRV_UNIQUEINDEX, globals.unique_index); + CheckDlgButton(hdlg, DRV_READONLY, globals.onlyread); + CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, globals.use_declarefetch); + + /* Unknown (Default) Data Type sizes */ + switch(globals.unknown_sizes) { + case UNKNOWNS_AS_DONTKNOW: + CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1); + break; + case UNKNOWNS_AS_LONGEST: + CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1); + break; + case UNKNOWNS_AS_MAX: + default: + CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1); + break; + } - CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, globals.text_as_longvarchar); - CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, globals.unknowns_as_longvarchar); - CheckDlgButton(hdlg, DRV_BOOLS_CHAR, globals.bools_as_char); + CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, globals.text_as_longvarchar); + CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, globals.unknowns_as_longvarchar); + CheckDlgButton(hdlg, DRV_BOOLS_CHAR, globals.bools_as_char); - CheckDlgButton(hdlg, DRV_PARSE, globals.parse); + CheckDlgButton(hdlg, DRV_PARSE, globals.parse); - CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, globals.cancel_as_freestmt); + CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, globals.cancel_as_freestmt); - SetDlgItemInt(hdlg, DRV_CACHE_SIZE, globals.fetch_max, FALSE); - SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, globals.max_varchar_size, FALSE); - SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, globals.max_longvarchar_size, TRUE); + SetDlgItemInt(hdlg, DRV_CACHE_SIZE, globals.fetch_max, FALSE); + SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, globals.max_varchar_size, FALSE); + SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, globals.max_longvarchar_size, TRUE); - SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes); + SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes); - /* Driver Connection Settings */ - SetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings); + /* Driver Connection Settings */ + SetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings); - break; + break; + + case WM_COMMAND: + switch (GET_WM_COMMAND_ID(wParam, lParam)) { + case IDOK: - case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) - { - case IDOK: - - globals.commlog = IsDlgButtonChecked(hdlg, DRV_COMMLOG); - globals.disable_optimizer = IsDlgButtonChecked(hdlg, DRV_OPTIMIZER); - globals.ksqo = IsDlgButtonChecked(hdlg, DRV_KSQO); - globals.unique_index = IsDlgButtonChecked(hdlg, DRV_UNIQUEINDEX); - globals.onlyread = IsDlgButtonChecked(hdlg, DRV_READONLY); - globals.use_declarefetch = IsDlgButtonChecked(hdlg, DRV_USEDECLAREFETCH); - - /* Unknown (Default) Data Type sizes */ - if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_MAX)) - globals.unknown_sizes = UNKNOWNS_AS_MAX; - else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_DONTKNOW)) - globals.unknown_sizes = UNKNOWNS_AS_DONTKNOW; - else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_LONGEST)) - globals.unknown_sizes = UNKNOWNS_AS_LONGEST; - else - globals.unknown_sizes = UNKNOWNS_AS_MAX; - - globals.text_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_TEXT_LONGVARCHAR); - globals.unknowns_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_UNKNOWNS_LONGVARCHAR); - globals.bools_as_char = IsDlgButtonChecked(hdlg, DRV_BOOLS_CHAR); - - globals.parse = IsDlgButtonChecked(hdlg, DRV_PARSE); - - globals.cancel_as_freestmt = IsDlgButtonChecked(hdlg, DRV_CANCELASFREESTMT); - - globals.fetch_max = GetDlgItemInt(hdlg, DRV_CACHE_SIZE, NULL, FALSE); - globals.max_varchar_size = GetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, NULL, FALSE); - globals.max_longvarchar_size = GetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, NULL, TRUE); /* allows for - * SQL_NO_TOTAL */ - - GetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, sizeof(globals.extra_systable_prefixes)); - - /* Driver Connection Settings */ - GetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings, sizeof(globals.conn_settings)); - - updateGlobals(); - - /* fall through */ - - case IDCANCEL: - EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK); - return TRUE; - - case IDDEFAULTS: - CheckDlgButton(hdlg, DRV_COMMLOG, DEFAULT_COMMLOG); - CheckDlgButton(hdlg, DRV_OPTIMIZER, DEFAULT_OPTIMIZER); - CheckDlgButton(hdlg, DRV_KSQO, DEFAULT_KSQO); - CheckDlgButton(hdlg, DRV_UNIQUEINDEX, DEFAULT_UNIQUEINDEX); - CheckDlgButton(hdlg, DRV_READONLY, DEFAULT_READONLY); - CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, DEFAULT_USEDECLAREFETCH); - - CheckDlgButton(hdlg, DRV_PARSE, DEFAULT_PARSE); - CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, DEFAULT_CANCELASFREESTMT); - - /* Unknown Sizes */ - CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 0); - CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 0); - CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 0); - switch (DEFAULT_UNKNOWNSIZES) - { - case UNKNOWNS_AS_DONTKNOW: - CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1); - break; - case UNKNOWNS_AS_LONGEST: - CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1); - break; - case UNKNOWNS_AS_MAX: - CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1); - break; - } - - CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, DEFAULT_TEXTASLONGVARCHAR); - CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, DEFAULT_UNKNOWNSASLONGVARCHAR); - CheckDlgButton(hdlg, DRV_BOOLS_CHAR, DEFAULT_BOOLSASCHAR); - - SetDlgItemInt(hdlg, DRV_CACHE_SIZE, FETCH_MAX, FALSE); - SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, MAX_VARCHAR_SIZE, FALSE); - SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, TEXT_FIELD_SIZE, TRUE); - - SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, DEFAULT_EXTRASYSTABLEPREFIXES); - - /* Driver Connection Settings */ - SetDlgItemText(hdlg, DRV_CONNSETTINGS, ""); - - break; + globals.commlog = IsDlgButtonChecked(hdlg, DRV_COMMLOG); + globals.disable_optimizer = IsDlgButtonChecked(hdlg, DRV_OPTIMIZER); + globals.ksqo = IsDlgButtonChecked(hdlg, DRV_KSQO); + globals.unique_index = IsDlgButtonChecked(hdlg, DRV_UNIQUEINDEX); + globals.onlyread = IsDlgButtonChecked(hdlg, DRV_READONLY); + globals.use_declarefetch = IsDlgButtonChecked(hdlg, DRV_USEDECLAREFETCH); + + /* Unknown (Default) Data Type sizes */ + if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_MAX)) + globals.unknown_sizes = UNKNOWNS_AS_MAX; + else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_DONTKNOW)) + globals.unknown_sizes = UNKNOWNS_AS_DONTKNOW; + else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_LONGEST)) + globals.unknown_sizes = UNKNOWNS_AS_LONGEST; + else + globals.unknown_sizes = UNKNOWNS_AS_MAX; + + globals.text_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_TEXT_LONGVARCHAR); + globals.unknowns_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_UNKNOWNS_LONGVARCHAR); + globals.bools_as_char = IsDlgButtonChecked(hdlg, DRV_BOOLS_CHAR); + + globals.parse = IsDlgButtonChecked(hdlg, DRV_PARSE); + + globals.cancel_as_freestmt = IsDlgButtonChecked(hdlg, DRV_CANCELASFREESTMT); + + globals.fetch_max = GetDlgItemInt(hdlg, DRV_CACHE_SIZE, NULL, FALSE); + globals.max_varchar_size = GetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, NULL, FALSE); + globals.max_longvarchar_size= GetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, NULL, TRUE); /* allows for SQL_NO_TOTAL */ + + GetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, sizeof(globals.extra_systable_prefixes)); + + /* Driver Connection Settings */ + GetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings, sizeof(globals.conn_settings)); + + updateGlobals(); + + /* fall through */ + + case IDCANCEL: + EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK); + return TRUE; + + case IDDEFAULTS: + CheckDlgButton(hdlg, DRV_COMMLOG, DEFAULT_COMMLOG); + CheckDlgButton(hdlg, DRV_OPTIMIZER, DEFAULT_OPTIMIZER); + CheckDlgButton(hdlg, DRV_KSQO, DEFAULT_KSQO); + CheckDlgButton(hdlg, DRV_UNIQUEINDEX, DEFAULT_UNIQUEINDEX); + CheckDlgButton(hdlg, DRV_READONLY, DEFAULT_READONLY); + CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, DEFAULT_USEDECLAREFETCH); + + CheckDlgButton(hdlg, DRV_PARSE, DEFAULT_PARSE); + CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, DEFAULT_CANCELASFREESTMT); + + /* Unknown Sizes */ + CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 0); + CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 0); + CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 0); + switch(DEFAULT_UNKNOWNSIZES) { + case UNKNOWNS_AS_DONTKNOW: + CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1); + break; + case UNKNOWNS_AS_LONGEST: + CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1); + break; + case UNKNOWNS_AS_MAX: + CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1); + break; } + + CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, DEFAULT_TEXTASLONGVARCHAR); + CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, DEFAULT_UNKNOWNSASLONGVARCHAR); + CheckDlgButton(hdlg, DRV_BOOLS_CHAR, DEFAULT_BOOLSASCHAR); + + SetDlgItemInt(hdlg, DRV_CACHE_SIZE, FETCH_MAX, FALSE); + SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, MAX_VARCHAR_SIZE, FALSE); + SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, TEXT_FIELD_SIZE, TRUE); + + SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, DEFAULT_EXTRASYSTABLEPREFIXES); + + /* Driver Connection Settings */ + SetDlgItemText(hdlg, DRV_CONNSETTINGS, ""); + + break; + } + } return FALSE; } -int CALLBACK -ds_optionsProc(HWND hdlg, - WORD wMsg, - WPARAM wParam, - LPARAM lParam) +int CALLBACK ds_optionsProc(HWND hdlg, + WORD wMsg, + WPARAM wParam, + LPARAM lParam) { - ConnInfo *ci; - char buf[128]; - - switch (wMsg) - { - case WM_INITDIALOG: - ci = (ConnInfo *) lParam; - SetWindowLong(hdlg, DWL_USER, lParam); /* save for OK */ - - /* Change window caption */ - if (ci->driver[0]) - SetWindowText(hdlg, "Advanced Options (Connection)"); - else - { - sprintf(buf, "Advanced Options (%s)", ci->dsn); - SetWindowText(hdlg, buf); - } - - /* Readonly */ - CheckDlgButton(hdlg, DS_READONLY, atoi(ci->onlyread)); - - /* Protocol */ +ConnInfo *ci; +char buf[128]; + + switch (wMsg) { + case WM_INITDIALOG: + ci = (ConnInfo *) lParam; + SetWindowLong(hdlg, DWL_USER, lParam); /* save for OK */ + + /* Change window caption */ + if (ci->driver[0]) + SetWindowText(hdlg, "Advanced Options (Connection)"); + else { + sprintf(buf, "Advanced Options (%s)", ci->dsn); + SetWindowText(hdlg, buf); + } + + /* Readonly */ + CheckDlgButton(hdlg, DS_READONLY, atoi(ci->onlyread)); + + /* Protocol */ + if (strncmp(ci->protocol, PG62, strlen(PG62)) == 0) + CheckDlgButton(hdlg, DS_PG62, 1); + else if (strncmp(ci->protocol, PG63, strlen(PG63)) == 0) + CheckDlgButton(hdlg, DS_PG63, 1); + else /* latest */ CheckDlgButton(hdlg, DS_PG64, 1); - CheckDlgButton(hdlg, DS_SHOWOIDCOLUMN, atoi(ci->show_oid_column)); - CheckDlgButton(hdlg, DS_FAKEOIDINDEX, atoi(ci->fake_oid_index)); - CheckDlgButton(hdlg, DS_ROWVERSIONING, atoi(ci->row_versioning)); - CheckDlgButton(hdlg, DS_SHOWSYSTEMTABLES, atoi(ci->show_system_tables)); + CheckDlgButton(hdlg, DS_SHOWOIDCOLUMN, atoi(ci->show_oid_column)); + CheckDlgButton(hdlg, DS_FAKEOIDINDEX, atoi(ci->fake_oid_index)); + CheckDlgButton(hdlg, DS_ROWVERSIONING, atoi(ci->row_versioning)); + CheckDlgButton(hdlg, DS_SHOWSYSTEMTABLES, atoi(ci->show_system_tables)); - EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), atoi(ci->show_oid_column)); + EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), atoi(ci->show_oid_column)); - /* Datasource Connection Settings */ - SetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings); - break; + /* Datasource Connection Settings */ + SetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings); + break; - case WM_COMMAND: - switch (GET_WM_COMMAND_ID(wParam, lParam)) - { - case DS_SHOWOIDCOLUMN: - mylog("WM_COMMAND: DS_SHOWOIDCOLUMN\n"); - EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN)); - return TRUE; + case WM_COMMAND: + switch (GET_WM_COMMAND_ID(wParam, lParam)) { + case DS_SHOWOIDCOLUMN: + mylog("WM_COMMAND: DS_SHOWOIDCOLUMN\n"); + EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN)); + return TRUE; - case IDOK: + case IDOK: - ci = (ConnInfo *) GetWindowLong(hdlg, DWL_USER); - mylog("IDOK: got ci = %u\n", ci); + ci = (ConnInfo *)GetWindowLong(hdlg, DWL_USER); + mylog("IDOK: got ci = %u\n", ci); - /* Readonly */ - sprintf(ci->onlyread, "%d", IsDlgButtonChecked(hdlg, DS_READONLY)); + /* Readonly */ + sprintf(ci->onlyread, "%d", IsDlgButtonChecked(hdlg, DS_READONLY)); - /* Protocol */ - strcpy(ci->protocol, PG64); + /* Protocol */ + if ( IsDlgButtonChecked(hdlg, DS_PG62)) + strcpy(ci->protocol, PG62); + else if ( IsDlgButtonChecked(hdlg, DS_PG63)) + strcpy(ci->protocol, PG63); + else /* latest */ + strcpy(ci->protocol, PG64); - sprintf(ci->show_system_tables, "%d", IsDlgButtonChecked(hdlg, DS_SHOWSYSTEMTABLES)); + sprintf(ci->show_system_tables, "%d", IsDlgButtonChecked(hdlg, DS_SHOWSYSTEMTABLES)); - sprintf(ci->row_versioning, "%d", IsDlgButtonChecked(hdlg, DS_ROWVERSIONING)); + sprintf(ci->row_versioning, "%d", IsDlgButtonChecked(hdlg, DS_ROWVERSIONING)); - /* OID Options */ - sprintf(ci->fake_oid_index, "%d", IsDlgButtonChecked(hdlg, DS_FAKEOIDINDEX)); - sprintf(ci->show_oid_column, "%d", IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN)); + /* OID Options*/ + sprintf(ci->fake_oid_index, "%d", IsDlgButtonChecked(hdlg, DS_FAKEOIDINDEX)); + sprintf(ci->show_oid_column, "%d", IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN)); - /* Datasource Connection Settings */ - GetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings, sizeof(ci->conn_settings)); + /* Datasource Connection Settings */ + GetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings, sizeof(ci->conn_settings)); - /* fall through */ + /* fall through */ - case IDCANCEL: - EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK); - return TRUE; - } + case IDCANCEL: + EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK); + return TRUE; + } } return FALSE; } -#endif /* WIN32 */ +#endif /* WIN32 */ void makeConnectString(char *connect_string, ConnInfo *ci) { - char got_dsn = (ci->dsn[0] != '\0'); - char encoded_conn_settings[LARGE_REGISTRY_LEN]; +char got_dsn = (ci->dsn[0] != '\0'); +char encoded_conn_settings[LARGE_REGISTRY_LEN]; - /* fundamental info */ + /* fundamental info */ sprintf(connect_string, "%s=%s;DATABASE=%s;SERVER=%s;PORT=%s;UID=%s;PWD=%s", - got_dsn ? "DSN" : "DRIVER", - got_dsn ? ci->dsn : ci->driver, - ci->database, - ci->server, - ci->port, - ci->username, - ci->password); + got_dsn ? "DSN" : "DRIVER", + got_dsn ? ci->dsn : ci->driver, + ci->database, + ci->server, + ci->port, + ci->username, + ci->password); encode(ci->conn_settings, encoded_conn_settings); - /* extra info */ - sprintf(&connect_string[strlen(connect_string)], - ";READONLY=%s;PROTOCOL=%s;FAKEOIDINDEX=%s;SHOWOIDCOLUMN=%s;ROWVERSIONING=%s;SHOWSYSTEMTABLES=%s;CONNSETTINGS=%s", - ci->onlyread, - ci->protocol, - ci->fake_oid_index, - ci->show_oid_column, - ci->row_versioning, - ci->show_system_tables, - encoded_conn_settings); + /* extra info */ + sprintf(&connect_string[strlen(connect_string)], + ";READONLY=%s;PROTOCOL=%s;FAKEOIDINDEX=%s;SHOWOIDCOLUMN=%s;ROWVERSIONING=%s;SHOWSYSTEMTABLES=%s;CONNSETTINGS=%s", + ci->onlyread, + ci->protocol, + ci->fake_oid_index, + ci->show_oid_column, + ci->row_versioning, + ci->show_system_tables, + encoded_conn_settings); } void copyAttributes(ConnInfo *ci, char *attribute, char *value) { - if (stricmp(attribute, "DSN") == 0) + + if(stricmp(attribute, "DSN") == 0) strcpy(ci->dsn, value); - else if (stricmp(attribute, "driver") == 0) + else if(stricmp(attribute, "driver") == 0) strcpy(ci->driver, value); - else if (stricmp(attribute, INI_DATABASE) == 0) + else if(stricmp(attribute, INI_DATABASE) == 0) strcpy(ci->database, value); - else if (stricmp(attribute, INI_SERVER) == 0 || stricmp(attribute, "server") == 0) + else if(stricmp(attribute, INI_SERVER) == 0 || stricmp(attribute, "server") == 0) strcpy(ci->server, value); - else if (stricmp(attribute, INI_USER) == 0 || stricmp(attribute, "uid") == 0) + else if(stricmp(attribute, INI_USER) == 0 || stricmp(attribute, "uid") == 0) strcpy(ci->username, value); - else if (stricmp(attribute, INI_PASSWORD) == 0 || stricmp(attribute, "pwd") == 0) + else if(stricmp(attribute, INI_PASSWORD) == 0 || stricmp(attribute, "pwd") == 0) strcpy(ci->password, value); - else if (stricmp(attribute, INI_PORT) == 0) + else if(stricmp(attribute, INI_PORT) == 0) strcpy(ci->port, value); else if (stricmp(attribute, INI_READONLY) == 0) @@ -389,13 +387,13 @@ copyAttributes(ConnInfo *ci, char *attribute, char *value) else if (stricmp(attribute, INI_SHOWSYSTEMTABLES) == 0) strcpy(ci->show_system_tables, value); - else if (stricmp(attribute, INI_CONNSETTINGS) == 0) - { + else if (stricmp(attribute, INI_CONNSETTINGS) == 0) { decode(value, ci->conn_settings); /* strcpy(ci->conn_settings, value); */ } - mylog("copyAttributes: DSN='%s',server='%s',dbase='%s',user='%s',passwd='%s',port='%s',onlyread='%s',protocol='%s', conn_settings='%s')\n", ci->dsn, ci->server, ci->database, ci->username, ci->password, ci->port, ci->onlyread, ci->protocol, ci->conn_settings); + mylog("copyAttributes: DSN='%s',server='%s',dbase='%s',user='%s',passwd='%s',port='%s',onlyread='%s',protocol='%s', conn_settings='%s')\n", ci->dsn, ci->server,ci->database,ci->username,ci->password,ci->port,ci->onlyread,ci->protocol,ci->conn_settings); + } void @@ -424,99 +422,97 @@ getDSNdefaults(ConnInfo *ci) } -void +void getDSNinfo(ConnInfo *ci, char overwrite) { - char *DSN = ci->dsn; - char encoded_conn_settings[LARGE_REGISTRY_LEN]; +char *DSN = ci->dsn; +char encoded_conn_settings[LARGE_REGISTRY_LEN]; /* If a driver keyword was present, then dont use a DSN and return. */ /* If DSN is null and no driver, then use the default datasource. */ - if (DSN[0] == '\0') - { - if (ci->driver[0] != '\0') + if ( DSN[0] == '\0') { + if ( ci->driver[0] != '\0') return; else strcpy(DSN, INI_DSN); } /* brute-force chop off trailing blanks... */ - while (*(DSN + strlen(DSN) - 1) == ' ') - *(DSN + strlen(DSN) - 1) = '\0'; + while (*(DSN+strlen(DSN)-1) == ' ') *(DSN+strlen(DSN)-1) = '\0'; - /* Proceed with getting info for the given DSN. */ + /* Proceed with getting info for the given DSN. */ - if (ci->desc[0] == '\0' || overwrite) + if ( ci->desc[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_KDESC, "", ci->desc, sizeof(ci->desc), ODBC_INI); - if (ci->server[0] == '\0' || overwrite) + if ( ci->server[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_SERVER, "", ci->server, sizeof(ci->server), ODBC_INI); - if (ci->database[0] == '\0' || overwrite) - SQLGetPrivateProfileString(DSN, INI_DATABASE, "", ci->database, sizeof(ci->database), ODBC_INI); + if ( ci->database[0] == '\0' || overwrite) + SQLGetPrivateProfileString(DSN, INI_DATABASE, "", ci->database, sizeof(ci->database), ODBC_INI); - if (ci->username[0] == '\0' || overwrite) + if ( ci->username[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_USER, "", ci->username, sizeof(ci->username), ODBC_INI); - if (ci->password[0] == '\0' || overwrite) + if ( ci->password[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_PASSWORD, "", ci->password, sizeof(ci->password), ODBC_INI); - if (ci->port[0] == '\0' || overwrite) + if ( ci->port[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_PORT, "", ci->port, sizeof(ci->port), ODBC_INI); - if (ci->onlyread[0] == '\0' || overwrite) + if ( ci->onlyread[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_READONLY, "", ci->onlyread, sizeof(ci->onlyread), ODBC_INI); - if (ci->show_oid_column[0] == '\0' || overwrite) + if ( ci->show_oid_column[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_SHOWOIDCOLUMN, "", ci->show_oid_column, sizeof(ci->show_oid_column), ODBC_INI); - if (ci->fake_oid_index[0] == '\0' || overwrite) + if ( ci->fake_oid_index[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_FAKEOIDINDEX, "", ci->fake_oid_index, sizeof(ci->fake_oid_index), ODBC_INI); - if (ci->row_versioning[0] == '\0' || overwrite) + if ( ci->row_versioning[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_ROWVERSIONING, "", ci->row_versioning, sizeof(ci->row_versioning), ODBC_INI); - if (ci->show_system_tables[0] == '\0' || overwrite) + if ( ci->show_system_tables[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_SHOWSYSTEMTABLES, "", ci->show_system_tables, sizeof(ci->show_system_tables), ODBC_INI); - if (ci->protocol[0] == '\0' || overwrite) + if ( ci->protocol[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_PROTOCOL, "", ci->protocol, sizeof(ci->protocol), ODBC_INI); - if (ci->conn_settings[0] == '\0' || overwrite) - { + if ( ci->conn_settings[0] == '\0' || overwrite) { SQLGetPrivateProfileString(DSN, INI_CONNSETTINGS, "", encoded_conn_settings, sizeof(encoded_conn_settings), ODBC_INI); decode(encoded_conn_settings, ci->conn_settings); } - if (ci->translation_dll[0] == '\0' || overwrite) + if ( ci->translation_dll[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_TRANSLATIONDLL, "", ci->translation_dll, sizeof(ci->translation_dll), ODBC_INI); - if (ci->translation_option[0] == '\0' || overwrite) + if ( ci->translation_option[0] == '\0' || overwrite) SQLGetPrivateProfileString(DSN, INI_TRANSLATIONOPTION, "", ci->translation_option, sizeof(ci->translation_option), ODBC_INI); - /* Allow override of odbcinst.ini parameters here */ + /* Allow override of odbcinst.ini parameters here */ getGlobalDefaults(DSN, ODBC_INI, TRUE); - qlog("DSN info: DSN='%s',server='%s',port='%s',dbase='%s',user='%s',passwd='%s'\n", - DSN, - ci->server, - ci->port, - ci->database, - ci->username, - ci->password); + qlog("DSN info: DSN='%s',server='%s',port='%s',dbase='%s',user='%s',passwd='%s'\n", + DSN, + ci->server, + ci->port, + ci->database, + ci->username, + ci->password); qlog(" onlyread='%s',protocol='%s',showoid='%s',fakeoidindex='%s',showsystable='%s'\n", - ci->onlyread, - ci->protocol, - ci->show_oid_column, - ci->fake_oid_index, - ci->show_system_tables); + ci->onlyread, + ci->protocol, + ci->show_oid_column, + ci->fake_oid_index, + ci->show_system_tables); qlog(" conn_settings='%s'\n", - ci->conn_settings); + ci->conn_settings); qlog(" translation_dll='%s',translation_option='%s'\n", - ci->translation_dll, - ci->translation_option); + ci->translation_dll, + ci->translation_option); + } @@ -524,358 +520,347 @@ getDSNinfo(ConnInfo *ci, char overwrite) void writeDSNinfo(ConnInfo *ci) { - char *DSN = ci->dsn; - char encoded_conn_settings[LARGE_REGISTRY_LEN]; +char *DSN = ci->dsn; +char encoded_conn_settings[LARGE_REGISTRY_LEN]; + + encode(ci->conn_settings, encoded_conn_settings); + + SQLWritePrivateProfileString(DSN, + INI_KDESC, + ci->desc, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_DATABASE, + ci->database, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_SERVER, + ci->server, + ODBC_INI); - encode(ci->conn_settings, encoded_conn_settings); + SQLWritePrivateProfileString(DSN, + INI_PORT, + ci->port, + ODBC_INI); - SQLWritePrivateProfileString(DSN, - INI_KDESC, - ci->desc, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_DATABASE, - ci->database, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_SERVER, - ci->server, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_PORT, - ci->port, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_USER, - ci->username, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_PASSWORD, - ci->password, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_READONLY, - ci->onlyread, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_SHOWOIDCOLUMN, - ci->show_oid_column, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_FAKEOIDINDEX, - ci->fake_oid_index, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_ROWVERSIONING, - ci->row_versioning, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_SHOWSYSTEMTABLES, - ci->show_system_tables, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_PROTOCOL, - ci->protocol, - ODBC_INI); - - SQLWritePrivateProfileString(DSN, - INI_CONNSETTINGS, - encoded_conn_settings, - ODBC_INI); + SQLWritePrivateProfileString(DSN, + INI_USER, + ci->username, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_PASSWORD, + ci->password, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_READONLY, + ci->onlyread, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_SHOWOIDCOLUMN, + ci->show_oid_column, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_FAKEOIDINDEX, + ci->fake_oid_index, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_ROWVERSIONING, + ci->row_versioning, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_SHOWSYSTEMTABLES, + ci->show_system_tables, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_PROTOCOL, + ci->protocol, + ODBC_INI); + + SQLWritePrivateProfileString(DSN, + INI_CONNSETTINGS, + encoded_conn_settings, + ODBC_INI); } /* This function reads the ODBCINST.INI portion of the registry and gets any driver defaults. */ -void -getGlobalDefaults(char *section, char *filename, char override) +void getGlobalDefaults(char *section, char *filename, char override) { - char temp[256]; +char temp[256]; - /* Fetch Count is stored in driver section */ - SQLGetPrivateProfileString(section, INI_FETCH, "", - temp, sizeof(temp), filename); - if (temp[0]) - { + /* Fetch Count is stored in driver section */ + SQLGetPrivateProfileString(section, INI_FETCH, "", + temp, sizeof(temp), filename); + if ( temp[0] ) { globals.fetch_max = atoi(temp); - /* sanity check if using cursors */ + /* sanity check if using cursors */ if (globals.fetch_max <= 0) globals.fetch_max = FETCH_MAX; } - else if (!override) + else if ( ! override) globals.fetch_max = FETCH_MAX; - /* Socket Buffersize is stored in driver section */ - SQLGetPrivateProfileString(section, INI_SOCKET, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Socket Buffersize is stored in driver section */ + SQLGetPrivateProfileString(section, INI_SOCKET, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.socket_buffersize = atoi(temp); - else if (!override) + else if ( ! override) globals.socket_buffersize = SOCK_BUFFER_SIZE; - /* Debug is stored in the driver section */ - SQLGetPrivateProfileString(section, INI_DEBUG, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Debug is stored in the driver section */ + SQLGetPrivateProfileString(section, INI_DEBUG, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.debug = atoi(temp); - else if (!override) + else if ( ! override) globals.debug = DEFAULT_DEBUG; - /* CommLog is stored in the driver section */ - SQLGetPrivateProfileString(section, INI_COMMLOG, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* CommLog is stored in the driver section */ + SQLGetPrivateProfileString(section, INI_COMMLOG, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.commlog = atoi(temp); - else if (!override) + else if ( ! override) globals.commlog = DEFAULT_COMMLOG; - /* Optimizer is stored in the driver section only */ - SQLGetPrivateProfileString(section, INI_OPTIMIZER, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Optimizer is stored in the driver section only */ + SQLGetPrivateProfileString(section, INI_OPTIMIZER, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.disable_optimizer = atoi(temp); - else if (!override) + else if ( ! override) globals.disable_optimizer = DEFAULT_OPTIMIZER; - /* KSQO is stored in the driver section only */ - SQLGetPrivateProfileString(section, INI_KSQO, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* KSQO is stored in the driver section only */ + SQLGetPrivateProfileString(section, INI_KSQO, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.ksqo = atoi(temp); - else if (!override) + else if ( ! override) globals.ksqo = DEFAULT_KSQO; - /* Recognize Unique Index is stored in the driver section only */ - SQLGetPrivateProfileString(section, INI_UNIQUEINDEX, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Recognize Unique Index is stored in the driver section only */ + SQLGetPrivateProfileString(section, INI_UNIQUEINDEX, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.unique_index = atoi(temp); - else if (!override) + else if ( ! override) globals.unique_index = DEFAULT_UNIQUEINDEX; - /* Unknown Sizes is stored in the driver section only */ - SQLGetPrivateProfileString(section, INI_UNKNOWNSIZES, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Unknown Sizes is stored in the driver section only */ + SQLGetPrivateProfileString(section, INI_UNKNOWNSIZES, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.unknown_sizes = atoi(temp); - else if (!override) + else if ( ! override) globals.unknown_sizes = DEFAULT_UNKNOWNSIZES; - /* Lie about supported functions? */ - SQLGetPrivateProfileString(section, INI_LIE, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Lie about supported functions? */ + SQLGetPrivateProfileString(section, INI_LIE, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.lie = atoi(temp); - else if (!override) + else if ( ! override) globals.lie = DEFAULT_LIE; - /* Parse statements */ - SQLGetPrivateProfileString(section, INI_PARSE, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Parse statements */ + SQLGetPrivateProfileString(section, INI_PARSE, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.parse = atoi(temp); - else if (!override) + else if ( ! override) globals.parse = DEFAULT_PARSE; - /* SQLCancel calls SQLFreeStmt in Driver Manager */ - SQLGetPrivateProfileString(section, INI_CANCELASFREESTMT, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* SQLCancel calls SQLFreeStmt in Driver Manager */ + SQLGetPrivateProfileString(section, INI_CANCELASFREESTMT, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.cancel_as_freestmt = atoi(temp); - else if (!override) + else if ( ! override) globals.cancel_as_freestmt = DEFAULT_CANCELASFREESTMT; - /* UseDeclareFetch is stored in the driver section only */ - SQLGetPrivateProfileString(section, INI_USEDECLAREFETCH, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* UseDeclareFetch is stored in the driver section only */ + SQLGetPrivateProfileString(section, INI_USEDECLAREFETCH, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.use_declarefetch = atoi(temp); - else if (!override) + else if ( ! override) globals.use_declarefetch = DEFAULT_USEDECLAREFETCH; - /* Max Varchar Size */ - SQLGetPrivateProfileString(section, INI_MAXVARCHARSIZE, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Max Varchar Size */ + SQLGetPrivateProfileString(section, INI_MAXVARCHARSIZE, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.max_varchar_size = atoi(temp); - else if (!override) + else if ( ! override) globals.max_varchar_size = MAX_VARCHAR_SIZE; - /* Max TextField Size */ - SQLGetPrivateProfileString(section, INI_MAXLONGVARCHARSIZE, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Max TextField Size */ + SQLGetPrivateProfileString(section, INI_MAXLONGVARCHARSIZE, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.max_longvarchar_size = atoi(temp); - else if (!override) + else if ( ! override) globals.max_longvarchar_size = TEXT_FIELD_SIZE; - /* Text As LongVarchar */ - SQLGetPrivateProfileString(section, INI_TEXTASLONGVARCHAR, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Text As LongVarchar */ + SQLGetPrivateProfileString(section, INI_TEXTASLONGVARCHAR, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.text_as_longvarchar = atoi(temp); - else if (!override) + else if ( ! override) globals.text_as_longvarchar = DEFAULT_TEXTASLONGVARCHAR; - /* Unknowns As LongVarchar */ - SQLGetPrivateProfileString(section, INI_UNKNOWNSASLONGVARCHAR, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Unknowns As LongVarchar */ + SQLGetPrivateProfileString(section, INI_UNKNOWNSASLONGVARCHAR, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.unknowns_as_longvarchar = atoi(temp); - else if (!override) + else if ( ! override) globals.unknowns_as_longvarchar = DEFAULT_UNKNOWNSASLONGVARCHAR; - /* Bools As Char */ - SQLGetPrivateProfileString(section, INI_BOOLSASCHAR, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Bools As Char */ + SQLGetPrivateProfileString(section, INI_BOOLSASCHAR, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.bools_as_char = atoi(temp); - else if (!override) + else if ( ! override) globals.bools_as_char = DEFAULT_BOOLSASCHAR; - /* Extra Systable prefixes */ - - /* - * Use @@@ to distinguish between blank extra prefixes and no key - * entry - */ - SQLGetPrivateProfileString(section, INI_EXTRASYSTABLEPREFIXES, "@@@", - temp, sizeof(temp), filename); - if (strcmp(temp, "@@@")) + /* Extra Systable prefixes */ + /* Use @@@ to distinguish between blank extra prefixes and no key entry */ + SQLGetPrivateProfileString(section, INI_EXTRASYSTABLEPREFIXES, "@@@", + temp, sizeof(temp), filename); + if ( strcmp(temp, "@@@" )) strcpy(globals.extra_systable_prefixes, temp); - else if (!override) + else if ( ! override) strcpy(globals.extra_systable_prefixes, DEFAULT_EXTRASYSTABLEPREFIXES); mylog("globals.extra_systable_prefixes = '%s'\n", globals.extra_systable_prefixes); - /* Dont allow override of an override! */ - if (!override) - { + /* Dont allow override of an override! */ + if ( ! override) { - /* - * ConnSettings is stored in the driver section and per datasource - * for override - */ - SQLGetPrivateProfileString(section, INI_CONNSETTINGS, "", - globals.conn_settings, sizeof(globals.conn_settings), filename); + /* ConnSettings is stored in the driver section and per datasource for override */ + SQLGetPrivateProfileString(section, INI_CONNSETTINGS, "", + globals.conn_settings, sizeof(globals.conn_settings), filename); - /* Default state for future DSN's Readonly attribute */ - SQLGetPrivateProfileString(section, INI_READONLY, "", - temp, sizeof(temp), filename); - if (temp[0]) + /* Default state for future DSN's Readonly attribute */ + SQLGetPrivateProfileString(section, INI_READONLY, "", + temp, sizeof(temp), filename); + if ( temp[0] ) globals.onlyread = atoi(temp); else globals.onlyread = DEFAULT_READONLY; - /* - * Default state for future DSN's protocol attribute This isn't a - * real driver option YET. This is more intended for - * customization from the install. - */ - SQLGetPrivateProfileString(section, INI_PROTOCOL, "@@@", - temp, sizeof(temp), filename); - if (strcmp(temp, "@@@")) + /* Default state for future DSN's protocol attribute + This isn't a real driver option YET. This is more + intended for customization from the install. + */ + SQLGetPrivateProfileString(section, INI_PROTOCOL, "@@@", + temp, sizeof(temp), filename); + if ( strcmp(temp, "@@@" )) strcpy(globals.protocol, temp); - else + else strcpy(globals.protocol, DEFAULT_PROTOCOL); + } } /* This function writes any global parameters (that can be manipulated) - to the ODBCINST.INI portion of the registry + to the ODBCINST.INI portion of the registry */ -void -updateGlobals(void) +void updateGlobals(void) { - char tmp[128]; +char tmp[128]; sprintf(tmp, "%d", globals.fetch_max); SQLWritePrivateProfileString(DBMS_NAME, - INI_FETCH, tmp, ODBCINST_INI); + INI_FETCH, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.commlog); SQLWritePrivateProfileString(DBMS_NAME, - INI_COMMLOG, tmp, ODBCINST_INI); + INI_COMMLOG, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.disable_optimizer); SQLWritePrivateProfileString(DBMS_NAME, - INI_OPTIMIZER, tmp, ODBCINST_INI); + INI_OPTIMIZER, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.ksqo); SQLWritePrivateProfileString(DBMS_NAME, - INI_KSQO, tmp, ODBCINST_INI); + INI_KSQO, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.unique_index); SQLWritePrivateProfileString(DBMS_NAME, - INI_UNIQUEINDEX, tmp, ODBCINST_INI); + INI_UNIQUEINDEX, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.onlyread); SQLWritePrivateProfileString(DBMS_NAME, - INI_READONLY, tmp, ODBCINST_INI); + INI_READONLY, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.use_declarefetch); SQLWritePrivateProfileString(DBMS_NAME, - INI_USEDECLAREFETCH, tmp, ODBCINST_INI); + INI_USEDECLAREFETCH, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.unknown_sizes); SQLWritePrivateProfileString(DBMS_NAME, - INI_UNKNOWNSIZES, tmp, ODBCINST_INI); + INI_UNKNOWNSIZES, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.text_as_longvarchar); SQLWritePrivateProfileString(DBMS_NAME, - INI_TEXTASLONGVARCHAR, tmp, ODBCINST_INI); + INI_TEXTASLONGVARCHAR, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.unknowns_as_longvarchar); SQLWritePrivateProfileString(DBMS_NAME, - INI_UNKNOWNSASLONGVARCHAR, tmp, ODBCINST_INI); + INI_UNKNOWNSASLONGVARCHAR, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.bools_as_char); SQLWritePrivateProfileString(DBMS_NAME, - INI_BOOLSASCHAR, tmp, ODBCINST_INI); + INI_BOOLSASCHAR, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.parse); SQLWritePrivateProfileString(DBMS_NAME, - INI_PARSE, tmp, ODBCINST_INI); + INI_PARSE, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.cancel_as_freestmt); SQLWritePrivateProfileString(DBMS_NAME, - INI_CANCELASFREESTMT, tmp, ODBCINST_INI); + INI_CANCELASFREESTMT, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.max_varchar_size); SQLWritePrivateProfileString(DBMS_NAME, - INI_MAXVARCHARSIZE, tmp, ODBCINST_INI); + INI_MAXVARCHARSIZE, tmp, ODBCINST_INI); sprintf(tmp, "%d", globals.max_longvarchar_size); SQLWritePrivateProfileString(DBMS_NAME, - INI_MAXLONGVARCHARSIZE, tmp, ODBCINST_INI); + INI_MAXLONGVARCHARSIZE, tmp, ODBCINST_INI); SQLWritePrivateProfileString(DBMS_NAME, - INI_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, ODBCINST_INI); + INI_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, ODBCINST_INI); SQLWritePrivateProfileString(DBMS_NAME, - INI_CONNSETTINGS, globals.conn_settings, ODBCINST_INI); + INI_CONNSETTINGS, globals.conn_settings, ODBCINST_INI); } |