RAD Studio Tools
- News & Events
DBISAM from Elevate Software compiles directly into your application with no external libraries required. Runtime package support is also provided if so desired. It has a very small footprint and does not require any forms support in Delphi and C++Builder 5 and higher, which helps keep the size of non-UI applications like services or web applications to a minimum.
DBISAM is available for Delphi and C++Builder 5 and higher versions. TDBISAMEngine, TDBISAMSession,TDBISAMDatabase, TDBISAMTable, andTDBISAMQuery components are provided for all of these versions of Delphi and C++Builder.
The complete source code for all utilities provided, and source code for DBISAM itself is available for an additional charge.
The utilities provided with DBISAM are:
|Database System Utility||This utility allows the developer or end user to create, browse, update, restructure, search, query, and print DBISAM tables from a convenient and easy-to-use interface.|
|Server Administration Utility||This utility allows the developer or end user to administer a DBISAM database server from a convenient and easy-to-use interface. This utility can modify server configuration data, users, databases, and user rights as well as retrieve server log information. All functions are subject to having administrator rights on the database server being administered and access can be controlled on a per-user basis.|
|BDE Database Transfer Utility||This utility allows the developer or end user to transfer any BDE-accessible table(s) to DBISAM format with a few clicks of the mouse. BDE aliases as well as normal directories are supported as the source for transfers, making it easy to transfer an entire database with little or no effort.|
DBISAM can be used as a single-user, multi-user, or client-server engine.
DBISAM does not pre-allocate large blocks of memory and uses, by default, a very small 128k of memory for each physical table in a session that contains BLOB fields and 96k for each physical table in a session that does not contain BLOB fields - 32k for records, 64k for indexes, and 32k for BLOBs (if present). These figures can be adjusted in the engine to allow for more memory consumption, if so desired. It uses a LRU cache management algorithm that also includes intelligent read-ahead buffering, optimized, serialized writes, and support for read-only devices like CD-ROMs with optimized buffering.
Automatic record locking and manual table locking is provided in DBISAM. Record locking can be configured to be pessmistic (default) or optimistic.
DBISAM offers transaction support in the form of buffered, serialized transactions that allow tables to survive unexpected client workstation power-downs with little, or in most cases, no data corruption. They are not, however, completely fail-safe.
DBISAM includes automatic change detection with a change detection policy that can be configured as "lazy" or "strict" on a per-session basis. This allows you to specify how current data should be when it is accessed by the application.
The in-memory tables in DBISAM are identical to disk-based tables and can be shared among multiple threads in the same application. You can create and use both local in-memory tables, which are stored in the client application's memory, or remote in-memory tables, which are stored in the database server's memory. In-memory tables can be used in SQL and can be mixed with disk-based tables.
DBISAM supports cached updates on a single table or query result set, with complete reconciliation control during application of the cached updates in order to handle possible errors. DBISAM also includes IProvider support that makes it ideal for use with the standard TClientDataSet component.
The DBISAM engine, represented by the TDBISAMEngine component, is highly customizable. Triggers, server-side procedures, scheduled events, custom SQL and filter functions, and custom engine signatures can be added and modified via the engine. However, server-side procedures and scheduled events are only available when the engine is acting as a database server. Triggers allow you to add code that is executed before or after any insert, update, or delete. Custom SQL and filter functions can be used to add complex functions to the SQL and filter grammar, thus enabling you to reduce the complexity of your SQL and filter expressions. Custom engine signatures can be used to "sign" all tables, streams, backups, and remote database server request and responses with a unique stamp so that only your application can access these resources.
Table Format Features
The default maximum file size in DBISAM is 4 gigabytes . You can enable extended supportfor files up to 128 gigabytes. However, this is only currently available for Windows only. DBISAM uses up to 3 physical files per logical table. All free space in DBISAM tables is automatically recycled. In addition, any free space can be removed from a table immediately by optimizing the table. DBISAM uses fixed-length record sizes and variable index page and BLOB block sizes. When creating or altering tables, some of the most useful feature include:
|Data types||The most common data types (including BCD, BLOB, GUID, and auto-increment) are supported in DBISAM tables, and complete and accurate NULL support is provided for all data types.|
|Encryption||Tables can be encrypted using strong encryption.|
|International locales||Tables can be assigned a locale in order to control how sorting occurs in indexes as well as any searching or filtering done on the table via filters or SQL. However, currently this support is only available for Windows only.|
|Configurable index page and BLOB block sizes||Both index pages and BLOB block sizes can be configured to optimize access and storage requirements.|
|User-defined versioning||Tables can be assigned major and minor version numbers, which allows for easy structure version checking and updating.|
|Long field names and field and table descriptions||Field names can be quite long, and descriptions can be specified for tables and fields for reference purposes.|
|Min, max, and required constraints, default values, and character-case specifiers for fields||Simple expression constraints can be assigned to fields, and default values can be assigned automatically for NULL fields when records are added. Also, you can specify that a field be forced to upper or lower case whenever that field is modified.|
|BLOB compression||BLOB fields can be compressed to save space, and thecompression is transparent once it is enabled.|
|Primary and secondary indexes||Tables can contain primary and secondary indexes that have case-insensitive, descending, and unique attributes, including mixed ascending/descending key fields.|
|Configurable index key compression||Index key compression can be enabled to greatly reduce the size of indexes and optimize access.|
|Full text indexing||Full text indexing is can be specified for any string or memo fields in a table along with stop words, space characters, and include characters to control how the indexing occurs.|
DBISAM includes support for remote client-server access to a DBISAM database server. You can switch between local or multi-user usage and client-server usage with just a few property changes. Remote sessions include support for keep-alive pinging or the ability to maintain sessions that can survive connection interruptions, complete with dead session management for sessions that will never be reconnected due to a fatal client problem. Connection timeouts for remote sessions can be adjusted, and an event is fired whenever DBISAM is about to disconnect a remote session due to inactivity.
Remote sessions can be configured to use compression and strong encryption when accessing a DBISAM database server. Compression can be adjusted on-the-fly while a session is active.
Activity tracing is available so that you may monitor all requests and responses for a given remote session. This is useful both for performance optimizations and for audit logging purposes.
DBISAM provides full local and remote administration capabilities. Databases can be backed up and restored manually or within scheduled events that automatically run at specified intervals. In fact, any administrative function can be run using a scheduled event.
DBISAM includes table creation and structure alteration, table verification and repair, table optimization, and import and export functionality. All of this functionality comes complete with progress, data conversion error, and log events to ensure that their execution can be customized and reported upon.