User Tools

Site Tools


memory_driver_specifications.htm
Navigation:  In-Memory Database Driver >====== In-Memory Driver Specifications ====== Previous pageReturn to chapter overviewNext page

The In-Memory driver reads and writes data stored in the memory of the program. One copy of the data is shared by all In-Memory files that have the same NAME. If no NAME is specified, then the label of the file is used to find the data to be used.

Files:

ClaMEML.LIB Windows Static Link Library
ClaMEM.LIB Windows Export Library
ClaMEM.DLL Windows Dynamic Link Library

Data Types:

 

BYTE REAL CSTRING
SHORT BFLOAT4 PSTRING
USHORT BFLOAT8 DATE
LONG DECIMAL TIME
ULONG PDECIMAL GROUP
SREAL STRING  

 

File Specifications:

File Size: limited only by memory space
Records per File: 67,108,864
Record Size: 2,147,483,648 bytes
Field Size: 2,147,483,648 bytes
Fields per Record: unlimited
Keys/Indexes per File: 255
Key Size: 2,147,483,648 bytes
Memo fields per File: 255
Memo Field Size: 2,147,483,648 bytes
Open Data Files: unlimited

Driver Strings

There are switches or “driver strings” you can set to control the way your application creates, reads, and writes files with a specific driver. Driver strings are simply messages or parameters that are sent to the file driver at run-time to control its behavior. See Common Driver Features--Driver Strings for an overview of these runtime Database Driver switches.

ebx_1971852550.jpg

Some driver strings have no effect after the file is open, so no SEND function syntax is listed for those strings. However, the SEND function syntax to return the value of the switch is listed for all driver strings.

The In-Memory Driver supports the following Driver String:

blk2blue.jpg

THREADEDCONTENT

DRIVER('Memory', '/THREADEDCONTENT')

The THREADEDCONTENT switch makes an in-memory table only visible on the thread where it was created. Any In-Memory table defined with the THREADEDCONTENT switch active is completely invisible to other threads.

Normally, an In-Memory file with the THREAD attribute shares the same data across all threads. However, if you want to have unique data on each thread, then you can set the driver string to /THREADEDCONTENT.

blk2blue.jpg

Supported Commands and Attributes

 

File Attributes Supported
CREATE Y
DRIVER(filetype [,driver string]) Y
NAME Y
ENCRYPT N
OWNER(password) N
RECLAIM N
PRE(prefix) Y
BINDABLE Y
THREAD Y
EXTERNAL(member) Y
DLL([flag]) Y
OEM N
File Structures Supported
INDEX Y
KEY Y
MEMO Y
BLOB Y
RECORD Y

 

Index, Key, Memo Attributes Supported
BINARY Y
DUP Y
NOCASE Y
OPT Y
PRIMARY Y
NAME Y
Ascending Components Y
Descending Components Y
Mixed Components Y
Field Attributes Supported
DIM Y
OVER Y
NAME Y

 

File Procedures Supported
BOF(file) N
BUFFER(file) N
BUILD(file) Y
BUILD(key) Y
BUILD(index) Y
BUILD(index, components) Y
BUILD(index, components, filter) N
BYTES(file) N
CLOSE(file) Y
COPY(file, new file) Y (see Note 1)
CREATE(file) Y
DUPLICATE(file) Y
DUPLICATE(key) Y
EMPTY(file) Y
EOF(file) N
FLUSH(file) N
LOCK(file) N
NAME(label) Y
OPEN(file, access mode) Y (see Note 2)
PACK(file) N
POINTER(file) Y
POINTER(key) Y
POSITION(file) Y (see Note 3)
POSITION(key) Y (see Note 3)
RECORDS(file) Y
RECORDS(key) Y
REMOVE(file) Y (see Note 1)
RENAME(file, new file) Y (see Note 1)
SEND(file, message) N
SHARE(file, access mode) Y (see Note 2)
STATUS(file) Y
STREAM(file) N
UNLOCK(file) N

 

Record Access Supported
ADD(file) Y
ADD(file, length) N
APPEND(file) Y
APPEND(file, length) N
DELETE(file) Y
GET(file,key) Y
GET(file, filepointer) Y
GET(file, filepointer, length) N
GET(key, keypointer) Y
HOLD(file) N
NEXT(file) Y
NOMEMO(file) Y
PREVIOUS(file) Y
PUT(file) Y
PUT(file, filepointer) Y
PUT(file, filepointer, length) N
RELEASE(file) N
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) N
Transaction Processing Supported
LOGOUT(timeout, file, …, file) N
COMMIT N
ROLLBACK N

 

Null Data Processing Supported
NULL(field) Y
SETNULL(field) Y
SETNULL(file,field) Y
SETNONNULL(field) Y

Notes:

1.COPY and RENAME can be used to make alternative copies of the In-Memory file in memory. If a file has the /THREADEDCONTENTS driver string switch, then COPY and RENAME will only work within the scope of the currently active thread.

2.The access mode of OPEN and SHARE is ignored.

3.POSITION(file) returns a STRING(4). POSITION(key) returns a STRING the size of the key fields + 4 bytes.

The complete documentation for the In-Memory Database Driver can be found in the IMDD install help file.

memory_driver_specifications.htm.txt · Last modified: 2021/04/15 15:57 by 127.0.0.1