	READ.ME
	INTERSOLV DataDirect Explorer
	Version 1.0
	September 1995

This README file contains product information not included 
in the INTERSOLV DataDirect Explorer User's Guide or the online help 
for this release.  This file contains information about the following 
topics:

Installing Explorer 
Introducing SmartData
Other New Features in Explorer 1.0
Specifying Lists in Where Condition Parameters Using IN, NOT IN
qeAPI Macro Renamed to qeconAPI
Locking with an Update Statement
Files Installed with Explorer 
Compatibility with Third-Party Drivers 

We recommend you also read the QDREAD.ME file that contains information 
about the INTERSOLV DataDirect ODBC drivers shipped with Explorer 
version 1.0. 


	Installing Explorer

Explorer is available in three packages, as follows:

* Evaluation copy
* Single user copy
* Multi-user copy

All three packages let you install Explorer from floppy disks directly 
onto your computer’s hard drive. 

Multi-user copies of Explorer can be installed from a network location.  
Depending on how your system administrator copies Explorer to the 
network location, you may be able to do either of the following: 

* Install Explorer directly onto your computer 
* Run Explorer from the network 

To install Explorer, you run its Setup program.  Refer to the 
INTERSOLV Explorer Installation Card or Installation Guide 
shipped with your package for complete instructions on how to install 
Explorer.  Before installing, read the important notes below.


Important Notes
----------------------
There is a problem in Setup that occurs when OLE 2.0 system DLLs are 
loaded in memory when Setup is launched.  To prevent the problem from 
occurring, close all running aplications before running Setup.  Doing so 
will unload any OLE 2.0 DLLs that may be in use.

If you use any other INTERSOLV products, such as Q+E 6.1, Setup 
may display an error message, which urges you to install new database 
drivers to replace any earlier drivers. Installing new drivers ensures 
compatibility with Explorer. You need not install all of the drivers, only 
those that you use. 


	Introducing SmartData

This version of Explorer includes SmartData, a feature that lets you get 
the most out of your database without having to worry about the 
complexities of database organization.  When SmartData is implemented, the 
data you need is presented in a simplified, self-explanatory structure 
that is optimized to fit your needs.

The central element of this structure is the SmartSet.  A SmartSet looks 
and functions like a simple table--it has rows and columns, and can be 
used in a SQL statement.  However, the data in the SmartSet may come from 
several different tables.  It may be the product of complex joins, 
conditions, and calculations--things that many people don’t want to deal 
with.  With SmartSets, you can find the data you want, the way you want it: 
logically organized and labeled with meaningful, descriptive terms.

SmartData’s simplified structure includes two additional levels of 
organization: Databases and Warehouses.  SmartData Databases group related 
SmartSets into logical units.  In turn, SmartData Warehouses provide the 
same kind of organization to related Databases.


	Other New Features in Explorer 1.0

In addition to SmartData, Explorer 1.0 includes the following new features:

* A Send Mail command that allows you to mail reports directly from within 
  Explorer

* OLE container support that lets you include data from other applications 
  in Explorer reports

* Support for a wide variety of graphic formats in the Report Builder, 
  including GIF, JPEG, and EPS

* Multiple levels of Undo in the Report Builder and Form Builder


	Specifying Lists in Where Condition Parameters Using IN, NOT IN

Explorer now supports the ability to create parameters in Where conditions 
that accept a list of values to be evaluated by the IN and NOT IN conditions. 
This feature is turned on when the user places the following setting
into the QE6.INI file:

QBInAsList=1 

When this setting is on, you can create a condition similar to

HIRE_DATE IN (?p1)

for which users running the query can specify multiple values in the 
single prompt provided.

The person creating the query defines a single prompt box for the IN or 
NOT IN value parameter, but the user running the query can enter a list 
of values for Explorer to evaluate by separating each value with a 
predefined separator character.  By default, the separator character used 
is the one defined in the International section of the Windows Control 
Panel, which in the US is a comma (,).  Commas as separators in this 
case will likely cause problems when used with numeric and date values.  
For example, suppose you were entering three large numbers, as follows:

124,000, 45,127, 175,456

In this case, Explorer would read the string above as six values, since 
it interprets the commas inside the values as separators.

To redefine the separator used for Explorer without having to change it 
for all applications in the Control Panel, you can use another 
QE6.INI setting,

QBInSep=<char>

where <char> is the character to be used.  Explorer will use whatever 
character you specify as the separator, so it is wise to use a character 
that does not exist in the search column.  We recommend that you use a 
semicolon (;) for this purpose, unless that character appears in the 
search column's data.

