| ( TOP ) | WHAT IS ISAM? | ( TOP ) |
| ( TOP ) | ISAM STATEMENTS AND PROCEDURES | ( TOP ) |
TASK STATEMENTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FILE AND TABLE CREATION/ACCESS OPEN, CLOSE, DELETETABLE,
TYPE...END TYPE
CONTROLLING PRESENTATION ORDER OF CREATEINDEX, GETINDEX$,
DATA (INDEXING) SETINDEX, DELETEINDEX
POSITION CHANGE RELATIVE TO THE MOVEFIRST, MOVELAST,
CURRENT RECORD MOVENEXT, MOVEPREVIOUS,
TEXTCOMP
POSITION CHANGE BY FIELD VALUE SEEKGT, SEEKGE, SEEKEQ
TABLE INFORMATION BOF, EOF, LOF, FILEATTR
DATA EXCHANGE INSERT, RETRIEVE, UPDATE,
DELETE
TRANSACTION PROCESSING BEGINTRANS, COMMITTRANS,
CHECKPOINT, ROLLBACK,
SAVEPOINT
SOME ISAM STATEMENT USAGE RULES PARALLEL BASIC RULES, WHILE
OTHERS ARE MORE SPECIFIC DUE TO THE CHARACTERISTICS OF THE ISAM
FILE. FOR EXAMPLE, THE BASIC LOF FUNCTION, WHICH RETURNS THE
LENGTH OF A SEQUENTIAL FILE OR THE NUMBER OF RECORDS IN A
RANDOM-ACCESS FILE, RETURNS THE NUMBER OF RECORDS IN THE
SPECIFIED TABLE WHEN USED ON AN ISAM FILE.
| ( TOP ) | ISAM VS. OTHER TYPES OF FILE ACCESS | ( TOP ) |
FILE TYPE ACCESS UNIT
- - - - - - - - - - - - - - - - - - - - - - - -
BINARY BY BYTE
SEQUENTIAL BY LINE OR BY BYTE
RANDOM BY RECORD NUMBER (I.E., ROW ONLY)
ISAM BY POSITION, OR BY THE VALUE OF ANY FIELD
(OR GROUP OF FIELDS) WITHIN A TABLE
ISAM ALSO DIFFERS FROM OTHER RECORD-INDEXING APPROACHES BECAUSE
ALL THE INFORMATION RELATING TO THE RECORDS IS CONTAINED IN A
SINGLE FILE THAT ALSO CONTAINS THE DATA RECORDS THEMSELVES. THIS
CAN GREATLY FACILITATE USER MANAGEMENT OF COMPLICATED DATABASES
WITHOUT SACRIFICING SPEED AND CONVENIENCE.
| ( TOP ) | THE ISAM PROGRAMMING MODEL | ( TOP ) |
TASK TO BE PERFORMED ISAM APPROACH RANDOM-FILE APPROACH
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ASSOCIATE PROGRAM USE DIM AND USE DIM AND
VARIABLES WITH TYPE...END TYPE. TYPE...END TYPE.
DATABASE RECORDS.
ACCESS RECORDS. USE OPEN TO ACCESS USE OPEN TO ACCESS
A TABLE. A FILE..
CHANGE PRESENTATION USE CREATEINDEX NO SUPPORT PROVIDED.
ORDER OF RECORDS AND/OR SETINDEX. REQUIRES SORTING CODE
ACCORDING TO VALUE UNLESS RECORD-INSERTION
IN A SPECIFIED FIELD. ORDER IS ADEQUATE.
SPECIFY RECORD TO WORK USE MOVE DEST TO MOVE USE GET TO
WITH. BY ROW OR SEEK OPERAND RETRIEVE A
TO MOVE TO A RECORD RECORD BY
CONTAINING A SPECIFIED RECORD NUMBER,
FIELD VALUE. OR IF THAT IS
NOT ADEQUATE,
REQUIRES
SEARCHING CODE
TO DETERMINE
WHICH RECORD
TO GET.
DATA EXCHANGE. USE RETRIEVE TO ASSIGN USE GET AND PUT FOR
A RECORD FROM A TABLE SIMPLE FETCHING AND
TO PROGRAM VARIABLES. OVERWRITING OF EXISTING
USE UPDATE TO ASSIGN RECORDS. TO DELETE A
PROGRAM VARIABLES TO A RECORD, YOU TYPICALLY
RECORD IN A TABLE. USE CODE TO MARK IT FOR
INSERT TO INSERT A DELETION; WRITE A
RECORD IN A TABLE. USE TEMPORARY FILE THAT
DELETE TO DELETE A OMITS IT; THEN DELETE
RECORD FROM A TABLE. THE ORIGINAL FILE; AND
WHEN YOU OVERWRITE, FINALLY, RENAME THE
INSERT, OR DELETE TEMPORARY FILE WITH THE
RECORDS, ISAM HANDLES ORIGINAL FILENAME.
ALL TABLE AND INDEX TO DO A SIMPLE INSERT
MAINTENANCE OF A RECORD, YOU MUST
TRANSPARENTLY. CODE TO KEEP TRACK OF
THE NUMBER OF RECORDS,
THEN INSERT EACH NEW
RECORD AS NUMBER N+1.
INSERTING AT A SPECIFIC
POSITION REQUIRES CODE
TO SWAP RECORDS.
CHANGE PRESENTATION USE CREATEINDEX REQUIRES SORTING
ORDER OF RECORDS TO GET OR SETINDEX. CODE.
A DIFFERENT PERSPECTIVE
ON DATA.
CLOSE THE FILE(S). USE CLOSE FOR TABLES. USE CLOSE.
| ( TOP ) | ISAM CONCEPTS AND TERMS | ( TOP ) |
| ( TOP ) | ISAM COMPONENTS | ( TOP ) |
| ( TOP ) | THE ISAM ENGINE | ( TOP ) |
| ( TOP ) | THE PARTS OF THE ISAM FILE | ( TOP ) |
| ( TOP ) | ISAM FILE ALLOCATION AND GROWTH | ( TOP ) |
| ( TOP ) | WHEN TO USE ISAM | ( TOP ) |
| ( TOP ) | THE TABLE/INDEX MODEL | ( TOP ) |
| ( TOP ) | A SAMPLE DATABASE | ( TOP ) |
| ( TOP ) | DESIGNING THE BOOKSTOCK TABLE | ( TOP ) |
| ( TOP ) | CREATING, OPENING, AND CLOSING A TABLE | ( TOP ) |
| ( TOP ) | NAMING THE COLUMNS OF THE TABLE | ( TOP ) |
| ( TOP ) | SPECIFYING THE DATA TYPES OF THE COLUMNS | ( TOP ) |
| ( TOP ) | DATA TYPE COERCION | ( TOP ) |
| ( TOP ) | OPENING THE BOOKSTOCK TABLE | ( TOP ) |
| ( TOP ) | USING OPEN AND CLOSE WITH ISAM | ( TOP ) |
| ( TOP ) | OPENING A TABLE | ( TOP ) |
| ( TOP ) | CLOSING A TABLE | ( TOP ) |
| ( TOP ) | THE ATTRIBUTES OF FILENUMBER% | ( TOP ) |
| ( TOP ) | DEFINING A RECORD VARIABLE | ( TOP ) |
| ( TOP ) | CREATING AND SPECIFYING INDEXES ON TABLE COLUMNS | ( TOP ) |
| ( TOP ) | INDEXES ON BOOKSTOCK'S COLUMNS | ( TOP ) |
| ( TOP ) | CREATING A UNIQUE INDEX | ( TOP ) |
| ( TOP ) | SUBORDERING OF RECORDS WITHIN AN INDEXED COLUMN | ( TOP ) |
| ( TOP ) | CREATING A COMBINED INDEX | ( TOP ) |
| ( TOP ) | PRACTICAL CONSIDERATIONS WITH INDEXES | ( TOP ) |
| ( TOP ) | RESTRICTIONS ON INDEXING | ( TOP ) |
| ( TOP ) | DETERMINING THE CURRENT INDEX | ( TOP ) |
| ( TOP ) | TRANSFERRING AND DELETING RECORD DATA | ( TOP ) |
| ( TOP ) | THE CURRENT POSITION | ( TOP ) |
| ( TOP ) | CHANGING THE CURRENT INDEX | ( TOP ) |
| ( TOP ) | MAKING A DIFFERENT RECORD CURRENT | ( TOP ) |
| ( TOP ) | SETTING THE CURRENT RECORD BY POSITION | ( TOP ) |
| ( TOP ) | DISPLAYING THE BOOKSTOCK TABLE | ( TOP ) |
| ( TOP ) | A TYPICAL ISAM PROGRAM | ( TOP ) |
| ( TOP ) | SETTING THE CURRENT RECORD BY CONDITION | ( TOP ) |
| ( TOP ) | SEEKING ON STRINGS AND ISAM STRING COMPARISON | ( TOP ) |
| ( TOP ) | A MULTI-TABLE DATABASE | ( TOP ) |
| ( TOP ) | DELETING INDEXES AND TABLES | ( TOP ) |
| ( TOP ) | ISAM NAMING CONVENTION | ( TOP ) |
30 CHARACTERS OR FEWER. 40 CHARACTERS OR FEWER.
ALPHANUMERIC CHARACTERS ONLY, ALPHANUMERIC CHARACTERS,
INCLUDING A-Z, A-Z, AND 0-9. PLUS THE BASIC
TYPE-DECLARATION
CHARACTERS, WHERE
APPROPRIATE (VARIABLES AND
FUNCTIONS).
MUST BEGIN WITH ALPHABETIC CHARACTER. MUST BEGIN WITH
ALPHABETIC CHARACTER, BUT
ONLY DEF FN FUNCTIONS CAN
BEGIN WITH "FN".
NO SPECIAL CHARACTERS ALLOWED. THE PERIOD IS NOT ALLOWED IN
THE NAMES OF ELEMENTS WITHIN A
USER-DEFINED TYPE. SINCE THESE
ARE THE NAMES BASIC AND ISAM
HAVE IN COMMON, THERE IS NO
CONFLICT.
NOT CASE SENSITIVE. NOT CASE SENSITIVE.
| ( TOP ) | STARTING ISAM FOR USE IN QBX | ( TOP ) |
| ( TOP ) | ESTIMATING MINIMUM ISAM BUFFER VALUES | ( TOP ) |
| ( TOP ) | ISAM AND EXPANDED MEMORY (EMS) | ( TOP ) |
| ( TOP ) | USING ISAM WITH COMPILED PROGRAMS | ( TOP ) |
| ( TOP ) | PRACTICAL CONSIDERATIONS WHEN USING EMS | ( TOP ) |
| ( TOP ) | TSRS AND INSTALLATION/DEINSTALLATION ORDER | ( TOP ) |
| ( TOP ) | BLOCK PROCESSING USING TRANSACTIONS | ( TOP ) |
| ( TOP ) | SPECIFYING A TRANSACTION BLOCK | ( TOP ) |
| ( TOP ) | THE TRANSACTION LOG | ( TOP ) |
| ( TOP ) | USING SAVE POINTS | ( TOP ) |
| ( TOP ) | MAINTAINING PHYSICAL AND LOGICAL DATA INTEGRITY | ( TOP ) |
| ( TOP ) | RECORD VARIABLES AS SUBSETS OF A TABLE'S COLUMNS | ( TOP ) |
| ( TOP ) | USING MULTIPLE FILES: "RELATIONAL" DATABASES | ( TOP ) |
| ( TOP ) | THE REPAIR UTILITY | ( TOP ) |
| ( TOP ) | THE ISAMPACK UTILITY | ( TOP ) |
| ( TOP ) | CONVERTING BTRIEVE CODE | ( TOP ) |
BTRIEVE CODE DESCRIPTION BASIC EQUIVALENT
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 (OPEN) MAKES FILE AVAILABLE OPEN STATEMENT MAKES
FOR ACCESS. TABLES ACCESSIBLE
WITHIN THE DATABASE
FILE.
1 (CLOSE) RELEASES BTRIEVE FILE. CLOSE STATEMENT CLOSES
ISAM TABLES (AND ITS
DATABASE FILE).
2 (INSERT) INSERTS A NEW RECORD IN INSERT STATEMENT
THE FILE. INSERTS RECORD INTO
ISAM TABLE.
3 (UPDATE) OVERWRITES CURRENT UPDATE STATEMENT.
RECORD.
4 (DELETE) DELETES CURRENT RECORD. DELETE STATEMENT.
5 (GET EQUAL) FETCHES THE FIRST SEEKEQ + RETRIEVE
RECORD WHOSE FIELD STATEMENTS FETCHES THE
VALUE MATCHES THE FIRST MATCHING RECORD
SPECIFIED KEY VALUE. IN THE CURRENT INDEX.
6 (GET NEXT) FETCHES THE RECORD MOVENEXT + RETRIEVE
IMMEDIATELY FOLLOWING STATEMENTS.
THE CURRENT RECORD.
7 (GET PREVIOUS) FETCHES THE RECORD MOVEPREVIOUS +
IMMEDIATELY PRECEDING RETRIEVE STATEMENTS.
THE CURRENT RECORD.
8 (GET GREATER) FETCHES THE FIRST SEEKGT + RETRIEVE
RECORD WHOSE FIELD STATEMENTS FETCH THE
VALUE EXCEEDS THE FIRST MATCHING RECORD
SPECIFIED KEY VALUE. IN THE CURRENT INDEX.
9 (GET GREATER OR FETCHES THE FIRST SEEKGE + RETRIEVE
EQUAL) RECORD WHOSE FIELD STATEMENTS FETCH
VALUE EQUALS OR EXCEEDS THE FIRST MATCHING
THE SPECIFIED KEY VALUE. RECORD IN THE
CURRENT INDEX.
10 (GET LESS THAN) FETCHES THE FIRST SEEKGE+MOVEPREVIOUS
RECORD WHOSE FIELD + RETRIEVE FETCH THE
VALUE IS LESS THAN FIRST MATCHING
THESPECIFIED KEY RECORD IN THE CURRENT
VALUE. INDEX.
11 (GET LESS THAN FETCHES THE FIRST SEEKGT+ MOVEPREVIOUS
OR EQUAL) RECORD WHOSE FIELD +RETRIEVE FETCH THE
VALUE IS LESS THAN OR FIRST MATCHING
EQUALS THE SPECIFIED RECORD IN THE
CURRENT INDEX.
KEY VALUE.
12 (GET LOWEST) FETCHES THE FIRST MOVEFIRST+RETRIEVE
RECORD. STATEMENTS.
13 (GET HIGHEST) FETCHES THE LAST RECORD. MOVELAST+RETRIEVE
STATEMENTS.
14 (CREATE) CREATES A BTRIEVE FILE. OPEN STATEMENT. IN
BASIC THE DATABASE FILES
(AND TABLES) ARE CREATED
BY THE OPEN STATEMENT,
IF THEY DON'T ALREADY
EXIST.
15 (STAT) RETURNS NUMBER OF LOF RETURNS THE NUMBER
RECORDS IN THE FILE, OF RECORDS IN THE
PLUS OTHER FILE SPECIFIED TABLE.
CHARACTERISTICS.
16 (EXTEND) ALLOWS A FILE TO BE NO EQUIVALENT.
CONTINUOUS ACROSS TWO
DRIVES.
17 (SET DIRECTORY) CHANGE CURRENT CHDRIVE, CHDIR.
DIRECTORY.
18 (GET DIRECTORY) RETURNS CURRENT CURDIR$.
DIRECTORY.
19 (BEGIN TRANSACTION) MARKS START OF A BLOCK BEGINTRANS
OF RELATED OPERATIONS. STATEMENT.
20 (END TRANSACTION) MARKS END OF A BLOCK OF COMMITTRANS
RELATED OPERATIONS. STATEMENT.
21 (ABORT TRANSACTION) RESTORES FILE TO ITS ROLLBACKALL.
CONDITION PRIOR TO THE
BEGINNING OF THE
TRANSACTION.
22 (GET POSITION) RETURNS POSITION OF ISAM HAS NO
THE CURRENT RECORD. EQUIVALENT BECAUSE
THERE ARE NO RECORD
NUMBERS IN ISAM.
23 (GET DIRECT) FETCHES THE RECORD WITH ISAM HAS NO
THE SPECIFIED RECORD EQUIVALENT BECAUSE
NUMBER. THERE ARE NO RECORD
NUMBERS IN ISAM.
24 (STEP DIRECT) FETCHES THE RECORD IN ISAM HAS NO
THE NEXT PHYSICAL EQUIVALENT BECAUSE
LOCATION, REGARDLESS OF PHYSICAL LOCATION IS
THE INDEX. NOT A MEANINGFUL
MAPPING IN ISAM.
25 (STOP) UNLOADS BTRIEVE RECORD IN COMPILED BASIC PROGRAMS
MANAGER. USE OF AN EXTERNAL
DATABASE MANAGER IS
OPTIONAL. AFTER USING ISAM
WITHIN THE QBX
ENVIRONMENT, YOU SHOULD
UNLOAD THE TSR WITH ITS /D
OPTION.
26 (VERSION) RETURNS THE BTRIEVE NO EQUIVALENT.
VERSION NUMBER.
27-30 +100
| ( TOP ) | RUN-TIME ERROR MESSAGES AND CODES | ( TOP ) |