
                  e_Db for OS/2 - README.TXT
                  --------------------------

Welcome to e_Db for OS/2(**).

This file contains information not included in the product 
documentation.

This README file is divided into the following categories:

   -  Before You Install e_Db for OS/2
        -Software Requirements
        -Hardware Requirements
   -  Welcome to e_Db!
        -Package Contents
        -Getting Started
        -Technical Support
        -The Two-Minute Tour
           -First Steps for a C/C++ project
           -Creating and Opening a Database
           -Creating a Table
           -Inserting a Row
           -Creating an Expression
           -Searching a Table
           -Updating Data
           -Deleting Rows
   -  Getting Help
   -  Installing e_Db for OS/2
   -  Late-Breaking News
   -  Trademarks
   -  Your Satisfaction


Before You Install e_Db for OS/2
---------------------------------
If you downloaded the evaluation version of e_Db for OS/2 from 
our We site as LOADDSKF-compatible files you need to perform 
the following steps:

   1) Transfer the image in EDBOS2_1.DSK to a floppy disk as follows:

         loaddskf edbos2_1.dsk a: /F

   2) Transfer the image in EDBOS2_2.DSK to a second floppy disk as follows:

         loaddskf edbos2_2.dsk a: /F

   3) Transfer the image in EDBOS2_3.DSK to a third floppy disk as follows:

         loaddskf edbos2_3.dsk a: /F

   3) Insert the first disk (EDB_INSTALL) in the drive and type:

         a:\install

      Follow the instructions given by the installation program


Software Requirements
---------------------
   OS/2 Warp 3.0 or higher
   Windows support is necessary to display the e_Db Tutorial 
   and the online documentation.

Hardware Requirements
---------------------
   Intel 386 processor or higher

Welcome to e_Db!
----------------
   Whether you just purchased e_Db or simply downloaded an 
   evaluation copy of e_Db from our Web site we thank you for 
   choosing our product and we will do everything we can to help you 
   get up to speed as soon as possible.

Package contents
----------------
   Both the evaluation version and the full version of e_Db contain 
   the following items:

   1.  Programming Guide, Programming Reference, and e_Db Tutorial - 
       all in online help form.
   2.  Two versions of the e_Db database engine, one for your 
       release code and one with lots of debug 'hooks'.
   3.  e_Db Header and Import Library files (not needed with e_Db 
       for Visual Basic).
   4.  Edb3.bas and edb4.bas for Visual Basic users (not needed with 
       C/C++ programs).
   5.  e_Db Command-line interpreter (supplied with all versions).
   6.  e_Db Commander (only supplied with e_Db for Win32).
   7.  Fully tested dBase III driver & Beta version of e_Db native 
       database driver.
   8.  Many SAMPLE applications.

In addition, the full version of e_Db contains the following items:

   9.  200-page Programming Guide book.
   10. 280-page Programming Reference book.
   11. Detailed Installation Instructions, Release Notes, and 
      Registration card for FREE Technical Support.

Getting Started
---------------
   Depending upon your learning preferences, there are several ways 
   you can get you started with e_Db very quickly. Some programmers 
   immediately study the header files, others go straight to the 
   Programming Guide, and yet others follow the e_Db Tutorial. 

   We recommend the following steps. Feel free to perform them in 
   the order you feel more comfortable with.

   1.  Study the online e_Db Tutorial. The tutorial is available in 
       versions for C, C++, and Visual Basic. Don't miss the tutorial 
       section "Quick Overview of e_Db."
   2.  Read through the Programming Guide as a text book.
   3.  C/C++ programmers can look through edb.h and/or edb.hpp, 
       Visual Basic programmers should look at edb3.bas (VB3) or 
       edb4.bas (VB4).
   4.  Review the sample applications for C, C++, or Visual Basic.

Technical Support
-----------------
   We provide FREE technical support via our Web site. To reach the 
   Technical Support page on our site simply click on the Support 
   button. If you are evaluating e_Db and have technical questions 
   please send e-mail to techsupport@simple-sw.com and be sure to 
   state your name, company name, e_Db version, and target platform 
   along with a detailed description of the problem.

The Two-Minute Tour
------------------
   This section briefly introduces you to the mechanics of using 
   e_Db. The e_Db Tutorial online offers the most complete 
   introduction and the e_Db Programming Guide is the ultimate 
   source of information about programming with e_Db. We use the C 
   language in the following examples because it is easily 
   understood by C++ and Visual Basic programmers.

First Steps for a C/C++ Project 
-------------------------------
   1.  Define the appropriate platform symbol before including the 
      header file in your source module. For example, EDBWIN, EDBW32, 
      EDBOS2, or EDBDOS.
   2.  Include edb.h (C) or edb.hpp (C++) in your source code module.

Creating and Opening a Database
-------------------------------
   CreateDb(			// Create a new database
      hinst,			// Instance handle returned by CreateInstance
      "Music",			// Database dictionary name ("Music.dbd")
      "My CDs & Cassettes", // Database description
      "dbase3",		// Database driver class (dBase III)
      "db3os2.dll",	// Database Driver dll name (OS/2)
      CRDB_OVERWRITE);	// Overwrite an existing database of same name

   OpenDb(				// Open an existing database
      hinst,			// Database instance handle
      "Music",			// Database name ("Music.dbd")
      OPEN_SHARED,	// Open in 'shared' access mode
      "db3os2.dll",	// Database Driver dll name
      "My Music App",// Application name
      "c:\\log",		// Path to error log file
      "c:\\trans",	// Path to transaction files
      0,				   // No event procedure specified
      &hdb);			// Database handle returned here

