Defining Tables
When defining tables that correspond to C-ISAM files, define
one TABLE for each C-ISAM logical table that you want to access
through OmniAccess and declare the TABLE's TYPE as INDEXED.
A C-ISAM logical table consists of two files:
- a data file with a .dat file extension
- a corresponding index file with a .idx file extension
TABLE Customers
TYPE
INDEXED
PHYSICAL
"customer_table"
When declaring a file's physical name in a TABLE definition
statement, omit the file extension from the file's name. The
OmniAccess and C-ISAM routines do not require a file extension
to identify a C-ISAM file.
top
Defining COLUMNs
The table below lists the supported C-ISAM data types and
their equivalent environment catalog COLUMN TYPEs. Omnidex
keys can be installed on any of the following types of fields:
C-ISAM Data
Type Attribute |
Field Type |
Omnidex Environment
Catalog COLUMN Type |
CHARTYPE |
ASCII Character String |
CHARACTER |
INTTYPE |
signed 2-byte integer |
SIGNED INTEGER |
LONGTYPE |
signed 4-byte integer |
SIGNED INTEGER |
FLOATTYPE |
4-byte or 8-byte floating point decimal |
NATIVE FLOAT |
DOUBLETYPE |
double-precision |
NATIVE FLOAT |
top
Getting ROWIDs for Index-Only
Updates
When using the oadeleteindex, oainsertindex or oaupdateindex
routines, you must supply a row ID value to successfully update
the Omnidex indexes. C-ISAM uses a global variable, isrecnum,
to return row IDs to an application. See your C-ISAM manual
for information about how to define a variable to store isrecnum
values.
Note that C-ISAM guarantees that the row ID for any given
record will not change if that record is updated. Therefore,
when using oaupdateindex in a C-ISAM application, you can
use the same variable for the before_rowid and the after_rowid.
top
|