		Q+E MultiLink/VB
		Version 2.0
		November 17, 1993

This README file contains information not included in the 
Q+E MultiLink/VB User’s Guide. Some of this new information can 
also be found in the MultiLink/VB on-line help file, QELINK.HLP. 
This file contains information about the following topics:

Important Database Driver Information
New pTimeout Property
Changing pMask at Runtime
More About the pFieldLength Property
More About Mapping Values
More About the fFind Function
Working with Certain Data Types
Speeding Up New Record Additions
Removing MultiLink/VB Files from the Windows System Directory
Corrections to the User's Guide


		Important Database Driver Information

BE SURE TO READ THE DRIVER README HELP FILE for important last-minute 
information about the database drivers you are using. Double-click 
the Driver Readme icon in the new MultiLink/VB program icon group. 
Or open the file QDREADME.HLP in Windows Help using the File Open 
command.

Note: If you are a user of MultiLink/VB 1.x, you need to read the 
compatibility information about using the new drivers with your 
existing applications. Click the "For MultiLink/VB 1.x Users" topics 
for the drivers you are using.


		New pTimeout Property

The pTimeout property was added to MultiLink/VB after the User's 
Guide was printed. This property is documented in the MultiLink/VB 
Help.

Applies To
Connect control, Query control, Query Grid control

Description
pTimeout specifies the amount of time, in seconds, that the driver 
waits before ending an operation. Setting pTimeout for Connect 
controls tells the driver how long to wait when it encounters problems 
logging on. Setting pTimeout for Query controls limits the amount of 
time the driver waits when locking records and performing certain 
database functions (fDoQuery, fExecSQL, fUpdate, or fDelete). The 
default value of 0 causes the driver to wait indefinitely. 
If a driver does not support timeouts, setting this property has no 
effect, and the driver waits indefinitely before ending an operation.

Syntax
[form.]control.pTimeout[= time]

Example
Query1.pTimeout = 30

Data Type
Integer


		Changing pMask at Runtime

If you change the setting of the pMask property at runtime, 
MultiLink/VB applies the new edit mask to the text currently 
displayed in the DB Text Box. The eValidation event occurs if the 
current text does not match the literal characters in the new mask.  
To avoid this validation error, you can clear the pMask and the Text 
properties to an empty string before applying the new mask. The 
following statements prevent validation errors and change the edit 
mask. 
	DB_Text1.pMask= ""
	DB_Text1.Text = ""
	DB_Text1.pMask= "(###)###-####"


		More About the pFieldLength Property

pFieldLength values are only valid for fixed-length CHAR and 
VARCHAR data types, and for DECIMAL data types. The pFieldType 
property defines the character fields as 1 - QE_CHAR and 2 - 
QE_VARCHAR. 

For fields with pFieldType defined as 3 - QE_DECIMAL, pFieldLength 
gives the precision and the scale of the value. The high byte of the value 
contains the precision and the low byte of the value contains the scale. The 
precision equals the total number of digits. The scale equals 256 times 
the number of digits to the right of the decimal. pFieldLength is read-
only at run time, and only during an active query.


		More About Mapping Values

When executing a stored procedure query (with pQueryType = 1), you 
cannot use the pMapList and pMapQExpr properties to map values in 
DB List and DB Combo boxes.

Also, we recommend using DB Combo Box style 2 to prevent users from 
from typing a value in the edit box when mapping list values. If you do map 
values in a DB Combo Box created as 1 - Dropdown combo style or 2 - Simple 
combo style, and the user does enter a value, MultiLink/VB first attempts to match 
the new value with an existing list value. If the new value matches, MultiLink/VB 
uses the corresponding mapped value. If the new value does not match, 
MultiLink/VB passes an empty string to the database as the mapped value.


		More About the fFind Function

The fFind function treats all punctuation marks as the same character. 
For example, "emp." matches "emp,".

If no search conditions are specified when fFind is called, the 
QE_FIND_NEXT and QE_FIND_PREV options work like the 
fNext and fPrevious functions


		Working with Certain Data Types

Long or Binary Data Types
------------
You cannot perform fFind or fEnterQBE (Query By Example) 
functions using certain data types. The pFieldType property returns the 
database definition of fields based on how they correspond to Q+E 
data types. The fFind and fEnterQBE functions do not work on fields 
that pFieldType defines as the following:
QE_LONGVARCHAR (100)
QE_BINARY (101)
QE_VARBINARY (102)
QE_LONGVARBINARY (103) 

The fFind and fEnterQBE functions do not work when the equal sign 
operator is used to find matching values in fields that pFieldType 
defines as QE_FLOAT (6).

