In-Memory Driver Specifications

Top  Previous  Next

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.

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:

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.

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.