10.2. OpenLink ODBC Driver for SQL Server (Express Editon) for Windows

10.2.1.Installation

The OpenLink ODBCDriver for Microsoft SQLServer (Express Edition) is distributed as a Windows MSI installer. Simply double click on the installer 'ntl6esql.msi' to commence the installation.

Installer Welcome Dialog for the OpenLink ODBCDriver for Microsoft SQLServer(Express Edition):

Figure10.27.EEWinSQLServerScreen1i.png

EEWinSQLServerScreen1i.png


Please read the software license agreement and accept before continuing your installation:

Figure10.28.EEWinSQLServerScreen3i.png

EEWinSQLServerScreen3i.png


Before installation, you will be prompted for a license file. If a license file already exists on the machine, then select the 'use exisiting file' option. A trial (try) or full (buy) license can be obtained by selecting the 'try and buy' option which loads OpenLink's online try and buy web page:

Figure10.29.EEWinSQLServerScreen4i.png

EEWinSQLServerScreen4i.png


If you are using Nortons Anti-Virus Software, you may encouter this warning message. Choose the Allow the Entire Script once option:

Figure10.30.EEWinSQLServerScreen5i.png

EEWinSQLServerScreen5i.png


To obtain the trial license, you must be a registered user on the OpenLinkWeb site and login with your username (e-mail address) and password for that user. Click on the 'Shop' link to visit Openlink's online shop cart to purchase a full license, if required:

Figure10.31.EEWinSQLServerScreen6i.png

EEWinSQLServerScreen6i.png


Click on the 'download license' button to immediatly obtain the license file and save it to your desktop. Alternatively, an auto-generated e-mail will be sent to your registered user's e-mail address with a link to your OpenLinkData Space ( ODS), which contains all trial and full licenses in a Briefcase for download at a later date.

Figure10.32.EEWinSQLServerScreen7i.png

EEWinSQLServerScreen7i.png


You will want to save the file to disk:

Figure10.33.EEWinSQLServerScreen8i.png

EEWinSQLServerScreen8i.png


Select the license file to be used for the installation:

Figure10.34.EEWinSQLServerScreen9i.png

EEWinSQLServerScreen9i.png


Make sure that the path to where the license file is located is correct before selecting Next:

Figure10.35.EEWinSQLServerScreen10i.png

EEWinSQLServerScreen10i.png


Choose to perform a custom, typical, or complete installation of the driver:

Figure10.36.EEWinSQLServerScreen11i.png

EEWinSQLServerScreen11i.png


With a custom installation, you can decide the directory where the installation will reside:

Figure10.37.EEWinSQLSErverCustom1.png

EEWinSQLSErverCustom1.png


Select the features to be installed:

Figure10.38.EEWinSQLSErverCustom2.png

EEWinSQLSErverCustom2.png


Click the install button to begin installation of the components:

Figure10.39.EEWinSQLSErverCustom3.png

EEWinSQLSErverCustom3.png


Installation in progress:

Figure10.40.EEWinSQLServerScreen13i.png

EEWinSQLServerScreen13i.png


The software installation is complete and ready for use:

Figure10.41.EEWinSQLServerScreen14i.png

EEWinSQLServerScreen14i.png


10.2.2.Configuration

To configure an ODBCDSN, run the ODBCAdministrator located in the Administrative Tools section of the Control Panel:

Figure10.42.EEWinSQLServerScreen1c.png

EEWinSQLServerScreen1c.png


From either the User or System DSN tab, click on the Add button:

Figure10.43.EEWinSQLServerScreen2c.png

EEWinSQLServerScreen2c.png


Select the OpenLinkSQLServer ODBCDriver [Express Edition][6.0] from the list presented:

Figure10.44.EEWinSQLServerScreen3c.png

EEWinSQLServerScreen3c.png


In the Data Source tab, select a suitable DSN name and optional description for the Data Source to be created:

Figure10.45.EEWinSQLServerScreen4c.png

EEWinSQLServerScreen4c.png


The Connection tab requests the minimum parameters required to make a connection to the target database:

Figure10.46.EEWinSQLServerScreen5c.png

EEWinSQLServerScreen5c.png


  • Server Type : This parameter should be set to MSSQL, which can be selected from the drop down list box.

  • Host : This is the fully qualified hostname, or IP address, of the machine hosting the DBMS you wish to access, e.g., dbms-server.example.com, or 192.168.155.123. Any hostname which will be resolved by your local DNS is acceptable.

  • Port : This is the port that SQL Server is listening on

  • Database : This is the SQL Server database to which you want to connect

  • Login ID : This is a valid user on for the SQL Server Database

  • Password : This is a valid password on for the SQL Server Database

Click next to verify that all settings are correct or uncheck the check box to delay testing to a later stage.

The advanced button displays additional, optional parameters that can be configured:

Figure10.47.EEWinSQLSErverAdvanced.png

EEWinSQLSErverAdvanced.png


Table10.2.