With these QE6.INI settings in the [Q+E] section:

QBInAsList=1
QBInSep=;

Explorer can evaluate IN or NOT IN conditions using the following lists: 

$18,500;$27,600;$10.50;$280,333.50
May 2, 1995;June 1,1994;7/7/93;Aug 19, 1992


	qeAPI Macro Renamed to qeconAPI

The macro in QECON.H that was named qeAPI has been renamed to qeconAPI 
because it was causing conflicts with the qeAPI function in the DataDirect 
Developer's Toolkit (DDTK).


	Locking with an Update Statement

A new setting is available for all data sources, QeLockByUpdate=1, 
which tells Explorer to lock records using an Update statement instead 
of a Select ... For Update statement or backdoors.  Record 
locks occur in Explorer when the user has the Option "Lock Records 
Before Editing" selected and then starts to change or delete a record.

The Update statement used for locking does not actually change any values 
in the record.  The Update statement might look like this:  

UPDATE emp SET first_name = first_name WHERE rowid = 1

If QeLockByUpdate=1 is specified for the current data source when a 
user tries to lock a record, Explorer uses an Update statement without 
trying any of the other approaches.  Otherwise, Explorer does not use an 
Update statement to lock the record even if the other approaches fail.

There are two major advantages of this approach:

* For drivers that do not support Select ... For Update Of, this may 
  be the only way to lock records.  Examples of such drivers are Access 
  and the MDI driver.

* In some databases such as SQLServer, when Select ... For Update Of 
  is used, the caller gets a shared lock.  However, when an Update 
  statement is used the caller gets an exclusive lock.  Some of our 
  customers want to be able to get an exclusive lock.

  Note:  this is why this setting tells Explorer to use the Update 
  statement without trying any of the other methods.  Another method 
  (Select ... For Update Of) would succeed if tried first, and the user 
  would not get the intended result.

The disadvantages of this approach affect database systems using triggers. 
If Update statements cause triggers to fire on the current table, 
then a locking Update statement that does not actually change data 
would   cause the trigger to run.  Then, if the user cancels the change 
(for example, uses the escape key), then the trigger results would 
still be in the database.  A trigger might put the current 
date-time into a field in the record for the last update time, or 
put the current user's ID into a field for the last user who changed 
the record.

This is why Explorer will not use an Update statement to lock records 
unless the user has explicitly set up the data source to do so.


	Using Query Files from Q+E 5.0 or Earlier

The ODBC 2.10 drivers that ship with Explorer 1.0 use translation DLLs for 
character set translations.  QEF files from Q+E 5.0 or earlier that use 
the IBM PC character set will not run unless the data source they use is 
configured to use the necessary translation DLL.


	Files Shipped with Explorer

This section list the files that ship with Explorer 1.0.

DataDirect Explorer Program Files
----------------------
The following files are copied to the Install Directory (by default, 
C:\DDEXP1) specified during Setup:

\MODELS		Subdirectory containing sample data and worksheets 
		for use in the examples for QPW.
\QECON		Subdirectory containing files necessary for DDE.
\samples\*.DBF	Sample dBASE data
\samples\*.DBT  dBASE memo data
\samples\*.TXT	Sample fixed field text files
\samples\*.CSV  Sample commom separated text files 
SAMPLE.WRH	SmartSet sample warehouse
*ISLV*.DLL	License database files
*.QIB		Icon bar files
DLLMGR.EXE	INTERSOLV DLL Manager program
ISLV*.HLP	License database Help files
LAF*.EXE	License Installation and Adminstration Facility files
LAF*.HLP	License Adminstration Facility Help files
LCF*.EXE	License Configuration Facility files
LCF*.HLP	License Configuration Help Facility files
OLE2.REG	OLE registration database
OQEAUTO.TLB	Type library for OLE
QDREADME	Driver README file
QE7.EXE		DataDirect Explorer program
QEADMIN.EXE	The DataDirect Explorer Administrator program
QEDES07.DLL	DataDirect Explorer Forms Builder library file	
QEQRY07.DLL     DataDirect Explorer Query Builder library file
QES.EXE		DataDirect Explorer Splash screen
READ.ME		DataDirect Explorer README file
SAMPLE*.*	Sample files for the OLE automation example
XWI322*.DLL	License Installation and Adminstration Facility files

Product Accessories
----------------------
Installing all of the product accessories copies the following Extend 
subdirectories to the Install Directory (by default, C:\DDEXP1) specified 
during Setup:

