. . . . "2019-02-21T15:16:34Z" . . "ODBCMacOSX" . "2019-02-21T15:16:34.712068"^^ . "4b08aab140fe969c8bbfccc83beded50" . "ODBCMacOSX" . "---+ ODBC and Mac OS X a/k/a macOS\r\n\r\n%TOC%\r\n\r\n---+++ Standard ODBC Architecture\r\n\r\nODBC data access comprises the following, four components:\r\n\r\n\r\n---++++ Application\r\n\r\nMost end users use ODBC-compliant applications to access their data stores.\r\nODBC-compliant applications are executables, which issue ODBC API calls.\r\nThese API calls are implemented by ODBC drivers that are customized for use\r\nwith the data store. These calls enable the application to connect to the\r\ndata store and query the data store via the ODBC driver.\r\n\r\n\r\n---++++ Driver Manager\r\n\r\nThe driver manager is a library, which manages communications between\r\napplications and ODBC drivers. It responds to all ODBC connection requests\r\nmade by applications, and it loads the ODBC drivers that are associated\r\nwith the requests. Once the drivers are loaded, the driver manager\r\ntranslates applications' function calls into the corresponding ODBC API\r\ncalls, and it issues these calls to the drivers. When the applications\r\ncomplete their requests, the driver manager terminates the connections and\r\nunloads the drivers.\r\n\r\nUsers may encounter the following driver managers on Mac client systems:\r\n\r\n| *Platform* | *Driver Manager* |\r\n| Darwin | OpenLink's Darwin client installer provides the iODBC driver manager. Users may also encounter unixODBC, mac:ODBC, and other driver managers.| \r\n| Mac Classic a/k/a Mac OS 9 | OpenLink's Mac Classic client installer provides its own driver manager for this platform. Users may also encounter another driver manager created by Visigenic and maintained by Intersolv, Merant, and Data Direct respectively.| \r\n| Mac OS X | OpenLink's default Mac OS X client installer provides an iODBC frameworks-based driver manager. Apple's Jaguar installer provides an iODBC dylibs-based driver manager. Users may also encounter unixODBC, mac:ODBC, and other driver managers.| \r\n\r\n\r\n---++++ ODBC Drivers\r\n\r\nODBC drivers are libraries. These libraries implement ODBC API functions,\r\nwhich enable applications to speak to databases. Typically, applications\r\nare linked against driver managers, which load the appropriate driver\r\nlibraries. However, applications may be linked directly to drivers. In this\r\ninstance, driver libraries perform driver manager library functions.\r\n\r\n\r\n---++++ Data sources\r\n\r\nThe term data source has two, distinct meanings. First, data source refers\r\nto the actual flat files, spreadsheets, or database management systems,\r\nwhich store data. Second, data source refers to the collection of\r\nparameters that applications use to establish connections to data stores.\r\nThis data source passes a driver name, database name, server hostname, and\r\nother parameters, which are necessary to identify a database or similar\r\nstorage entity.\r\n\r\n\r\n---+++ ODBC Driver Architecture with Driver Manager\r\n\r\nFigure 1-1 illustrates the default architecture for ODBC connectivity. The\r\ndefault architecture employs both a driver manager and ODBC drivers.\r\n\r\n\"Macfig1.jpg\"\r\n\r\n\r\n---+++ ODBC Driver Architecture without Driver Manager\r\n\r\nFigure 1-2 illustrates ODBC connectivity without a driver manager\r\ncomponent. ODBC connectivity is possible, in the absence of a driver\r\nmanager, if the client application is linked directly to the ODBC driver.\r\nIn some instances, a symbolic link is created, which uses a driver manager\r\nlibrary name to point to an ODBC driver library.\r\n\r\n\"Macfig2.jpg\"\r\n\r\n\r\n---+++ OpenLink ODBC Driver Architecture\r\n\r\nOpenLink Software provides two ODBC driver formats. Use of these drivers\r\nrequires knowledge of the following items:\r\n\r\n * Environment Variables\r\n * Client Libraries\r\n * Header Files\r\n * Configuration Files\r\n * Administrative Assistants\r\n * Server Components\r\n\r\n---++++Environment Variables\r\n\r\nEnvironment variables pass the locations of files and directories, which\r\nthe operating system or applications need to accomplish tasks. Users do not\r\nneed to set environment variables on Mac Classic and Mac OS X operating\r\nsystems. Users do need to set environment variables on Darwin.\r\n\r\nThe following table lists environment variables, which must be set on Darwin clients.\r\n\r\n| *Environment Variable* | *Description* |\r\n| CLASSPATH | Passes the full path to OpenLink's Java archive (.jar) files. These files comprise the OpenLink JDBC client. This variable is not required for ODBC connectivity.| \r\n| LD_LIBRARY_PATH | Passes the full path to various library directories on Darwin computers. This variable must include the OpenLink /lib sub-directory.| \r\n| ODBCINI | Passes the full path to the odbc.ini file, which resides in the OpenLink /bin sub-directory.| \r\n| ODBCINSTINI | Passes the full path to the odbcinst.ini file, which resides in the OpenLink /bin sub-directory.| \r\n| OPENLINKINI | Passes the full path to the openlink.ini file, which resides in the OpenLink /bin sub-directory.| \r\n| PATH | Passes the full path to directories, which contain executables. This variable must include the OpenLink /bin sub-directory.| \r\n\r\n---++++Setting Environment Variables on Darwin\r\n\r\nOpenLink's Darwin installers create openlink.sh and openlink.csh files in\r\nthe root of the installation. These files contain all the environment\r\nvariables, which need to be set for OpenLink client connectivity. Users\r\nmust execute these files in the appropriate shell. C shell users may\r\nexecute openlink.csh. Bash and Bourne shell users may execute openlink.sh.\r\nUsers with different shells are encouraged to switch to C, Bash, or Bourne\r\nbefore executing the files.\r\n\r\nExpert users may set and export the appropriate variables using the Darwin\r\ncommand line. For example:\r\n\r\n\r\nexport ODBCINI=/usr/openlink/bin/odbc.ini\r\n\r\n\r\nUsers may also add the variables to their .profiles to insure that the\r\nvariables are set at login to their client systems.\r\n\r\n---++++ Client Libraries\r\n\r\nOpenLink's drivers and iODBC driver manager are library files. Users will\r\nencounter a variety of library file formats and installation locals on\r\ndifferent, client operating systems.\r\n\r\nThe following table holds a list of common Darwin libraries. Each of\r\nthese files appears in the /lib sub-directory of the OpenLink client\r\ninstallation. Click here to see a complete list of OpenLink libraries by\r\nplatform.\r\n\r\n\r\n| *Filename* | *Description* |\r\n| libiodbc.la | Static, iODBC driver manager library | \r\n| libiodbc.so | Shared, iODBC driver manager library. Older, iODBC driver manager libraries are linked to the latest revision | \r\n| libiodbc.so.2 | Revised, iODBC driver manager library. Older, iODBC driver manager libraries are linked to the latest revision | \r\n| libiodbc.so.2.1.2 | Revised, iODBC driver manager library. Older, iODBC driver manager libraries are linked to the latest revision | \r\n| mys3_st_lt.la | Static, single-threaded MySQL Single-Tier driver | \r\n| mys3_st_lt.so | Shared, single-threaded MySQL Single-Tier driver | \r\n| oplodbc.la | Static, Multi-Tier ODBC driver | \r\n| oplodbc.so | Shared, Multi-Tier ODBC driver. Older, Multi-Tier ODBC driver library files are linked to the latest revision | \r\n| oplodbc.so.1 | Revised, Multi-Tier ODBC driver library. Older, Multi-Tier ODBC driver library files are linked to the latest revision | \r\n| oplodbc.so.1.0.0 | Revised, Multi-Tier ODBC driver library. Older, Multi-Tier ODBC driver library files are linked to the latest revision | \r\n| ora81_st_lt.la | Static, single-threaded Oracle 8.1.x Single-Tier driver | \r\n| ora81_st_lt.so | Shared, single-threaded Oracle 8.1.x Single-Tier driver | \r\n| pgr7_mt_lt.la | Static, multi-threaded PostgreSQL Single-Tier driver | \r\n| pgr7_mt_lt.so | Shared, multi-threaded PostgreSQL Single-Tier driver | \r\n| pgr7_st_lt.la | Static, single-threaded PostgreSQL Single-Tier driver | \r\n| pgr7_st_lt.so | Shared, single-threaded PostgreSQL Single-Tier driver | \r\n| sql_st_lt.la | Static, single-threaded MS SQLServer Single-Tier driver | \r\n| sql_st_lt.so | Shared, single-threaded MS SQLServer Single-Tier driver | \r\n| syb12_st_lt.la | Static, single-threaded Sybase Single-Tier driver | \r\n| syb12_st_lt.so | Shared, single-threaded Sybase Single-Tier driver | \r\n\r\n---++++ Header Files\r\n\r\nOpenLink Software provides a separate iODBC SDK product installer for Mac\r\nClassic and Mac OS X platforms. These installers contain the sql.h,\r\nsqlext.h, and sqltypes.h header files. Developers may use these files to\r\nbuild ODBC-compliant applications.\r\n\r\n---++++ Configuration Files\r\n\r\nOpenLink's Darwin-based Single-Tier drivers use the openlink.ini file to\r\nobtain database-specific environment variable settings. The openlink.ini\r\nfile resides in the /bin sub-directory of Single-Tier client installations.\r\n\r\nOpenLink's Multi-Tier brokers read the oplrqb.ini file to resolve ODBC\r\nconnection requests and to enforce OpenLink's sophisticated, rule-based\r\nsecurity. The oplrqb.ini file resides in the /bin sub-directory of\r\nOpenLink's server components installations.\r\n\r\n---++++ Administrative Assistants\r\n\r\nOpenLink Software produces two, graphical Administrative Assistants. The\r\nMulti-Tier Administrative Assistant is a web-based GUI, which allows users\r\nto configure all aspects of Multi-Tier connectivity. This assistant allows\r\nusers to create Multi-Tier data source names, configure Multi-Tier Server\r\ncomponents, configure rules-based security, and debug ODBC connectivity\r\nproblems.\r\n\r\nOpenLink Software also produces the independent, HTTP-based iODBC Data\r\nSources Administrator. This web-based GUI enables users to create and\r\nadminister OpenLink and non-OpenLink ODBC data source names using one,\r\nuser-friendly interface.\r\n\r\n---++++ Server Components\r\n\r\nOpenLink's Multi-Tier drivers implement a client/server connectivity model.\r\nThe Multi-Tier client comprises a driver manager and client-side ODBC\r\ndriver. The Multi-Tier server component comprises a request broker and one\r\nor more database agents.\r\n\r\nThe request broker is a generic, listening process. It responds to ODBC\r\nrequests made by the Multi-Tier client driver. The broker reviews these\r\nrequests and spawns the appropriate database agent. The database agent is\r\nthe only portion of the Multi-Tier product portfolio that is written to a\r\nspecific CLI. Specifically, the database agent speaks the CLI of the\r\ndatabase to which it is meant to connect. Hence, the agent is able to\r\nsubmit the SQL request to the database, retrieve its results, and convey\r\nthose results to the client application.\r\n\r\n\r\n---+++ Configuring OpenLink Data Source Names\r\n\r\nUsers must create ODBC data source names to establish connectivity between\r\nclient applications and SQL data stores. ODBC data source names are\r\ncollections of parameters, which enable the OpenLink driver to identify and\r\nconnect to the data store. There are several means, which users may employ\r\nto create ODBC data source names.\r\n\r\n---++++Configuring Darwin Data Source Names\r\n\r\nThere are three methods, which users may employ to configure Darwin data\r\nsource names. Expert users may configure the odbc.ini file using\r\nvi or a similar text editor. Novice users may use the HTTP-Based\r\niODBC Data Sources Administrator, or they may use the Multi-Tier\r\nAdministrative Assistant.\r\n\r\n---++++ The odbc.ini File\r\n\r\nThe odbc.ini file appears in the /bin sub-directory of the OpenLink client\r\ninstallation. Users may open this file with vi or a similar text editor.\r\nThe following table describes sections, which users will encounter in\r\nodbc.ini.\r\n\r\n| *Section* | *Description* |\r\n| ODBC Data Sources| This section names each of the ODBC data sources that appear in the odbc.ini file. It also pairs the appropriate ODBC driver name with the data source name.| \r\n| Data Source Specifications| This section lists the actual data source names. Each data source name is composed of a formal name and a parameter list.| \r\n\r\n---++++ODBC Data Sources\r\n\r\nThe ODBC Data Sources section lists the names of the individual data\r\nsources and pairs the names with the appropriate ODBC client driver. These\r\ndata sources names are associated with formal data source specifications,\r\nwhich appear later in the file.\r\n\r\nHere is the ODBC Data Sources format:\r\n\r\n\r\n[ODBC Data Sources] \r\ndata_source_name=ODBC_client_driver_name\r\n\r\n\r\nHere is a sample ODBC Data Sources section with data source names:\r\n\r\n\r\n[ODBC Data Sources]\r\nora81_lite = OpenLink Oracle 8.1 Lite Driver (multi threaded)\r\npgr7_lite = OpenLink PostgreSQL Lite Driver (multi threaded)\r\n\r\n\r\n---++++ Data Source Specification\r\n\r\nEach [ODBC Data Sources] data source name has a corresponding data source\r\nspecification. The data source specification lists parameters, which are\r\nnecessary to establish the ODBC connection. Here is the OpenLink data\r\nsource specification format:\r\n\r\n\r\n\r\n[data_source_name]\r\nDriver = driver_path\r\nServerType = openlink_domain_alias\r\nUsername = database_username\r\nPassword = database_password\r\nDatabase = database_name_or_oracle_sid\r\nOptions = three_tier_or_sockets_connection_parameters\r\nFetchBufferSize = buffer_size\r\nReadOnly = enable_disable_readonly_access_to_database\r\nDeferLongFetch = enable_disable_deferlongfetch_option\r\nJetFix = enable_disable_jetfix_option\r\nDescription = data_source_description\r\n\r\n\r\nHere is a sample data source specification:\r\n\r\n\r\n\r\n[Oracle]\r\nDriver = /usr/openlink/lib/ora81_st_lt.sl\r\nServerType = Oracle 8.1.x\r\nUsername = scott\r\nPassword = tiger\r\nDatabase = ORCL\r\nOptions = \r\nFetchBufferSize = 99\r\nReadOnly = Yes\r\nDeferLongFetch = No\r\nJetFix = No\r\nDescription = Oracle DSN\r\n\r\n\r\nThe following table explains the parameters that appear in the data source\r\nspecification sections.\r\n\r\n| *Parameter* | *Description* |\r\n| [Data Source Name] | Passes a descriptive data source title. This title must match the title passed under the [ODBC Data Sources] heading. | \r\n| Driver | Passes the full path to the ODBC client driver. | \r\n| ServerType | Passes a valid OpenLink domain alias. This domain alias must match a valid domain alias in the Single-Tier openlink.ini file or Multi-Tier oplrqb.ini file. The drivers use these domain aliases as starting points from which to assess rules, environment variables, and agent binaries to instantiate for connections.| \r\n| Username | Passes a valid database username. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system username.| \r\n| Password | Passes a valid database password. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system password.| \r\n| Database | Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases. | \r\n| Options | Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases. | \r\n| FetchBufferSize | Passes an integer, which represents the number of rows that the driver will return during an individual fetch. | \r\n| ReadOnly | Passes a Yes or No value to enable or disable READONLY access to the data store. | \r\n| DeferLongFetch | Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance. | \r\n| JetFix | Passes a Yes or No value to enable or disable JetFix. JetFix facilitates translation of data types by Microsoft's Jet Engine. This feature is intended primarily for use with Microsoft client applications on Windows. | \r\n| Description | Passes a description of the use or nature of the data source name. | \r\n\r\nThe following table explains additional values, which may be added to Multi-Tier data source name specifications.\r\n\r\n| *Parameter* | *Description* |\r\n| Protocol | Passes a valid OpenLink network protocol. The default is TCP/IP.| \r\n| Hostname | Passes the hostname or IP address of the machine, which contains the OpenLink request broker.| \r\n| Port | Passes the TCP port on which the request broker listens. This TCP port is associated with the ListenPort parameter, and it appears in the [Protocol TCP] section of the Multi-Tier Rules Book (oplrqb.ini).| \r\n\r\n\r\nOpenLink produces the HTTP-Based iODBC Data Sources Administrator for\r\nDarwin and other platforms. This Web-based administrator is a stand-alone\r\nGUI interface to the iODBC driver manager. It is similar to the Microsoft\r\nODBC Data Sources Administrator, and it allows users to create OpenLink and\r\nnon-OpenLink data source names.\r\n\r\nUse the following instructions to create data source names with the iODBC\r\nData Sources Administrator.\r\n\r\n * cd into the /bin/w3config sub-directory of the client's OpenLink installation.\r\n * Use a text editor to open the www_sv.ini file.\r\n * Locate the [Startup] section.\r\n * Record the value passed to HttpPort. For example:\r\n\r\n[Startup]\r\nHttpPort = 8000\r\n\r\n * Exit the file.\r\n * cd into the /bin sub-directory of the client's OpenLink installation.\r\n * Run the following command:\r\n\r\n./iodbc-admin-httpd.sh start\r\n\r\n * Open a Web browser.\r\n * Enter the following URL: http://localhost:HttpPort_from_www_sv.ini\r\n * Expand the following menu items: Client Components Administration -> Data Source Name Configuration -> Edit Data Sources by Wizard -> Edit ODBC Data Sources.\r\n * Provide the administrator username and password. Both fields default to admin.\r\n * Click Add.\r\n * Select the appropriate OpenLink ODBC driver.\r\n * Click Next.\r\n * Use setup screens 1 to 5 to provide connection parameters and to disable or enable optional features. \r\nFigures 1-3 describes Single-Tier parameters and options. Figure 1-4 describes Multi-Tier parameters and options.\r\n\r\n * Figure 1-3 - Single-Tier Parameters & Options* \r\n\r\n| *Parameter* | *Description* |\r\n| Name | Passes a descriptive data source title.| \r\n| Comment | Passes a description of the use or nature of the data source name.| \r\n| Database Name | Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases.| \r\n| Server | Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| Username | Passes a valid database username. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system username.| \r\n| Read-only connection | Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| No Login Dialog Box | Enables or disables the login popup box.| \r\n| Defer Fetching of long data | Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n| Row buffer size | Passes an integer, which represents the number of rows that the driver will return during an individual fetch operation.| \r\n| Jet Fix | Passes a Yes or No value to enable or disable JetFix. JetFix facilitates translation of data types by Microsoft's Jet Engine. This feature is intended for use with MS Access client applications.| \r\n| Environment | Passes a valid OpenLink domain alias. This domain alias must match a valid domain alias in the Single-Tier openlink.ini file. The drivers use these domain aliases as starting points from which to assess rules, environment variables, and agent binaries to instantiate for connections.| \r\n\r\n * Note:* The Server parameter name changes to reflect the database to which you are trying to connect. For instance, the setup routine will replace Server with Net 8 Service Name, if you choose an Oracle Single-Tier driver.\r\n\r\n * Figure 1-4 - Multi-Tier Parameters & Options* \r\n\r\n| *Parameter* | *Description* |\r\n| Name| Passes a descriptive data source title.| \r\n| Comment| Passes a description of the use or nature of the data source name.| \r\n| Domain| Passes a valid OpenLink domain alias. This domain alias must match a valid domain alias in the Multi-Tier oplrqb.ini file. The drivers use these domain aliases as starting points from which to assess rules, environment variables, and agent binaries to instantiate for connections.| \r\n| Hostname| Passes the hostname or IP address of the machine, which contains the OpenLink request broker.| \r\n| Port| Passes the TCP port, on which the request broker listens. This TCP port is associated with the ListenPort parameter, and it appears in the [Protocol TCP] section of the Multi-Tier Rules Book (oplrqb.ini).| \r\n| Protocol| Passes a valid OpenLink network protocol. The default is TCP/IP.| \r\n| Database Name| Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases.| \r\n| Server| Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| Username| Passes a valid database username. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system username.| \r\n| Read-only Connection| Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| No Login Dialog Box| Enables or disables login popup box.| \r\n| Defer Fetching of long data| Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n| Row buffer size| Passes an integer, which represents the number of rows that the driver will return during an individual fetch.| \r\n\r\n * Note:* The Server parameter name changes to reflect the database to which you are trying to connect. For instance, the setup routine will replace Server with Net 8 Service Name, if you choose an Oracle domain.\r\n\r\n * Click the Save button, which appears on the sixth setup screen.\r\n * Click the Finish button, which appears on the last setup screen.\r\n\r\n---++++ The Multi-Tier Administrative Assistant\r\n\r\nOpenLink produces the Multi-Tier Administrative Assistant for all server\r\noperating systems, which it supports. This Web-based assistant is powered\r\nby OpenLink's server components, and it provides utilities to configure\r\nthese components. However, the assistant also provides a GUI interface to\r\nthe iODBC driver manager. This interface is similar to the Microsoft ODBC\r\nData Sources Administrator, and it allows users to create OpenLink data\r\nsource names.\r\n\r\nUse the following instructions to create data source names with the\r\nMulti-Tier Administrative Assistant.\r\n\r\n * cd into the /bin/w3config sub-directory of the server's OpenLink installation.\r\n * Use a text editor to open the www_sv.ini file.\r\n * Locate the [Startup] section.\r\n * Record the value passed to HttpPort. For example:\r\n\r\n[Startup]\r\nHttpPort = 8000\r\n\r\n * Exit the file.\r\n * cd into the /bin sub-directory of the server's OpenLink installation.\r\n * Run the following command:\r\noplrqb\r\n * Open a Web browser.\r\n * Enter the following URL:\r\n\r\nhttp://localhost:HttpPort_from_www_sv.ini\r\n\r\n * Expand the following menu items: Client Components Administration -> Data Source Name Configuration -> Edit Data Sources by Wizard -> Edit ODBC Data Sources.\r\n * Provide the administrator username and password. Both fields default to admin.\r\n * Click Add.\r\n * Select the OpenLink Generic ODBC driver.\r\n * Click Next.\r\n * Use setup screens 1 to 5 to provide connection parameters and to disable or enable optional features. \r\n\r\nFigure 1-5 describes Multi-Tier parameters and options\r\n\r\n * Figure 1-5 - Multi-Tier Parameters & Options* \r\n\r\n\r\n| *Parameter* | *Description* |\r\n| Name| Passes a descriptive data source title.| \r\n| Comment| Passes a description of the use or nature of the data source name.| \r\n| Domain| Passes a valid OpenLink domain alias. This domain alias must match a valid domain alias in the Multi-Tier oplrqb.ini file. The drivers use these domain aliases as starting points from which to assess rules, environment variables, and agent binaries to instantiate for connections.| \r\n| Hostname| Passes the hostname or IP address of the machine, which contains the OpenLink request broker.| \r\n| Port| Passes the TCP port, on which the request broker listens. This TCP port is associated with the ListenPort parameter, and it appears in the [Protocol TCP] section of the Multi-Tier Rules Book (oplrqb.ini).| \r\n| Protocol| Passes a valid OpenLink network protocol. The default is TCP/IP.| \r\n| Database Name| Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases.| \r\n| Server| Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| Username| Passes a valid database username. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system username.| \r\n| Read-only Connection| Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| No Login Dialog Box| Enables or disables login popup box.| \r\n| Defer Fetching of long data| Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n| Row buffer size| Passes an integer, which represents the number of rows that the driver will return during an individual fetch.| \r\n\r\n * Note:* The Server parameter name changes to reflect the database to which you are trying to connect. For instance, the setup routine will replace Server with Net 8 Service Name, if you choose an Oracle domain.\r\n\r\n\r\n * Click the Save button, which appears on the sixth setup screen.\r\n * Click the Finish button, which appears on the last setup screen.\r\n\r\n---++++Configuring Mac Classic Data Source Names\r\n\r\nOpenLink Software provides Multi-Tier client software for the Mac Classic\r\noperating system. The following instructions will enable users to create\r\nMulti-Tier data source names on Mac Classic.\r\n\r\n * Expand the Apple menu.\r\n * Expand the Control Panels menu.\r\n * Select the ODBC Setup PPC menu item.\r\n * Click on the System DSN, User DSN, or File DSN tab.\r\n * Click Add.\r\n * Select the OpenLink Generic ODBC driver.\r\n * Click Finish.\r\n * Use the Generic ODBC Setup dialog to provide connection parameters and to disable or enable optional features.\r\nFigure 1-6 describes Multi-Tier parameters and options\r\n\r\n * Figure 1-6 - Multi-Tier Parameters & Options* \r\n\r\n| *Parameter* | *Description* |\r\n| Name| Passes a descriptive data source title.| \r\n| Comment| Passes a description of the use or nature of the data source name.| \r\n| Domain| Passes a valid OpenLink domain alias. This domain alias must match a valid domain alias in the Multi-Tier oplrqb.ini file. The drivers use these domain aliases as starting points from which to assess rules, environment variables, and agent binaries to instantiate for connections.| \r\n| Hostname| Passes the hostname or IP address of the machine, which contains the OpenLink request broker.| \r\n| Port| Passes the TCP port, on which the request broker listens. This TCP port is associated with the ListenPort parameter, and it appears in the [Protocol TCP] section of the Multi-Tier Rules Book (oplrqb.ini).| \r\n| Protocol| Passes a valid OpenLink network protocol. The default is TCP/IP.| \r\n| Database Name| Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases.| \r\n| Server| Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| Username| Passes a valid database username. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system username.| \r\n| Read-only Connection| Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| No Login Dialog Box| Enables or disables login popup box.| \r\n| Defer Fetching of long data| Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n| Row buffer size| Passes an integer, which represents the number of rows that the driver will return during an individual fetch.| \r\n\r\n * Note:* The Optional Server parameter name changes to reflect the database to which you are trying to connect. For instance, the setup routine will replace Server with Net 8 Service Name, if you choose an Oracle domain.\r\n\r\n * Click OK to save your data source name.\r\n\r\n---++++Configuring Mac OS X Data Source Names\r\n\r\nThere are two methods, which users may employ to configure Mac OS X data\r\nsource names. Expert users may configure the ODBC.preference file with\r\nTextEdit or a similar text editor. Novice users may use an Aqua GUI ODBC\r\nAdministrator.\r\n\r\n * The ODBC.preference File* \r\n\r\nThe ODBC.preference file appears in the /Library/Preferences directory.\r\nUsers may open this file with TextEdit or a similar text editor. The\r\nfollowing table describes sections, which users will encounter in\r\nODBC.preference.\r\n\r\n\r\n| *Section* | *Description* |\r\n| ODBC Data Sources| This section names each of the ODBC data sources that appear in the ODBC.preference file. It also pairs the appropriate ODBC driver name with the data source name.| \r\n| Data Source Specifications| This section lists the actual data source names. Each data source name is composed of a formal name and a parameter list.| \r\n\r\n---++++ ODBC Data Sources\r\n\r\nThe ODBC Data Sources section lists the names of the individual data sources and pairs the names with the appropriate ODBC client driver. These data sources names are associated with formal data source specifications, which appear later in the file.\r\n\r\nHere is the ODBC Data Sources format:\r\n\r\n\r\n[ODBC Data Sources]\r\ndata_source_name=ODBC_client_driver_name\r\n\r\n\r\nHere is a sample ODBC Data Sources section with data source names:\r\n\r\n\r\n[ODBC Data Sources]\r\nora81_lite = OpenLink Oracle 8.1 Lite Driver (multi threaded)\r\npgr7_lite = OpenLink PostgreSQL Lite Driver (multi threaded)\r\n\r\n\r\n---++++ Data Source Specification\r\n\r\nEach [ODBC Data Sources] data source name has a corresponding data source\r\nspecification. The data source specification lists parameters, which are\r\nnecessary to establish the ODBC connection. Here is the OpenLink Multi-Tier\r\ndata source specification format:\r\n\r\n\r\n\r\n[data_source_name]\r\nDriver = driver_path\r\nDescription = data_source_description\r\nServerType = openlink_domain_alias\r\nFetchBufferSize = buffer_size\r\nHost = hostname_of_machine_which_hosts_OpenLink_server_components\r\nPort = port_on_which_openlink_broker_listens\r\nDatabase = database_name_or_oracle_sid\r\nProtocol = network_communications_protocol\r\nOptions = three_tier_or_sockets_connection_parameters\r\nReadOnly = read_only_flag\r\nUsername = database_username\r\nPassword = database_password\r\nNoLoginBox = enable_disable_login_dialog_box\r\nDeferLongFetch = enable_disable_deferlongfetch_option\r\n\r\n\r\nHere is a sample, Multi-Tier data source specification:\r\n\r\n\r\n\r\n[Oracle]\r\nDriver = /usr/openlink/lib/oplodbc.so.1\r\nDescription = Oracle DSN\r\nServerType = Oracle 8.1.x\r\nFetchBufferSize = 99\r\nHost = localhost\r\nPort = 5000\r\nDatabase = ORCL\r\nProtocol = TCP/IP\r\nOptions = \r\nReadOnly = Yes\r\nUsername = scott\r\nPassword = tiger\r\nNoLoginBox = No\r\nDeferLongFetch = No\r\n\r\n\r\nThe following table explains the parameters that appear in the Multi-Tier\r\ndata source specification sections.\r\n\r\n| *Parameter* | *Description* |\r\n| Name| Passes a descriptive data source title.| \r\n| Comment| Passes a description of the use or nature of the data source name.| \r\n| Domain| Passes a valid OpenLink domain alias. This domain alias must match a valid domain alias in the Multi-Tier oplrqb.ini file. The drivers use these domain aliases as starting points from which to assess rules, environment variables, and agent binaries to instantiate for connections.| \r\n| Hostname| Passes the hostname or IP address of the machine, which contains the OpenLink request broker.| \r\n| Port| Passes the TCP port, on which the request broker listens. This TCP port is associated with the ListenPort parameter, and it appears in the [Protocol TCP] section of the Multi-Tier Rules Book (oplrqb.ini).| \r\n| Protocol| Passes a valid OpenLink network protocol. The default is TCP/IP.| \r\n| Database Name| Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases.| \r\n| Server| Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| Username| Passes a valid database username. If the Multi-Tier OPSYSLOGIN parameter is enabled, this parameter passes a valid operating system username.| \r\n| Read-only Connection| Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| No Login Dialog Box| Enables or disables login popup box.| \r\n| Defer Fetching of long data| Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n| Row buffer size| Passes an integer, which represents the number of rows that the driver will return during an individual fetch.| \r\n\r\nAll OpenLink Single-Tier drivers recognize a common subset of specifications parameters. Individual Single-Tier drivers recognize an additional set of parameters, which are specialized for the database to which they connect.\r\n\r\nHere is a representative Single-Tier data source specification format:\r\n\r\n\r\n\r\n[data_source_name]\r\nDriver = driver_path\r\nDescription = data_source_description\r\nDatabase = database_name_or_oracle_sid\r\nCursor_Sensitivity = enable_disable_dynamic_cursor_row_version_cache\r\nFetchBufferSize = buffer_size\r\nInitialSQL = path_to_script_containing_sql_statements\r\nUserName = database_username\r\nPassword = database_password\r\nMaxRows = maximum_number_of_rows_to_return_per_resultset\r\nNoAutoCommit = enable_disable_autocommit\r\nNoLoginBox = enable_disable_login_dialog_box\r\nNoRowsetSizeLimit = enable_disable_norowsetsizelimit\r\nReadOnly = enable_disable_read_only_access_to_database\r\nOptions = three_tier_or_sockets_connection_parameters\r\nDeferLongFetch = enable_disable_deferlongfetch_option\r\n\r\n\r\nHere is a sample, Single-Tier data source specification:\r\n\r\n\r\n[Oracle]\r\nDriver = /usr/openlink/lib/ora81_st_lt.sl\r\nDescription = Oracle DSN\r\nDatabase = ORCL\r\nCursor_Sensitivity = Yes\r\nFetchBufferSize = 99\r\nInitialSQL = \r\nUserName = scott\r\nPassword = tiger\r\nMaxRows = \r\nNoAutoCommit = Yes\r\nNoLoginBox = No\r\nNoRowsetSizeLimit = Yes\r\nReadOnly = Yes\r\nOptions = \r\nDeferLongFetch = No\r\n\r\n\r\nThe following table explains the parameters, which all Single-Tier drivers recognize.\r\n\r\n\r\n| *Parameter* | *Description* |\r\n| Data Source Name| Passes a descriptive data source title. This title must match the title passed under the [ODBC Data Sources] heading.| \r\n| Driver| Passes the full path to the ODBC client driver.| \r\n| Description| Passes a description of the use or nature of the data source name.| \r\n| Cursor_Sensitivity| Passes a Yes or No value to enable or disable the row version cache, which is used with dynamic cursors.| \r\n| FetchBufferSize| Passes an integer, which represents the number of rows that the driver will return during individual fetch operations.| \r\n| InitialSQL| Passes a path to a file containing SQL statements. These statements are issued against the database upon initial connection. InitialSQL scripts usually contain statements, which set ISOLATION levels.| \r\n| Username| Passes a valid database username.| \r\n| Password| Passes a valid database password| \r\n| MaxRows| Passes an integer, which limits the maximum number of rows that may be returned.| \r\n| NoAutoCommit| Passes a Yes or No value, which enables or disables the driver's autocommit behaviour.| \r\n| NoLoginBox| Passes a Yes or No value to disable or enable the login pop-up box.| \r\n| NoRowsetSizeLimit| Passes a Yes or No value to enable or disable rowset size limits. Default rowset size limits are enforced by the cursor library. These limits prevent the driver from consuming all available memory in the event that rowsets are inordinately large.| \r\n| ReadOnly| Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| Options| Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| DeferLongFetch| Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n\r\n--+++++ MS SQL Server Single-Tier drivers recognize these specialized parameters.\r\n\r\n| *Parameter* | *Description* |\r\n| TDSHost| Passes the hostname or IP address of the machine that hosts SQLServer.| \r\n| TDSPort| Passes the TCP port on which SQLServer listens.| \r\n| TDSVersion| Passes the TDS Version specification number. Do not alter this value.| \r\n| SQLServerCatalog| Passes Yes to use Microsoft SQLServer implementation of catalog calls. Passes No to use Sybase implementation.| \r\n\r\n--+++++ MySQL Single-Tier drivers recognize these specialized parameters.\r\n\r\n| *Parameter*| *Description* | \r\n| Disable ODBC transactions| Disables transaction management. Enforces autocommit for all statements.| \r\n\r\n--+++++ Oracle Single-Tier drivers recognize these specialized parameters.\r\n\r\n| *Parameter*| *Description* | \r\n| OraCatalogs| Promotes efficient processing of Oracle catalog calls such as SQLForeignKey() and SQLPrimaryKeys(). The appropriate odbccat#.sql script must be run before OraCatalogs is enabled. There is one odbccat#.sql script for each Oracle database version.| \r\n| ShowRemarks| Retrieves contents of SQLColumns REMARKS field.| \r\n| UserTblsFirst| Causes user tables to appear at beginning of SQLTables() table name listing.| \r\n| CountProcParms| Insures that number of parameters passed by stored procedures matches the number of parameters expected by SQLProcedures.| \r\n| OCIPrefetchRows| Passes an integer value, which represents the number of rows to prefetch.| \r\n| OCIPrefetchMemory| Passes an integer value, which represents the amount of memory to use for prefetch operations.| \r\n| OracleDirectory| Passes the full path to the Oracle home directory.| \r\n\r\n--+++++ PostgreSQL Single-Tier drivers recognize these specialized parameters.\r\n\r\n| *Parameter*| *Description* | \r\n| Disable ODBC transactions| Disables transaction management. Enforces autocommit for all statements.| \r\n\r\n---++++ Aqua GUI ODBC Administrators\r\n\r\nUsers may encounter one of three, Aqua GUI ODBC administrators on Mac OS X.\r\nUsers may encounter the ODBC Administrator, the iODBC Administrator, or\r\nData Direct's ODBC Configure. Different driver managers are installed by\r\ndifferent OpenLink install bundles and client applications.\r\n\r\nThe ODBC Administrator ships with Apple's Jaguar installers. Users will\r\nfind the ODBC Administrator's icon in their /Applications/Utilities folder.\r\nThis administrator is an Apple-native interface to the iODBC dylibs driver\r\nmanager. Apple dylibs are dynamic shared libraries. One copy of a .dylib or\r\ndynamic library may be shared by multiple applications simultaneously.\r\nThese libraries are similar in theory to Unix dynamic libraries. However,\r\ntheir use and implementation are different.\r\n\r\nThe iODBC Administrator ships with OpenLink Software's driver installers.\r\nUsers will find the iODBC Administrator's icon in their /Applications\r\nfolder. This administrator is an OpenLink-native interface to the iODBC\r\nframeworks driver manager. Apple frameworks are special bundles or\r\npackages, which contain dynamic shared libraries, header files,\r\ndocumentation, and other resources that are necessary to use the library.\r\n\r\nThe ODBC Configure administrator ships with Filemaker 6. Users will find\r\nthe ODBC Configure icon in /Applications/Data Direct ODBC Folder. This\r\nadministrator is a Data Direct-native interface to the Data Direct's\r\nCarbon-based, CFM driver manager. Carbon is an older, Mac OS application\r\nenvironment and API, which Apple modified for use with Mac OS X operating\r\nsystems. The CFM driver manager is based on Apple's CFM technology. CFM is\r\nan abbreviation for Code Fragment Manager. The Code Fragment Manager loads\r\ncode fragments (libraries, applications, code, etc.) and prepares them for\r\nexecution.\r\n\r\nThe following instructions will enable users to create OpenLink data\r\nsources using any ODBC administrator.\r\n\r\n * Open the appropriate administrator.\r\n * Click on the System, User, or File tab. \r\n * Click Add.\r\n * Select the appropriate OpenLink Single-Tier or Multi-Tier driver.\r\n * Click Finish.\r\n * Use the ODBC Setup dialog to provide connection parameters and to disable or enable optional features.\r\n\r\nFigure 1-7 describes Multi-Tier parameters and options*\r\n\r\n * Figure 1-7 - Multi-Tier Parameters & Options* \r\n\r\n| *Parameter* | *Description* |\r\n| Data Source Name| Passes a descriptive data source title. This title must match the title passed under the [ODBC Data Sources] heading.| \r\n| Driver| Passes the full path to the ODBC client driver.| \r\n| Description| Passes a description of the use or nature of the data source name.| \r\n| Cursor_Sensitivity| Passes a Yes or No value to enable or disable the row version cache, which is used with dynamic cursors.| \r\n| FetchBufferSize| Passes an integer, which represents the number of rows that the driver will return during individual fetch operations.| \r\n| InitialSQL| Passes a path to a file containing SQL statements. These statements are issued against the database upon initial connection. InitialSQL scripts usually contain statements, which set ISOLATION levels.| \r\n| Username| Passes a valid database username.| \r\n| Password| Passes a valid database password| \r\n| MaxRows| Passes an integer, which limits the maximum number of rows that may be returned.| \r\n| NoAutoCommit| Passes a Yes or No value, which enables or disables the driver's autocommit behaviour.| \r\n| NoLoginBox| Passes a Yes or No value to disable or enable the login pop-up box.| \r\n| NoRowsetSizeLimit| Passes a Yes or No value to enable or disable rowset size limits. Default rowset size limits are enforced by the cursor library. These limits prevent the driver from consuming all available memory in the event that rowsets are inordinately large.| \r\n| ReadOnly| Passes a Yes or No value to enable or disable READONLY access to the data store.| \r\n| Options| Passes Progress SHN sockets parameters. Users may also use the field to pass database native communications parameters to establish three-tier connections. For instance, users may pass Sybase instance names, Oracle aliases, or Ingres vnodes to connect database agents--through local database native clients--to remote databases.| \r\n| DeferLongFetch| Passes a Yes or No value to enable or disable deferred fetching. Deferred fetching causes large, binary objects to be fetched after other, smaller data. This enhances performance.| \r\n\r\n*Note:* The optional Server parameter name changes to reflect the database to which you are trying to connect. For instance, the setup routine will replace Server with Net 8 Service Name, if you choose an Oracle domain.\r\n\r\nFigure 1-8 describes common Single-Tier parameters and options\r\n\r\n*Figure 1-8 - Common Single-Tier Parameters & Options* \r\n\r\n| *Parameter* | *Description* |\r\n| DSN| Passes a descriptive data source title.| \r\n| Description| Passes a description of the use or nature of the data source name.| \r\n| Hostname| Passes the hostname or IP address of the machine, which contains the database server.| \r\n| Port| Passes the TCP port, on which the database server or PostgreSQL postmaster listens.| \r\n| Username| Passes a valid database username.| \r\n| Password| Passes a valid database password.| \r\n| Row buffer size| Passes an integer, which represents the number of rows that the driver will return during an individual fetch.| \r\n| Hide login dialog| Enables or disables the login popup box.| \r\n| Read only connection| Enables or disables READONLY access to the data store.| \r\n| Database| Passes the name of a database or Oracle SID. Progress users should pass the full path to their databases.| \r\n| Initialization SQL| Passes a path to a file containing SQL statements. These statements are issued against the database upon initial connection. InitialSQL scripts usually contain statements, which set ISOLATION levels.| \r\n| Max rows override| Passes an integer, which represents the number of rows that the driver will return during individual fetch operations.| \r\n| Disable autocommit| Enables or disables the driver's autocommit behavior.| \r\n| Disable rowset size limit| Enables or disables rowset size limits. Default rowset size limits are enforced by the cursor library. These limits prevent the driver from consuming all available memory in the event that rowsets are inordinately large.| \r\n| High cursor sensitivity| Enables or disables the row version cache, which is used with dynamic cursors.| \r\n| Defer Fetching of long data| Enables or disables deferred fetching. Deferred fetching causes large, binary objects to be fetched after other data. This enhances performance.| \r\n\r\nFigure 1-9 describes additional, database specific Single-Tier parameters and options.\r\n\r\n * Figure 1-9 - Database-Specific Single-Tier Parameters & Options* \r\n\r\n| *Parameter* | *Description* |\r\n| Character Set| MS SQLServer/Sybase| Passes the name of a valid character set.| \r\n| Enable Microsoft Jet Engine options| MS SQLServer/Sybase| Passes a Yes or No value to enable or disable JetFix. JetFix facilitates translation of data types by Microsoft's Jet Engine. This feature is intended for use with MS Access client applications.| \r\n| Language| MS SQLServer/Sybase| Passes the name of a supported, national language.| \r\n| Server Type| MS SQLServer/Sybase| Passes a Database Management System (DBMS) name and version. Choose the closest possible match to your DBMS.| \r\n| Disable ODBC transactions| MySQL/PostgreSQL| Disables transaction management. Enforces autocommit for all statements.| \r\n| Count stored procedures parameters| Oracle| Insures that number of parameters passed by stored procedures matches the number of parameters expected by SQLProcedures.| \r\n| Custom catalog views| Oracle| Promotes efficient processing of Oracle catalog calls such as SQLForeignKey() and SQLPrimaryKeys(). The appropriate odbccat#.sql script must be run before OraCatalogs is enabled. There is one odbccat#.sql script for each Oracle database version.| \r\n| Net Service| Oracle| Passes the name of a valid Oracle Net Service.| \r\n| Net Service name| Oracle| Passes the name of a valid Oracle Net Service.| \r\n| OCIPrefetch Memory| Oracle| Passes an integer value, which represents the amount of memory to use for prefetch operations.| \r\n| OCIPrefetch Rows| Oracle| Passes an integer value, which represents the number of rows to prefetch.| \r\n| Oracle directory| Oracle| Passes the full path to the Oracle home directory.| \r\n| Service name/SID| Oracle| Passes the name of a valid Oracle SID.| \r\n| Show remarks| Oracle| Retrieves content of SQLColumns REMARKS field.| \r\n| Use Oracle 8i release 8.0 Compatible Identification| Oracle| | \r\n| User's own tables first in SQLTables| Oracle| Causes user tables to appear at beginning of SQLTables() table name listing.| \r\n\r\n * Click OK to save your data source name.\r\n\r\n---+++ Developing ODBC Compliant Applications\r\n\r\nOpenLink Software's Software Development Kits (SDK's) provide powerful\r\ntools for Apple applications developers. While Apple SDK's provide only the\r\ndylibs format driver manager, OpenLink's SDK's provide both the dylibs and\r\nframeworks format driver managers. This distinction is critical. The\r\nframeworks format driver manager provides the applications developer with\r\nversatility that is not available with dylibs.\r\n\r\nFrameworks bundles contain multiple revisions of the iODBC driver manager.\r\nMoreover, the driver manager library name points to the latest revision of\r\nthe component. Therefore, developers do not need to set environment\r\nvariables to point to the appropriate file. However, applications\r\ndevelopers can choose to instantiate legacy revisions. In other words,\r\ndevelopers can hard link applications to older driver managers to access\r\nfunctionality that is not present in recent revisions.\r\n\r\nFinally, OpenLink's SDK's enable developers to build Classic, Carbon, and\r\nCocoa native applications. Furthermore, OpenLink's SDK's assist developers\r\nwho need to migrate applications from the Classic API to Carbon. And,\r\nOpenLink aids developers who need to compile applications, which run on\r\nboth Classic and Mac OS X. To proceed, developers simply link their\r\napplications against OpenLink's iODBC libraries. The resulting binary\r\nissues calls to the iODBC CFM Bridge. This bridge ships with OpenLink's\r\niODBC bundles, and it exists in Classic and OS X formats. It identifies the\r\ncorrect driver manager format, which to load.\r\n\r\n * macodbc1.jpg:\r\n\r\n\"macodbc1.jpg\"\r\n\r\n---+++ OpenLink Driver Objectives\r\n\r\nOpenLink Software's ODBC data access technologies simplify client and\r\nserver computing. These technologies are based on the principle of\r\ninteroperability. This principle dictates that one client application can\r\naccess diverse, back-end database management systems, without knowledge of\r\nproprietary database protocols. Thereby, this powerful technology allows\r\napplication developers to develop, compile, and ship applications, which\r\nspeak to any, ODBC-compliant data source. The application developer does\r\nnot need to cater to any specific vendor's DBMS. Moreover, application\r\ndevelopers do not need to attend to any specific client/server\r\narchitecture. The application and DBMS may reside on one or more machines.\r\nThese machines may comprise similar or dissimilar operating systems and\r\nhardware.\r\n\r\nOpenLink Software's ODBC data access technologies meet their objectives,\r\nbecause they are based on Microsoft's ODBC specification. The specification\r\ndefines the ability to:\r\n\r\n * Connect and disconnect to ODBC-compliant data sources.\r\n * Retrieve SQL data from ODBC data sources.\r\n * Obtain an ODBC driver's capabilities and characteristics.\r\n * Obtain and manipulate ODBC driver options.\r\n * Prepare and execute SQL statements.\r\n * Retrieve SQL result sets and process results dynamically.\r\n * Retrieve result metadata and process metadata dynamically\r\n\r\n---+++ OpenLink Driver Features\r\n\r\nOpenLink's Single-Tier and Multi-Tier Data Access Drivers provide ODBC\r\n1.x-3.x compliance. The two driver formats also provide the following\r\nfeatures:\r\n\r\n\r\n---++++ Single-Tier Drivers\r\n\r\n * Blistering performance\r\n * ODBC core, level 1, level 2, and extensions support\r\n * Client-based scrollable cursor support\r\n * Mac OS X client access to Microsoft SQL Server, MySQL, Oracle, PostgreSQL, and Sybase\r\n * Support for all network protocols and server operating environments, which are supported by the database vendors' communications products.\r\n\r\n * Note:* Single-Tier data access is dependent upon client installation of the database native communications software. For example, Oracle users require a client side installation of Net8. Progress users require a client side installation of Progress Client Networking. OpenLink's drivers for Microsoft SQL Server and Sybase are an exception. These drivers contain FreeTDS libraries, which enable OpenLink's Single-Tier drivers to speak directly to Microsoft SQL Server and Sybase databases without Microsoft SQL Server's NETLIB or Sybase's Open Client product.\r\n\r\n\r\n---++++ Multi-Tier Drivers\r\n\r\n * Blistering performance\r\n * ODBC core, level 1, level 2, and extensions support\r\n * Built-in, database-independent communications layer\r\n * Sophisticated data encryption\r\n * Concurrent access to heterogeneous ODBC drivers\r\n * Intelligent metadata information handling\r\n * Array fetching\r\n * Network-centric result set management\r\n * Scrollable cursor support\r\n * Implementation of scrollable cursors across non-OpenLink ODBC drivers\r\n * Support for all native backend functionality\r\n * Support for distributed database capabilities of relevant backend database engines\r\n * Implementation of all inter-process communications mechanisms supported by relevant database engines. (Sockets, Shared Memory, Pipes etc.)\r\n * Enforcement of query optimizer configurations across all OpenLink client components\r\n * Enforcement of database engine ISOLATION LEVELS across all OpenLink client components." . . . . . . . . "ODBCMacOSX" . . . "2016-09-14T12:28:33.447905"^^ . . "2016-09-14T12:28:33Z" . .