	
		Q+E Drivers for QELIB 2.0.1
		March 7, 1994

This READ.ME file contains information that is not covered 
in the Database Driver Reference.  The information in this 
READ.ME file can also be found in the QDREADME.HLP file.  This 
file contains information on the following subjects:

For Users of Windows 3.0
Driver Options
For Btrieve Users
For INFORMIX Users
For INGRES Users
Loading INFORMIX and NetWare SQL DLLs Correctly
For Paradox Users
For SQL Server Users
Corrections to the Q+E Database Driver Reference

See the READ.ME file for information on QELIB.


		Driver Options

Q+E Software has included options to the drivers that enable you
to take full advantage of them.

To use these options, we recommend that you create a separate
data source for each application.  Modify the ODBC.INI file to 
include Workarounds=n.  Add the values together to obtain more 
than one option.

WorkArounds=1.  If an ODBC driver reports to Access 1.1 that its 
SQL_CURSOR_COMMIT_BEHAVIOR or SQL_CURSOR_ROLLBACK_BEHAVIOR is 0, then
Access will open tables read-only.  If this option is on, our ODBC
drivers return 1, allowing Access to open tables read-write.

WorkArounds=2.  Some applications cannot handle database
qualifiers.  If this option is on, the driver reports that
qualifiers are not supported.  

WorkArounds=4.  Visual Basic 3.0 sometimes requires two connections to
a database.  Since some databases support only one connection, the 
second attempt fails.  Turning this option on causes our drivers to 
detect this condition and have the two ODBC connections share a single
physical connection to the database.

WorkArounds=8.  If an ODBC driver cannot deduce the number of rows
affected by an INSERT, UPDATE, or DELETE, it may return -1 in SQLRowCount.
Some products cannot handle this.  Turning this option on causes the driver
to return 1 instead.

WorkArounds=16.  If an ODBC driver in SQLStatistics reports to Access
1.1 an INDEX_QUALIFIER that contains a period, Access raises a "tablename
is not a valid name" error.  Turning this option on causes the driver to
return no INDEX_QUALIFIER, allowing Access to open the table.

WorkArounds=32.  Turning this option on enables users of flat-file drivers
to abort a long-running query by pressing the ESC key.

Microsoft Access and Visual Basic Users
---------------------------------------
We recommend that users of Microsoft Access 1.1 and Visual Basic
3.0 add the line Workarounds=29 (1+4+8+16) for each data source 
they will use with Access and Visual Basic.

 
		For Btrieve Users

Novell does not plan to support Btrieve for version 2.0 of OS/2.

There are two versions of WBTRCALL.DLL: networked and not networked.  
Q+E supplies the not networked version when you install the Btrieve 
driver.  If you want network access, you must get the networked 
version from Novell.

If you are already using networked Btrieve, do not install the
Q+E version of WBTR.DLL, because it does not support network
access.  When the Setup program asks whether you wish to overwrite
WBTR.DLL, answer No.

The Btrieve driver supports transactions.  However, to use its 
transaction processing capabilites, you must change certain settings 
in the WIN.INI file.  For more information, double-click the Q+E 
Driver Help icon, click the Btrieve driver topic, and then click the 
topic "Installing Btrieve to Process Transactions."


		For INFORMIX Users

INFORMIX users need to add the line

	SET INFORMIXDIR=C:\INFORMIX

to their AUTOEXEC.BAT files.  

Also, the RDS.IEM and SQL.IEM files must be located in 
C:\INFORMIX\MSG.  If they are not already there, copy 
them from your installation directory to C:\INFORMIX\MSG.


		For INGRES Users

Q+E and INGRES are working on resolving problems that prevent our
INGRES driver from working with INGRES 6.4/04.  A driver is not available
at this time that works with INGRES 6.4/04.

On some network protocols, invalid digits may be encountered when retrieving
large values from money columns.  This will be fixed when a driver linked with
INGRES 6.4/04 is released.


		Loading INFORMIX and NetWare SQL DLLs Correctly
                                                                      
The distribution diskette contains a utility called QEDLLOAD.EXE.  If
you use the INFORMIX or NetWare SQL drivers, this utility ensures
that the following DLLs are loaded correctly:

	WXQLCALL.DLL, which is required for NetWare SQL
     	LDLLSQLW.DLL, which is required for INFORMIX.

To function, these files must be loaded into low memory (the first 
640K).  This can be a problem, because by the time you attempt to load
one of these DLLs, other files may occupy the available space in low 
memory.  When this happens, the DLL is loaded into available high 
memory (above 1000K), where it does not function correctly, 
preventing your application from connecting.

To prevent this problem, you should load these DLLs immediately when 
entering Windows, while lower memory space may still be available.  
QEDLLOAD.EXE is provided to do this for you.

To have QEDLLOAD.EXE properly load one of these DLLs, you must create 
new items in the Startup program group in the Program Manager.  If you 
no longer have a Startup group, add one as follows:

1.  In the Program Manager, open the File menu and choose New.  The 
    New Program Object dialog box appears.