Tds The version of TDS to be used.(default - '8.0')
Cachemetadata When used with prepareSQL=3, setting this property to true will cause the driver to cache column meta data for SELECT statements. Use with care.(default - false)
Charset Very important setting, determines the byte value to character mapping for CHAR/VARCHAR/TEXT values. Applies for characters from the extended set (codes 128-255). For NCHAR/NVARCHAR/NTEXT values, does not have any effect, since these are stored using Unicode. (default - the character set the server was installed with)
Language Applies for characters from the extended set (codes 128-255). For NCHAR/NVARCHAR/NTEXT values, does not have any effect since these are stored using Unicode. (default - the character set the server was installed with)
Domain Specifies the Windows domain to authenticate in. If present and the user name and password are provided, it uses Windows (NTLM) authentication instead of the usual SQL Server authentication (i.e., the user and password provided are the domain user and password). This allows non-Windows clients to log in to servers, which are only configured to accept Windows authentication.
Instance Named instance to connect to. SQL Server can run multiple so-called 'named instances' (i.e., different server instances, running on different TCP ports) on the same machine. When using Microsoft tools, selecting one of these instances is made by using '[host_name]\[instance_name]' instead of the usual '[host_name]'. You will have to split the two and use the instance name as a property.
AppName Application name. No practical use; it's displayed by Enterprise Manager or Profiler associated with the connection.
ProgName Client library name. No practical use; it's displayed by Enterprise Manager or Profiler associated with the connection.
Wsid Workstation ID. No practical use; it's displayed by Enterprise Manager or Profiler associated with the connection. (default - the client host name)
MacAddress Network interface card MAC address. (default - '000000000000')
SendStringParametersAsUnicode Determines whether string parameters are sent to the SQL Server database in Unicode or in the default character encoding of the database. (default - true)
LastUpdateCount If true, only the last update count will be returned by executeUpdate(). This is useful in case you are updating or inserting into tables that have triggers (such as replicated tables); there's no way to make the difference between an update count returned by a trigger and the actual update count, but the actual update count is always the last, as the triggers execute first. If false, all update counts are returned; use getMoreResults() to loop through them. (default - true)
PrepareSQL This parameter specifies the mechanism used for Prepared Statements. (default - 3 for SQL Server)
PacketSize The network packet size (a multiple of 512). (default - 4096 for TDS 7.0/8.0; 512 for TDS 4.2/5.0)
TcpNoDelay True to enable TCP_NODELAY on the socket; false to disable it. (default - true)
LobBuffer The amount of LOB data to buffer in memory before caching to disk. The value is in bytes for Blob data and chars for Clob data. (default - 32768)
MaxStatements The number of statement prepares each connection should cache. A value of 0 will disable statement caching.(default - 500)
LoginTimeout The amount of time to wait (in seconds) for a successful connection before timing out. If namedPipe is true and loginTimeout is non-zero, the value of loginTimeout is used for the retry timeout when 'All pipe instances are busy' error messages are received while attempting to connect to the server. If namedPipe is true and loginTimeout is zero (the default), a value of 20 seconds is used for the named pipe retry timeout. (default - 0)
SocketTimeout The amount of time to wait (in seconds) for network activity before timing out. Use with care! If a non zero value is supplied, this must be greater than the maximum time that the server will take to answer any query. Once the timeout value is exceeded, the network connection will be closed. This parameter may be useful for detecting dead network connections in a pooled environment. (default - 0)
NamedPipe When set to true, named pipe communication is used to connect to the database instead of TCP/IP sockets. When the os.name system property starts with 'windows' (case-insensitive), named pipes (both local and remote) are accessed through the Windows filesystem by opening a RandomAccessFile to the path. When the SQL Server and the client are on the same machine, a named pipe will usually have better performance than TCP/IP sockets since the network layer is eliminated.
Ssl Specifies if and how to use SSL for secure communication. (default - off)
BatchSize Controls how many statements are sent to the server in a batch. The actual batch is broken up into pieces this large that are sent separately.(default - 0[unlimited] for SQL Server)
UseCursors Instructs the driver to use server side cursors instead of direct selects (AKA firehose cursors) for forward-only read-only result sets (with other types of result sets server- or client-side cursors are always used). (default - false)
BufferMaxMemory Controls the global buffer memory limit for all connections (in kilobytes). When the amount of buffered server response packets reaches this limit, additional packets are buffered to disk; there is however one exception: each Statement gets to buffer at least '[bufferMinPackets]' to memory before this limit is enforced. This means that this limit can and will usually be exceeded. (default - 1024)
BufferMinPackets Controls the minimum number of packets per statement to buffer to memory. Each Statement will buffer at least this many packets before being forced to use a temporary file if the [bufferMaxMemory] is reached, to ensure good performance even when one Statement caches a very large amount of data. (default - 8)
UseLOBs Controls whether large types (IMAGE and TEXT/NTEXT) should be mapped by default (when using getObject()) to LOBs . The default type constant returned is also controlled by this property: BLOB for IMAGE and CLOB for TEXT/NTEXT when true, LONGVARBINARY for IMAGE and LONGVARCHAR for TEXT/NTEXT when false. (default - true)

