1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
/*
* This file contains the ODBCINSTGetProperties function.
*
* It is required by unixODBC (http://www.unixodbc.org) to define DSNs.
*
* This version is the setup for Mimer SQL (http://developer.mimer.se).
*
* Revision 1.1 2004/01/21 per.bengtsson@mimer.se
*
*/
#include <odbcinstext.h>
static const char *vHost[] =
{
"localhost",
NULL
};
static const char *vPort[] =
{
"1360",
NULL
};
static const char *vUser[] =
{
"SYSADM",
NULL
};
static const char *vDescr[] =
{
"Mimer SQL",
NULL
};
static const char *vYesNo[] =
{
"Yes",
"No",
NULL
};
int ODBCINSTGetProperties(HODBCINSTPROPERTY hLastProperty)
{
/*
* Database name
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_TEXTEDIT;
strncpy(hLastProperty->szName, "Database", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = strdup("The name of the Mimer SQL database server");
/*
* Host name
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_COMBOBOX;
hLastProperty->aPromptData = malloc(sizeof(vHost));
memcpy(hLastProperty->aPromptData, vHost, sizeof(vHost));
strncpy(hLastProperty->szName, "Host", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = strdup("Hostname or IP address of computer running the Mimer SQL database server");
/*
* Port number
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_COMBOBOX;
hLastProperty->aPromptData = malloc(sizeof(vPort));
memcpy(hLastProperty->aPromptData, vPort, sizeof(vPort));
strncpy(hLastProperty->szName, "Port", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = strdup("Port number (default is 1360)");
/*
* User name
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_COMBOBOX;
hLastProperty->aPromptData = malloc(sizeof(vUser));
memcpy(hLastProperty->aPromptData, vUser, sizeof(vUser));
strncpy(hLastProperty->szName, "User", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = strdup("Database user to connect as (optional)");
/*
* Password
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_TEXTEDIT;
strncpy(hLastProperty->szName, "Password", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = strdup("Password for the database user (optional)");
/*
* Trace option
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_LISTBOX;
hLastProperty->aPromptData = malloc(sizeof(vYesNo));
memcpy(hLastProperty->aPromptData, vYesNo, sizeof(vYesNo));
strncpy(hLastProperty->szName, "Trace", INI_MAX_PROPERTY_NAME);
strcpy(hLastProperty->szValue, "No");
hLastProperty->pszHelp = strdup("ODBC trace feature (optional)");
/*
* Trace file name
*/
hLastProperty->pNext = (HODBCINSTPROPERTY)malloc(sizeof(ODBCINSTPROPERTY));
hLastProperty = hLastProperty->pNext;
memset(hLastProperty, 0, sizeof(ODBCINSTPROPERTY));
hLastProperty->nPromptType = ODBCINST_PROMPTTYPE_FILENAME;
strncpy(hLastProperty->szName, "TraceFile", INI_MAX_PROPERTY_NAME);
strncpy(hLastProperty->szValue, "", INI_MAX_PROPERTY_VALUE);
hLastProperty->pszHelp = strdup("ODBC trace file name (used if Trace is enabled)");
return 1;
}
/**************************************************/
|