2.  In this dialog box, select the New Program Group option, and 
    click OK.  The Program Group Properties dialog box appears.
3.  Supply the information for this new group.  In the Description box,
    type Startup as the name of the new group.  In the Group File box,
    type STARTUP.GRP.  Click OK.

To add QEDLLOAD.EXE to the Startup group, follow these steps:

1.  Select the Startup group.
2.  In the Program Manager, open the File menu and choose New.  The 
    New Program Object dialog box appears.
3.  In this dialog box, select the New Program Item option, and click
    OK.  The Program Item Properties dialog box appears.
4.  Supply the information for this new item.  In the Description box, 
    type QEDLLOAD.  In the Command Line box, type the full path and 
    file name for QEDLLOAD.EXE, followed by the name of the DLL that 
    you want loaded (WXQLCALL.DLL for NetWare SQL, LDLLSQLW.DLL for
    INFORMIX).  Click OK.

After you complete this procedure, QEDLLOAD.EXE loads the 
specified DLL into low memory every time you start Windows.  

If, after you complete this procedure, you attempt to connect to
a data source and you receive the message

    Insufficient DOS memory for Windows Requestor Interface (NetWare SQL)
    There is not enough memory available (INFORMIX)

then retry with fewer programs loaded in memory.

		
		For PARADOX Users

Paradox users should avoid updating values in primary key fields when
running transactions with ReadConsistency=1.  Primary key violations 
will not be detected until the changes are committed.  For example, if you 
insert the same row twice in your transaction, and then try to commit 
your transaction, you receive a primary key violation error.  

To update values in primary key fields, do not have ReadConsistency=1 
during a transaction.  Instead, use the autocommit mode.


		For SQL Server Users

The following topics apply to users of SQL Server from both 
Microsoft and Sybase.  

Problems with Catalog Stored Procedures?
----------------------------------------
If you have problems with the catalog functions returning incorrect data, 
you may need to upgrade your catalog stored procedures.  In particular, 
the SQL Server version 4.2 procedures do not provide enough 
information for many of our catalog functions to work properly.  Make 
sure you have installed the latest version of the stored procedures, 
which are available from your database vendor.  Refer to your SQL Server
documentation for more information.

General Notes on SQL Server
---------------------------
When executing multiple statements in a stored procedure, the function 
SQLMoreResults will ignore all statements other than Select statements.
Since the SQL Server and Sybase drivers do not have a way to prepare 
statements, the driver will not send that statement to the server until 
SQLExecute is called.  Prepare will not return any of the normal errors that 
most of the drivers will return.  However, if the user requests information
about result columns, the driver will execute a select statement and 
return warnings or errors at SQLNumResultCols, SQLDescribeCol, or
SQLColAttributes time.

Use Statements
--------------
The SQL Server driver now allows you to perform a Use statement 
to change the current database.  A Use statement will affect every 
statement associated with the current connection.  Any future call to 
SQLExecute or one of the catalog routines with Qualifier set to NULL 
or % will be executed on the new database.  The exception to this rule 
is that some prepared Select statements may have already been executed.
See the previous topic for more information.

Users may also execute catalog functions using any valid database name 
as the qualifier.  This will not affect the user's current database or 
any future executes.


		Corrections to the Q+E Database Driver Reference

ALLBASE Driver
--------------
p. 8.  In the Data Types table, the Real data type should not be listed.  
The Float(21) data type should read as follows:

     Float(24)     SQL_REAL          6

dBASE Driver
------------
p. 39.  The "Isolation and Lock Levels Supported" section should read 
"dBASE supports isolation level 1 (read committed) and Record level 
locking."

OS/2 DB2/2 Driver
-----------------
p. 95.  In the Data Types table, the Smallint data type should change 
and the Float data type be added as follows:

     Float        SQL_DOUBLE      7
     Smallint     SQL_SMALLINT    5

Paradox Driver
--------------
p. 105.  In the "Column Names" section, the first paragraph should read 
"Paradox column names are case-insensitive.  Paradox column names allow 
many nonalphanumeric characters, including spaces.  If a column name 
contains a nonalphanumeric character or a space, surround the name 
with the grave character ( ` ) (ASCII 96). For example,..."

p. 110.  The "Isolation and Lock Levels Supported" section should read 
"Paradox supports isolation level 1 (read committed) and Record level 
locking."

SQL Server Driver
-----------------
p. 128.  In the Data Types table, the second column of the Image data 
type should contain "SQL_LONGVARBINARY"

SQLBase Driver
--------------
p. 132.  The last sentence under Server List should read 
"Enter the word LOCAL to add the local server to the list."

p. 133.  The last sentence in step 1 should read 
"If you want to access a local SQLBase database, enter the word 
LOCAL, which adds the local server to the list."

Flat-File Driver SQL
--------------------
pp. 172, 173.  The SQL clause, WHERE CURRENT OF cursor_name, specified 
in the Delete and Update syntax, can be used only by developers coding 
directly to the ODBC API.


End of QDREAD.ME