As indicated above, the parameters on the options and preferences tabs are not required for a basic connection.

Figure10.48.EEWinSQLServerScreen6c.png

EEWinSQLServerScreen6c.png


  • Drop Catalog name from DatabaseMetaData calls - Enable this option to have the catalog name not appear for tables, views, and procedures when requesting database meta-data.

  • Drop Schema name from DatabaseMetaData calls - Enable this option to have the schema-name not appear for tables, views, and procedures when requesting database meta-data.

  • Return an empty ResultSet for SQLStatistics - Check this box to have SQLStatistics() return an empty resultset. Use this if the underlying database does not support retrieving statistics about a table (e.g., what indexes there are on it).

  • Disable support of quoted identifier - If it is set, the call SQLGetInfo for 'SQL_IDENTIFIER_QUOTE_CHAR' will return the space (" "). It can be used if DBMS does not support quoted SQL, e.g., select * from "account."

  • Disable support of search pattern escape - If it is set, the call SQLGetInfo for 'SQL_LIKE_ESCAPE_CLAUSE' will return the space (" "). It can be used if DBMS does not support SQL escape patterns

  • Patch of NULL size of SQL_CHAR - If set, this option overrides the size of SQL_CHAR column type returned by the database with the value set in the text box (in bytes). With the default value of 0, the driver uses the size returned by the database.

Figure10.49.EEWinSQLServerScreen7c.png

EEWinSQLServerScreen7c.png


  • Read Only connection - Specify whether the connection is to be "Read-only". Make sure the checkbox is unchecked to request a "Read/Write" connection.

  • Disable interactive login - Suppress the ODBC "Username" and "Password" login dialog box when interacting with your ODBC DSN from within an ODBC compliant application.

  • Row Buffer Size - This attribute specifies the number of records to be transported over the network in a single network hop. Values can range from 1 to 99.

  • Max Rows Override - Allows you to define a limit on the maximum number of rows to be returned from a query. The default value of 0 means no limit.

  • Initial SQL - Lets you specify a file containing SQL statements that will be automatically run against the database upon connection.

  • Dynamic Cursor Sensitivity - Enables or disables the row version cache used with dynamic cursors. When dynamic cursor sensitivity is set high, the Cursor Library calculates checksums for each row in the current rowset and compares these with the checksums (if any) already stored in the row version cache for the same rows when fetched previously. If the checksums differ for a row, the row has been updated since it was last fetched, and the row status flag is set to SQL_ROW_UPDATED. The row version cache is then updated with the latest checksums for the rowset. From the user's point of view, the only visible difference between the two sensitivity settings is that a row status flag can never be set to SQL_ROW_UPDATED, when the cursor sensitivity is low. (The row status is instead displayed as SQL_ROW_SUCCESS.) In all other respects, performance aside, the two settings are the same - deleted rows do not appear in the rowset, updates to the row since the row was last fetched are reflected in the row data, and inserted rows appear in the rowset, if their keys fall within the span of the rowset. If your application does not need to detect the row status SQL_ROW_UPDATED, you should leave the 'High Cursor Sensitivity' checkbox unchecked, as performance is improved. The calculation and comparison of checksums for each row fetched carries an overhead. If this option is enabled, the table oplrvc must have been created beforehand using the appropriate OpenLink script for the target database.

  • Enable logging to the log file: - Specifies the full path to a text file. If the associated checkbox is checked, and a file is passed, the driver will log auto-generate a clientside ODBC trace.

Figure10.50.EEWinSQLServerScreen8c.png

EEWinSQLServerScreen8c.png


  • Disable AutoCommit - Change the default commit behaviour of the OpenLink Lite Driver. The default mode is AutoCommit mode (box unchecked).

  • Disable Rowset Size Limit - Disable the limitation enforced by the cursor library. The limitation is enforced by default to prevent the driver claiming all available memory in the event that a resultset is generated from an erroneous query is very large. The limit is normally never reached.

  • Multiple Active Statements Emulation - Enables use of Multiple Active statements in an ODBC application even if the underlying database does not allow this, as it is emulated in the driver.

  • SQL_DBMS Name - Manually override the SQLGetInfo(SQL_DBMS_NAME) response returned by the driver. This is required for products like Microsoft InfoPath for which the return the value must be "SQL Server".

Figure10.51.EEWinSQLServerScreen9c.png

EEWinSQLServerScreen9c.png


Click on the Test Data Sourcebutton to verify that a successful connection can be made to the database.

Figure10.52.EEWinSQLServerScreen10c.png

EEWinSQLServerScreen10c.png


When you click finish, you will go back to the ODBCData Source Administrator, and you should see the new DSN in the list of available DSN's:

Figure10.53.EEWinSQLServerScreen11c.png

EEWinSQLServerScreen11c.png