New CodeBase Features Consulting
This page lists the new features which can be added to your version of
CodeBase as a consulting service. While not yet formally added to any currently
shipping CodeBase product, these features have been tested and deployed to
various customer sites and could be made available before formal release. The
cost of this service ranges from approximately US$90 to US$900,
depending on the features, programming languages, and operating systems you want supported.
To obtain the cost, contact our
consulting department and
indicate the operating system, the file format,
the development environment, whether you need support for standalone, client/server or both,
and which features you want.
If you desire a feature not listed here, please contact our
consulting department and we will discuss
how we can enhance CodeBase to meet your needs.
CodeBase Support Subscription
The commonly requested features have been packaged together and are available for CodeBase for Windows
with the purchase of a CodeBase Support Subscription.
Refer to our CodeBase for Windows Premium Support Subscription
for further details.
CodeBase for Windows features included with the CodeBase Support Subscription
are indicated with a red asterisk (*).
Client/Server Functionality
- Communications Features
- Client/Server Functions
- Server Stability and Recovery
- Transaction Log File Options
- Other Features
Additions to the CodeBase Library
- Relation Module
- Field Manipulation
- Memo Fields
- Indexes and Seeking
- Locking
- Other Features
Language-Specific Functionality
Platform-Specific Functionality
- CodeBase SQL 2.0
- Other Platforms
Other Tools
* A red asterisk indicates the feature is included for CodeBase for Windows with the CodeBase Support Subscription
Automatic Recovery
This feature allows the CodeBase Database Server to
recover from abnormal termination as in a power failure or system crash.
This will allow the CodeBase Database Server service to restart without
user intervention.
Auto-Shrink Log File
This feature allows you to set a threshold size for the
log file. When the log file grows beyond this size, the CodeBase server
removes committed or rolled back transactions from the log file. This
prevents the log file from growing to an unmanageable size.
Back-up and Distributed Server
This feature allows the end user to setup multiple
CodeBase Server installations and store backup databases. Upon failure
of the primary server, a secondary server may start once the backup of
the database is complete. Even if the secondary server is not used, this
system can backup database files based on a schedule.
Build Number
This feature eliminates problems due to CodeBase clients
having a different build than the CodeBase Server. Client/server
communication will proceed only if the client and server are from the
same build.
Client Connection Testing
This feature exposes a code4ping() function which
may be called by client applications to verify the server connection
is still active without performing any other operations.
Client Bulk Reads and Writes
This feature increases client/server performance by
caching large amounts of records on the client-side.
Client Bulk Reads and Writes Enhancements
This feature enhances the Bulk Reading and Writing to improve
multi-user access when bulk writing, improve support to bulk reading with calls to
d4seekNext(), and add support for bulk reading with calls to d4seek().
Client/Server and Single/Multi-User at the Same Time
This feature allows a Windows application to choose either
to connect to the CodeBase Database server or to run in a Multi-User
Stand-alone mode at runtime. This feature could also be modified to
support choosing different index formats at run-time as well.
Communication between Clients
This feature allows CodeBase client applications to
communicate any type of information with other CodeBase client
applications connected to the same CodeBase Server.
Client/Server Compression
Communication between the CodeBase Server and CodeBase
client applications is compressed. This reduces the number of bytes
transmitted and therefore increases the speed of client/server
communication.
Disable Transaction Log File
This feature allows you to configure the CodeBase Database
server to prevent the use of the transaction log file (i.e.
S4SERVER.LOG). With this feature enabled, no log files are generated and
transaction processing is disabled.
Disable Transaction Flushing
This feature allows you to configure the CodeBase Database
server to disable the hard flushes associated with transactions. In particular
this boosts performance when files are opened by the server in shared mode (odbc
server always opens files shared). Performance may be boosted as much as 20 times
in this scenario. Note that with this option selected a server computer crash may
result in the log file not being able to recover the data files, and even previously committed
transactions may be unrecoverable and partially or completely lost.
8-bit Client/Server Encryption
Communication and data exchanged between the CodeBase
Server and CodeBase client applications is weakly encrypted providing
protection from casual snoopers on the Internet.
256-bit Client/Server Encryption
Communication and data exchanged between the CodeBase
Server and CodeBase client applications is very secure and cannot be used by
snoopers on the Internet. The user name and password that the CodeBase
client sends to the server is also secure. Performance of 256-bit encryption
is very roughly 10% less than without it and is similar the performance of
8-bit encryption.
Source code to this 256-bit encryption component is included in the
United States and Canada only.
Macintosh Client
This feature allows Macintosh applications to connect to
the CodeBase Database server using TCP/IP. This support is only
available for OS9 and OSX operating systems.
Multiple Retry Connections
This feature allows CodeBase client applications to try
connecting to the CodeBase database server every 2 seconds until a
maximum time-out value is reached.
Relation Query & Sort Suspension (Server)
This feature allows the CodeBase Server to suspend long query operations 4 time per
second to allow other client applications to execute. The query will take longer to complete but
other clients won't be stuck waiting for a query to execute before performing their operations.
Detailed Runtime Connection Information
This feature exposes a runtime option to generate detailed
CodeBase connection information that can help detect and solve specific network and
connection problems.
Service Tray Icon
The CodeBase Server, when running as a service, will
display an icon in the taskbar status area. When this icon is clicked,
the standard CodeBase server window will appear, displaying statistics
and other useful information about the CodeBase server.
Automatically client/server transfer memo fields on data fetch
This feature enables automatic memo field retrieval by the client
when a fetch command is executed (d4top/d4bottom/d4go/d4seek/d4skip/...). The functionality
can be enabled or disabled before any fetch. This improves
performance if you always call a memo field retrieval functions after a fetch command
because it avoids an additional data request by the client. There is a performance
penalty to transfer memo fields when they are not retrieved, so use of this feature should
be carefully considered.
User-Defined Server-Side Functions
The CodeBase server can run custom functionality on
demand. When invoked by a client-side API, the CodeBase server will load
and execute your own defined DLL containing functionality that you
create.
Server file flushing as Requested by Client
Calling d4flush() from the client will cause the server to
flush the data and associated index and memo files to disk.
Tag Count Function
This feature exposes a new low-level tfile4count() function that performs and returns
an optimized count of the number of records inside a tag. Available both in client/server and stand/alone.
Tag functions
This feature exposes several low level tag functions for use in the client/server
model. The following functions are supported: tfile4top, tfile4bottom, tfile4skip, tfile4key,
tfile4position, tfile4positionSet, tfile4recNo, tfile4seek, tfile4dskip, tfile4exprKey, tfile4eof,
t4alias, tfile4go. These functions are also available in standalone.
Java Metadata functionality
This feature will, after opening a table in Java, return
an object that describes every field in the database.
Java Transaction Processing
This feature allows Java applications to start, commit and
rollback transactions.
Simpler ODBC Installation
You can call the CodeBase SQL 2.0 functions in the CodeBase DLLs
directly. This avoids using the standard indirect ODBC connection method
and corresponding connection component. However, ODBC productivity tools
such as ADO and ADO.NET use this connection component. Consequently, you cannot use
this simpler installation at the same time as an ODBC productivity tool
such as ADO. This feature has the following benefits:
-
No special CodeBase SQL installation or registry manipulation required.
Simply copy the DLL into a location accessible by your
application.
-
The ODBC functionality is not exposed to ODBC-aware applications,
so you can maintain database security from other applications
while still using the ODBC API.
- No Windows API overhead.
-
You can switch your application back to using the connection component
by simply relinking your library.
Configure Optimization Buffer Size
This feature allows you to configure the maximum size of the
optimization buffer used by CodeBase SQL 2.0.
Data File Configuration for driver (Stand/Alone)
This feature allows you to use a data file to configure the Stand Alone CodeBase SQL
driver instead of relying on the Registry settings (which are configured with the ODBC Data Source Administrator)
Add or Remove Fields From Tables
This feature allows you to add or remove fields from existing
tables.
Autotimestamp Field Support
This feature allows you to designate an r4dateTime or r4dateTimeMilli field as
autotimestamp. Each time your application appends or updates a record, CodeBase
will automatically assign the universal coordinated system time to the autotimestamp field.
Enhanced Compression Control
This feature works in conjunction with any of the compression features (memo file, data file,
communications) to fine-tune the compression settings and options. This allows you to
balance the speed of compression and the final size of the compressed object on a runtime basis.
Additional CodePage support
Support for additional CodePages and collating sequences, including CodePage 850 and 1252.
Candidate Key Support
Create index tags that disallow records containing duplicate keys. This differs from the
existing unique setting which allows duplicates with unique tags if errDefaultUnique is set to r4uniqueContinue.
Autoincrement Field Support
This feature allows you to designate a field as
autoincrement. Each time your application appends a record, CodeBase
will automatically assign the autoincrement field. To calculate this
value, CodeBase takes the value from the record most recently appended
and increments it by a value defined by your application.
Data File Compression
With this feature enabled, data files are compresssed, reducing
the size of the data file.
Detect Data File Changes
With this feature enabled, a function is exposed that detects if
another user has changed the data file since the last call to that function. This can
be used to reduce multi-user locking or check if your records need to be refreshed.
Enhanced Relation Repositioning
With this feature enabled, calls to relate4doAll() will
position all associated data files to a valid position within the
relation. Programs can then resume forward and backward skipping from
the new position.
Error Callback Support
When CodeBase generates an error, instead of using its own
error reporting routines, CodeBase can call a function defined in your
application. This gives you total control over what actions take place
when responding to an error. Supported in Visual Basic and C/C++.
Error Description Retrieval
When CodeBase generates an error, you can use this function to
retrieve the detailed error description information. This is useful
for example if you have disabled the output of errors but still want to
retrieve the error information to display to the user.
Expression Functions for Relations Added
The additional expressin functions available for use in CodeBase expressins
and queries include:
- EMPTY
- DATETIME
- DEL
- PADL
- PADR
- SPACE
- STRZERO
New Expression Functions for Relations Added
Additional expression functions available for use in CodeBase expressions and queries
include:
- TTOC (time to character)
- KEYEQUAL (returns true if the generated keys are equal)
Relation Callback
This feature allows the relation to callback to a user defined function and optionally return a code to
cancel the relation operation. For example this can be used to halt a relation operation that is taking
a long period of time to complete. This could also be used for other application purposes such as updating a counter
or allowing another task to execute.
Relation Query Set Callback
This feature allows the relate4querySet() function to callback to a user defined function and possibly
edit the query. As an example if you have an application with many calls to this function and you want to make a global
change to all relations (e.g. a table name change), this may be more efficient than recoding your application.
Import/Export Memo
This feature allows you to import a file from the hard
drive into a memo field or save a memo field as a file on the hard
drive. This is useful for importing and exporting any sort of binary
file, such as BLOB or bitmap, and allows you to store this data in a
database for easy transport.
Index File Crash Recovery
When a CodeBase application terminates abnormally, as in a
power failure or system crash, this feature prevents index corruption by
rebuilding index files as necessary. This feature has been tested and
deployed on Windows CE and can be ported for use on other operating
systems. The price to port this feature to Windows on a high priority basis is US$250.
Large Index File Keys
Supports index keys larger than the restriction due to index compatibility limitations. The compatibility
restrictions are 102 bytes for dBase, 240 bytes for FoxPro, and 338 bytes for Clipper.
The new limit is left open and has been tested with values of up to 1024 bytes.
High Control Index Files
This feature allows the creation of an index file
that is not automatically updated when the data file is modified.
Consequently, you can control the contents of the index exactly through
the use of lower level functions.
Large Field Name Support
This feature allows a table to have
field names that are up to 256 characters in length,
exceeding the previous limit of 10 characters.
Large File Support for Sort Module
This feature allows the SORT4 module to exceed the 4GB
limit imposed on previous versions of CodeBase.
Memo Field Compression
With this feature enabled, memo field entries are
compressed, reducing the size of the memo file.
Partial Memo Retrieval
A new function allows for retrieving a portion of a memo
entry, rather than retrieving the entire memo entry. This is useful if a
memo entry is particularly large and the application needs to process
only a portion of the entire memo entry.
Query Results Count
A new function will return the number of records that
match a query. This is much faster than the method of skipping through
all matches and counting.
New Field Types
This feature exposes new OLE-DB and custom field types using the
standard CodeBase API. These new field types are more efficient, accurate,
and convenient for particular data types. The new field types available are
as follows:
- r4dateTimeMilli (r4dateTime type with millisecond accuracy)
- I2 (2 byte signed integer)
- UI2 (2 byte unsigned integer)
- UI4 (4 byte unsigned integer)
- I8 (8 byte signed integer)
- UI8 (8 byte unsigned integer)
- DBDATE (6 byte date in OLE-DB DBDATE format)
- DBTIME (6 byte date in OLE-DB DBTIME format)
- DBTIMESTAMP (16 byte date in OLE-DB DBTIMESTAMP format)
- FLOAT (4 byte single precision float field)
Progress Monitoring for Pack and Reindex
This feature exposes d4packWithProgress() and d4reindexWithProgress() with
the standard CodeBase API. These new functions allow you to monitor the progress of pack
and reindex by returing a percentage complete. You can use the results to
create a progress bar for your application to give the status of the reindex and pack.
Read Lock Expansion
This feature modifies the behavior of the read lock
feature such that seek function positioning will not lock the record
unless success has occurred.
Recycle Deleted Records
With this feature enabled, adding new records replaces
existing records marked for deletion. New records are appended to the
end of the data file only if the data file does not contain deleted
records. This is useful to prevent data files from growing excessively,
especially in cases where records are frequently being appended and
deleted.
Remove Tags From Indexes
This feature allows you to remove existing tags from index files.
Seek Without Read
A new function allows for seeking for a record without
reading that record into the record buffer. This is useful if your
application needs to determine whether or not a record exists in a
table, but does not need to read the contents of that record. Without
the additional file I/O of reading the contents of the record, this new
function is much faster than the standard method of seeking.
Shared Locking of Cloned Tables
With this feature, file locking can be shared by the base Data4 handle and all
subsequent Data4 handles opened via d4openClone().
Unlock Append Bytes
A new function to unlock the append
bytes without unlocking the record lock of the appended record.
This can reduce lock contention in multi-user applications while
maintaining lock integrity.
CodeBase Administrator Custom Branding
This feature allows you to override the default image in
the splash screen and contact information in the About box with your own
custom information.
DBF File Corruption Repair Tool
The most common DBF file corruption is the DBF file header
giving an incorrect count of the number of records actually in the
table. This utility is able to fix that corruption.
Log File Recovery Tool
This command line tool recovers the data files using the log file the same
as the CodeBase Administrator tool, but without the graphical user
interface. It is designed to be used in conjunction with the
automatic recovery feature to recover the database prior to restarting the
server.
File Compression Tool
This command line tool quickly and easily compresses existing files. With this
tool there is no need to write your own application to compress your existing files. The compressed files
can be used by the CodeBase File System or
CodeBase File System Add On without requiring any API
changes to your existing application. However, it should be noted that compressed tables are available for
read-only purposes.
File Encryption Tool
This command line tool quickly and easily encrypts existing data files. With this
tool you do not need to write your own application to encrypt your existing files. The encrypted files
can be used by the CodeBase File System or
CodeBase File System Add On without requiring any API
changes to your existing application.
File Format Conversion Tool
This command line tool converts data, index and memo files from one file compatibility
format to another. Supported formats include dBASE, FoxPro, Clipper and CodeBase Enhanced.
Converting your files to the CodeBase enhaced format will boost performance and provide additional
database functionality.
dBase File Format Support on Windows CE
This customization adds support for dBase IV DBF, MDX, and
DBT files to the Windows CE version of the CodeBase library.
Windows CE Multi-User support
This customization adds support for file sharing (with locking) on the same
Windows CE device.
|