Creating a Table
----------------
   CreateTable(		// Create a table
      hdb,				// Database handle
      "Songs",			// The table name
      "Title Char(80),"		// Column1: The song's title
      "SongId Counter,"		// Column2: Song id (self-incrementing number)
      "ItemId dword,"		// Column3: The music item this song belongs to
      "SongType Integer,"	// Column4: 1=Rock, 2=Country, 3=Jazz, 4=... 
      "Duration Integer,"	// Column5: Song duration in seconds
      "ReleaseDate Date,"	// Column6: Date song released
      "I_like_it Boolean",	// Column7: 'Y'=I like it, 'N'=I don't
      0,				   // Table creation options (none)
      &hsongs);		// New table handle is returned here

Inserting a Row
---------------
   // Create a new (empty) data space
   CreateDS(hsongs, &hds);

   // Set each column value in preparation to inserting the new row
   SetDSColumn(hds, "Title", title);

   // Note that you can use SetExtColumn for numeric columns. 
   // Sometimes it is more convenient than SetDSColumn
   SetExtColumn(hds, "SongType", type);
   SetExtColumn(hds, "Duration", duration);
   SetDSColumn(hds, "ReleaseDate", released);
   SetDSColumn(hds, "ItemId", &item);
   SetDSColumn(hds, "I_like_it", &my_taste);

   // Insert the new song into the table
   InsertRow(hds);

   // Free the internal memory used by the data space
   FreeDS(hds);

Creating an Expression
----------------------
   // Expressions are used in search, update, delete, and export 
   // operations. There are two ways to create an expression object: 
   // 1) From a string, 2) Created in individual steps. Please study 
   // these examples:

   // To create an expression from a string use helper function e_exp
   // or engine function QuickExpression, for example:
   hexp = e_exp(htable, "State = 'FL' or State = 'CA'");
   // or
   QuickExpression(htable, "State = 'FL' or State = 'CA'", &hexp);

   // To create the expression in steps:
   CreateExpression(htable, &hexp);
   AddTerm(hexp, "State", OP_EQ, "FL");
   AddOperator(hexp, LOGOP_AND);
   AddTerm(hexp, "State", OP_EQ, "CA");

Searching a Table
-----------------
   // Create the search expression. We want to retrieve table 
   // records for songs that last longer than five minutes
   QuickExpression(hsongs, "Duration > '300'", &hexp);

   // We now proceed to obtain a sorted list of the music items
   // that match the expression criteria.
   SelectRows(			// Retrieve table records
      hsongs,			// The table to search
      "*", 			   // Return all columns for each matching record
      hexp, 			// Search expression handle
      0,				   // No other tables joined
      SELF_SNAPSHOT |// Return results as a snapshot (memory buffer)
      SELF_SORTA, 	// Sort results in ascending order
      -1,				// Return as many result rows as necessary
      &hsel,			// Store results handle in this variable
      0);				// No user defined-data specified

Updating Data
-------------
   // Helper function e_exp compose the search expression and e_updateblk 
   // composes the update block. The idea is to set the "I_Like_it" column 
   // to False for those songs that last longer than five minutes.
   count = e_update(
            e_exp(hsongs, "Duration > '300'"),
            e_updateblk(hsongs, "I_Like_it SET 'F'"));

   // We used the "string" interface above. Please note that there are 
   // other ways in e_Db to create an expression and/or an update block.

Deleting Rows
-------------
   // Delete all song records for songs that last longer than five minutes
   count = e_delete(hsongs, e_exp(hsongs, "Duration > '300'"));

   This concludes your 'Two-Minute Tour', we hope you enjoyed the 
   ride and come back soon!

Installing e_Db for OS/2
-------------------------
   To install e_Db for OS/2 simply execute the INSTALL.EXE program 
   included in the "Install Disk" and follow the instructions.

   Note that the installation does not place any icons on your desktop.
   If you want to create desktop icons for the e_Db Tutorial or the
   online documentation beware that you need to have Windows support 
   installed on your machine as these are Windows Help files.

Trademarks
----------
   Terms used in this readme, which may be denoted by a double asterisk (**),
   may be trademarks or service marks of other corporations.

Your Satisfaction
-----------------
   Your satisfaction with Simple Software Solutions is important to us.  
   If you are not totally satisfied with this product please contact us 
   at techsup@simple-sw.com.

   Tell us what is not meeting your expectations and why you are
   dissatisfied.  Provide your name, your organizations's name, and
   your telephone number so that we can contact you.  We will work with
   you to resolve your concerns.

   To contact us, use any of these:

         o Telephone:    954-782-4845

         o Sales:        800-591-4260

         o Fax:          954-782-0818

         o Internet:     http://www.simple-sw.com
                         info@simple-sw.com
                         techsup@simple-sw.com

         o Mail:         Simple Software Solutions, Inc.
                         2659 SE 14th Street
                         Pompano Beach, FL 33062