/EXCEL		Contains Extend for Excel files
/SCRIPTS	Contains Extend for QPW files
/WINWORD	Contains the Word for Windows macro files
QEI.DLL		Extend for Improv file
QEXL.DLL	Extend for Excel file
XTNDEXC.HLP	Extend for Excel Help file
XTNDIMP.HLP	Extend for Improv Help file
XTNDQPW.DLL	Extend for QPW file
XTNDQPW.HLP	Extend for QPW Help file

Help Files
----------------------
The following help files are copied to the Install Directory (by default, 
C:\DDEXP1) specified during Setup:

QRYBLDR.HLP	Query Builder online Help
DDEXP1.HLP	DataDirect Explorer online Help
QEOLE.HLP	Q+E OLE Command online Help
XTNDEXC.HLP	Extend for Excel online Help
XTNDIMP.HLP	Extend for Improv online Help
XTNDQPW.HLP	Extend for QPW online Help

Miscellaneous Files
----------------------
Setup copies the following files to the product
installation directory, by default, C:\DDEXP1:

PROGRESS.BAT	Used to build Progress driver for a given network
PATCH.EXE
QEDLLOAD.EXE
QEDRV07.HLP

For customers interested in building their own driver translation DLL,
setup copies the following files to the C:\DDEXP1\TRANSLAT directory:

MAKEFILE
LIBEXIT.C
LIBMAIN.C
QETRN.DEF
README.TRN
TRANSLAT.C

The following subdirectories and files are placed in DDEXP1 by default 
for PROGRESS users:

To C:\DDEXP1\PROGHP
PROGHP.RTP

To C:\DDEXP1\PROGLN
PROGLN.TRP

To C:\DDEXP1\PROGWL
PROGWL.RTP

To C:\DDEXP1\PROGWS
QEPNET07.DLL

Setup copies the following files to your Windows directory:

ODBC.INI
ODBCINST.INI
QE6.INI
ISLV.INI

In addition, see the QDREAD.ME file for a list of the driver and 
driver utility files shipped with Explorer.


	Compatibility with Third-Party Drivers 

Microsoft Access Driver 
----------------------
To have the Query Builder display a list of the tables in an Access 1.0 
database, add the following line to each Access 1.0 data source defined 
in the ODBC.INI file: 

QeDatabaseIsA=2 

When connected to any Access database (1.0 or 2.0), you may get incorrect 
summary information in a query that joins tables.  If you join tables by 
typing a SQL Select statement (by choosing the SQL command from the Tools 
menu), and if the SQL statement contains field names that are not 
capitalized as they are in the Access data dictionary, you may experience 
problems with breaks.  To avoid this problem, add the following line to 
each Access data source defined in the ODBC.INI file: 

QEIdentifierCase=4 

A new setting is available for Access data sources, QeLockByUpdate=1, 
which tells Explorer to lock records using an Update statement instead 
of a Select ... For Update statement or backdoors.  For more information 
on this new option, see the section of this file called "Locking with an 
Update Statement."


Microsoft Text Driver 
----------------------
To use Explorer with the Microsoft ODBC Text driver, add the following line to 
the Microsoft Text driver's data source defined in the ODBC.INI file: 
QeDataDictExtensions=1 


Lotus Notes Driver 
----------------------
To have the Query Builder recognize the "$" in column names, edit the 
ODBC.INI file and add the following line to each Notes data source defined 
in the ODBC.INI file: 

QeColumnFirstChars="$" 
QeColumnMiddleChars="$" 

The Notes driver does not support reading data in binary. However, Explorer 
reads fields larger that 255 bytes in binary. Therefore, when a field is larger 
than 255 bytes, the following error message appears: 

Driver not capable
 
To work around this, add the following line to each Notes data source 
defined in the ODBC.INI file: 

QeReadMemoChar=1 


Microsoft SQLServer Driver 
----------------------
The Microsoft SQLServer driver places the owner name before the qualifier 
and database name. This prevents Explorer from opening a given table 
properly. To work around this, add the following line to each SQLServer 
data source defined in the ODBC.INI file: 

QeQualifierSyntax=2 

Microsoft Oracle Driver 
----------------------
The Microsoft Oracle driver places the table qualifier at the end, which 
prevents Explorer from opening the table. To ensure that tables are opened 
properly, add the following line to each ORACLE data source defined in the 
ODBC.INI file: 

QeQualifierSyntax=1