Decimal Data Types
------------
When working with decimal data types, you may get an error message 
or failures while performing fFind or fEnterQBE, or while locking 
records. These problems occur when you try to insert signed values in 
fields with precision and scale specified. 

For example, if a field is defined as Decimal(8,2), and you specify the 
value -12345.78, there are too many digits including the sign. You 
may get errors about QE_REC_NOT_FOUND or "No record 
Matches." 

The workaround is to leave off the sign or to use fewer places in the 
value. In the previous example, the values 12345.78 or -2345.78 will 
work properly. We are working to resolve this problem as soon as 
possible. Contact Q+E Software's Technical Support department for 
more information.


		Speeding Up New Record Additions 

If your application takes a long time adding more than 10 new records 
to a database table, check to see if each new record is added before or 
after the current record. Adding a new record before the current record 
can slow performance significantly when adding more than 10 records 
at a time. 

To make your application add new records faster, insert each record 
after the current record in the database table. To do this, pass 0 as the 
third argument to fNew, for example:
res%=fNew (Query1,0,0) 

If fNew is called by a DB Command Button, set its pBefore property to 
False. 


		Removing MultiLink/VB Files from the 
		Windows System Directory

The MultiLink/VB Setup program installs many of the MultiLink/VB 
files, including the QELINK.VBX and the driver DLLs, into your 
Windows system directory. We recommend that you leave these files 
where the Setup program installs them. If you wish to move these files, 
you must edit some other files. 

We provide a FaxBack document with information and instructions for 
moving your DLL's or VBX files to a directory other than the default 
directory. Call Q+E Software's FaxBack system at (919) 851-1152 
from a fax machine and order a catalog of FaxBack documents.


		Corrections to the User's Guide

Make the corrections in the topics listed below to Chapter 7 of the 
Q+E MultiLink/VB User's Guide. Note that the correct information is 
given in the QELINK.HLP on-line help file. 


--page 231
pDistinct Property

When pDistinct is set to True, the records returned by the query are 
read-only and cannot be updated or deleted.

--page 236
pEscEnabled Property

The pEscEnabled property can no longer be set through the Properties 
window. The Q+E MultiLink/VB User's Guide does not properly 
explain the functionality of pEscEnabled. The following Description 
and Example sections are correct.

Description
Some database operations, such as queries returning very large 
numbers of records, take a long time to process. The pEscEnabled 
property lets users connected to non-SQL database systems (using the 
Btrieve, dBASE, Excel, Paradox, or Text drivers) stop database 
operations before they finish. Setting pEscEnabled to True allows 
users to interrupt database operations by pressing the ESC key. With 
pEscEnabled set to False, its default value, users who are connected to 
a non-SQL database system cannot interrupt database operations by 
pressing the ESC key.

Note: Users connected to SQL database systems (using all drivers 
except Btrieve, dBASE, Excel, Paradox, or Text) cannot interrupt 
database operations with the ESC key, regardless of the pEscEnabled 
setting.

The pEscEnabled property must be set at run time (in code) before the 
Connect control logs on, that is, before fLogon executes. pEscEnabled 
is not available at design time. If pEscEnabled is set after fLogon 
occurs, the change takes effect the next time the application logs on. 
Setting pEscEnabled to True does not work if the pAutoLogon 
property is also set to True. The pAutoLogon property logs on to the 
database before the Form_Load event, and the line of code that sets 
pEscEnabled must execute before the logon.

Example
Connect1.pEscEnabled = True
res% = fLogon (Connect1)

--page 236-237

pFieldLength Property
The pFieldLength Property has been enhanced to return information 
about decimal fields. Add the following paragraph to the Descriptions 
section, and replace the example in this section.

For fields with pFieldType 3 - QE_DECIMAL, pFieldLength equals 
the precision plus the scale of the value. The precision equals the total 
number of digits. The scale equals 256 times the number of digits to 
the right of the decimal. pFieldLength is read-only at run time, and 
only during an active query.

Example
DB_Text1.MaxLength = DB_Text1.pFieldLength

--page 250

pLogonInfo Property
The Description section for pLogonInfo refers the reader to the Q+E 
Database Driver Reference for connection string information. 
However, the Driver Reference specifies that the data source name 
(DSN) must be passed in the connection string. When using 
MultiLink/VB, the connection string requires only the attributes and 
values you wish to set. The data source name is passed by the Connect 
control's pSource property. For example, you could pass the following 
connection string to connect to a Btrieve database table:

Connect1.pLogonInfo = "DB=C:\ODBC\EMP;UID=JOHNSON;PWD=XY"

