CodeBase Database Tools For Programmers
Search   
Advanced Search
products   order   consulting   reviews   downloads   links   support   contact   about us    home  
Consulting Home
New CodeBase Features Consulting
Consulting Request Form

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

Additions to the CodeBase Library

Language-Specific Functionality

Platform-Specific Functionality

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.

Sequiter Inc.