Navigation: ISAM File Drivers > TopSpeed Database Driver >====== TopSpeed:Supported Commands and Attributes ====== | |
File Attributes | Supported | |
CREATE | Y | |
DRIVER(filetype [,driver string]) | Y | |
NAME | Y | |
ENCRYPT | Y | |
OWNER(password) | Y1 | |
RECLAIM | N2 | |
PRE(prefix) | Y | |
BINDABLE | Y | |
THREAD | Y12 | |
EXTERNAL(member) | Y | |
DLL([flag]) | Y | |
OEM | Y | |
File Structures | Supported | |
INDEX | Y | |
KEY | Y | |
MEMO | Y3 | |
BLOB | Y15 | |
RECORD | Y | |
Index, Key, Memo Attributes | Supported | |
BINARY | Y13 | |
DUP | Y | |
NOCASE | Y | |
OPT | Y | |
PRIMARY | Y | |
NAME | Y4 | |
Ascending Components | Y | |
Descending Components | Y | |
Mixed Components | Y | |
Field Attributes | Supported | |
DIM | Y | |
OVER | Y | |
NAME | Y | |
File Procedures | Supported | |
BOF(file) | Y | |
BUFFER(file) | N | |
BUILD(file) | Y | |
BUILD(key) | Y | |
BUILD(index) | Y | |
BUILD(index, components) | Y | |
BUILD(index, components, filter) | Y | |
BYTES(file) | Y | |
CLOSE(file) | Y | |
COPY(file, new file) | Y | |
CREATE(file) | Y | |
DUPLICATE(file) | Y | |
DUPLICATE(key) | Y | |
EMPTY(file) | Y | |
EOF(file) | Y | |
FLUSH(file) | Y | |
LOCK(file) | Y5 | |
NAME(label) | Y | |
OPEN(file, access mode) | Y | |
PACK(file) | Y6 | |
POINTER(file) | Y8 | |
POINTER(key) | Y8 | |
POSITION(file) | Y9 | |
POSITION(key) | Y9 | |
RECORDS(file) | Y | |
RECORDS(key) | Y | |
REMOVE(file) | Y | |
RENAME(file, new file) | Y | |
SEND(file, message) | Y | |
SHARE(file, access mode) | Y | |
STATUS(file) | Y | |
STREAM(file) | Y7 | |
UNLOCK(file) | Y | |
Record Access | Supported | |
ADD(file) | Y | |
ADD(file, length) | N | |
APPEND(file) | Y | |
APPEND(file, length) | N | |
DELETE(file) | Y2 | |
GET(file,key) | Y | |
GET(file, filepointer) | Y8 | |
GET(file, filepointer, length) | N | |
GET(key, keypointer) | Y | |
HOLD(file) | Y | |
NEXT(file) | Y | |
NOMEMO(file) | Y | |
PREVIOUS(file) | Y | |
PUT(file) | Y | |
PUT(file, filepointer) | Y | |
PUT(file, filepointer, length) | N | |
RELEASE(file) | Y | |
REGET(file,string) | Y | |
REGET(key,string) | Y | |
RESET(file,string) | Y | |
RESET(key,string) | Y | |
SET(file) | Y | |
SET(file, key) | Y | |
SET(file, filepointer) | Y | |
SET(key) | Y | |
SET(key, key) | Y | |
SET(key, keypointer) | Y | |
SET(key, key, filepointer) | Y | |
SKIP(file, count) | Y | |
WATCH(file) | Y | |
Transaction Processing | Supported10 | |
LOGOUT(timeout, file, …, file) | Y11 | |
COMMIT | Y | |
ROLLBACK | Y | |
Null Data Processing | Supported | |
NULL(field) | N | |
SETNULL(field) | N | |
SETNULL(file,field) | N | |
SETNONNULL(field) | N |
Notes
1 We recommend using a variable password that is lengthy and contains special characters because this more effectively hides the password value from anyone looking for it. For example, a password like “dd….#$…*&” is much more difficult to “find” than a password like “SALARY.”
To specify a variable instead of the actual password in the Owner Name field of the File Properties dialog, type an exclamation point (!) followed by the variable name. For example: !MyPassword.
2 The TopSpeed driver automatically reclaims space freed by deleted records and keys.
3 The TopSpeed file system uses the same compression algorithm for RECORDs and MEMOs. For data of 255 bytes or less, MEMOs have no disk space advantage over STRINGs. However, STRINGs are always allocated space (RAM) within the record buffer, whereas MEMOs are only allocated space when the file is OPENed. MEMOs do carry the advantage of BINARY versus NONBINARY, plus MEMOs may be omitted from all processing with the NOMEMO statement.
4 The TopSpeed driver does not support external names for keys, because all keys are stored internally.
5 LOCK() only affects other LOCK() calls. The only effect of a successful call to LOCK() is that other processes will get an error ('File is Already Locked') when they call LOCK().
6 PACK performs a BUILD and truncates the file to it's minimum size.
7 STREAM has the effect of LOCKing the file.
8 GET(file,filepointer) requires a pointer value returned from the POINTER() function. POINTER() returns a physical record address (not a record number). Therefore you cannot use
GET(file,1)
to retrieve the first record in a TopSpeed file because 1 is not a valid pointer in a TopSpeed file.
9 POSITION(file) returns a STRING(4). POSITION(key) returns a STRING the size of the key fields + 4 bytes.
10 TopSpeed file logging is very fast (about 100 times faster than the Clarion driver). With LOGOUT, the TopSpeed engine posts all transactions to memory. ROLLBACK simply frees the memory, while COMMIT writes out the database changes in a stream.
If a system crashes during a transaction (LOGOUT–COMMIT), the recovery is automatically handled by the TopSpeed driver the next time the affected file is accessed.
11 LOGOUT has the effect of LOCKing the file. See also PROP:Logout in the Language Reference.
12 THREADed files do not consume additional file handles for each thread that accesses the file.
13 OEM conversion is not applied to BINARY MEMOs and BLOBs.
14 The TopSpeed driver accomplishes case insensitivity by converting strings to lowercase. This can cause unexpected behavior for characters that fall between the upper and lower case alphabet (that is, ^(94) and _(95) for both ANSI and ASCII sequences).
15 The driver can store BLOBs up to 640 MB. If you attempt to store a BLOB bigger than this, an ERRORCODE 80 - Function not supported, is returned. This error is returned after the BLOB handle assignment:
(e.g., blobname{PROP:Handle} = image{PROP:Handle}).