ElevateDB

ElevateDB (Elevate Software)

An embedded SQL database engine that can be compiled directly into an application and offers local single and multi-user access (file-sharing) and client-server access.

Overview

Elevate Web Builder is a visual rapid application development environment for web applications. It is simple and easy to create beautiful web applications by simply dragging and dropping components on to forms and then changing their appearance and behaviors as desired. There is absolutely no need to learn JavaScript in order to use Elevate Web Builder.

Product Features


ElevateDB is an embedded SQL database engine that can be compiled directly into your application* and offers local single and multi-user access (file-sharing) and client-server access with the provided ElevateDB server. ElevateDB can switch between these modes of operation quickly, requiring just a few application changes. ElevateDB adheres to a subset of the SQL 2003 standard (ANSI/ISO 9075). Any deviations from the standard are detailed in the SQL reference material provided with the product.

* When using Win32 VCL or .NET VCL.NET compilers. The ODBC driver and ADO.NET data provider cannot be compiled directly into your application.

General Features

Some of the standard features in ElevateDB include:

FeatureDescription
Transparent local and client-server accessLocal and client-server access is identical in operation, requiring only a few property modifications to switch between the two
Small footprintClient access code added to a compiled application is minimal, and the ElevateDB server is less than 2 Mb in size
Multi-threadedBoth local and client-server sessions can be multi-threaded in an application
CustomizationFile signatures, file names, and file extensions, licensed session counts, and encryption passwords in ElevateDB can all be customized
ANSI/UnicodeElevateDB is available in ANSI (8-bit encoding using the Windows ANSI code pages) or Unicode (16-bit UTF-16 encoding) flavors under Windows
100% .NET managed codeElevateDB does not use any direct pointer access or memory manipulation under .NET, making it 100% managed code
Source codeElevateDB was written using Delphi's Object Pascal language, and the source code for ElevateDB is available for purchase as an extra charge
Excellent performanceAll SQL queries are optimized using available indexes and expression reduction, and query plans can be generated to show how a query will be executed
CollationsAll standard Windows locales and collations supported on a per-column and per-indexed column basis, including options for case-insensitivity, accent-insensitivity, Kana-insensitivity, and width-insensitivity
In-memory databasesDatabases can be created entirely in-memory and can be accessed from multiple threads
SecurityUser security is standard, but optional, and includes users, roles, and administrative access
Online backupDatabases can be backed up while they are being used
Serialized transactionsTransactions are always serialized and can be isolated to specific tables
Row lockingBoth pessimistic and optimistic row locking supported, with options for detecting row changes
ConstraintsCheck, primary key, unique, and foreign key constraints
Stored procedures and functionsFull SQL/PSM support for stored procedures and functions, including dynamic and DDL statements, structured exception handling, and rich cursor handling
TriggersBefore and after insert, update, and delete triggers with full SQL/PSM support in trigger definitions and conditional execution
ViewsUpdateable views and constrained views (WITH CHECK OPTION) supported
JobsJobs can be defined and scheduled to run on an ElevateDB server, and servers can be tasked to execute specific job categories
Data typesAll standard SQL data types are supported, including date/time intervals
Full text indexingAny CHAR, VARCHAR, or CLOB column can be indexed by word and searched using CONTAINS operator, and text to be indexed can be filtered according to another type column in the table
NULL handlingStandard SQL NULL behaviors for all data types and operators
Generated columnsColumns can be defined as expressions, and can be indexed and handled like any other column
BLOB columnsComplete BLOB support with per-column compression and configurable block sizes per table
Text import/exportTables can be imported or exported from delimited text files with options for the formatting of dates, times, numerics, and boolean values as well as the delimiter

Included with ElevateDB:

ElevateDB Manager
  • It can be used for interactive access to any ElevateDB database(s).
  • For users moving to ElevateDB from DBISAM, the Borland Database Engine (BDE), or any ActiveX Data Objects. (ADO) data source, there is an easy-to-use migration tool built into the ElevateDB Manager.
  • Existing databases can be easily reverse-engineered into their source SQL.
  • Database tables can easily be created, altered, browsed, filtered, and searched
  • Stored procedures and functions can be easily defined.

ElevateDB Server

  • Multi-threaded database server that can service any remote ElevateDB session across any TCP/IP network, including the Internet.
  • It can be run as a Windows service or as a normal application, and comes in interactive and command-line versions.
  • It can be configured to bind only to a specifc IP address and port, as well as accepting only encrypted connections or connections from specific IP addresses.

Back to top

Development Environments

ElevateDB is can be used with the following development environments with the access methods indicated:

EnvironmentsAccess Method

Borland Delphi 5, 6, 7

VCL
ODBC driver (via ODBC API)

Borland C++Builder 5,6

VCL
ODBC driver (via ODBC API)

Borland Developer Studio 2005

Win32 VCL
ODBC driver (via ODBC API)
ODBC.NET data provider (via ODBC driver)

Borland Developer Studio 2006

Win32 VCL
ODBC driver (via ODBC API)
ODBC.NET data provider (via ODBC driver)

CodeGear RAD Studio 2007

Win32 VCL
ODBC driver (via ODBC API)
VCL.NET
ODBC.NET data provider (via ODBC driver)

Microsoft Visual Studio 6

ODBC driver (via ODBCDirect)

Microsoft Visual Studio .NET 2002

ODBC.NET data provider (via ODBC driver)

Microsoft Visual Studio .NET 2003

ODBC.NET data provider (via ODBC driver)

Microsoft Visual Studio .NET 2005

ODBC.NET data provider (via ODBC driver)
ADO.NET data provider (100% managed code)

Microsoft Visual Studio .NET 2008

ODBC.NET data provider (via ODBC driver)
ADO.NET data provider (100% managed code)

Back to top

New Features in Version 2.02 of ElevateDB VCL Client-Server Product

Delphi 2009 Support
As of version 2.02, Delphi 2009 for Win32 support is included for both the ANSI and Unicode versions of ElevateDB.

New 2.02 SQL Features
There is a new ServerSessionStatistics table in the system Configuration database. This table reflects the table buffer manager statistics for all of the sessions that are present on the ElevateDB server that the current session is logged in to. This information is useful in determining how efficient the ElevateDB Server is with respect to I/O, and also how much I/O is actually taking place. For example, a large number of reads for the row buffer manager for a table may indicate that you have an un-optimized query or filter present in your application that is causing an inordinate number of row reads.

New 2.02 ElevateDB Manager Improvements
As of version 2.02, the following improvements have been implemented in the ElevateDB Manager

  • The manager settings have been moved from the ElevateDB Manager Edit Options task link to a Preferences menu option under the Explorer main menu item. The ElevateDB Manager Edit Options task link can still be used to set the temporary tables folder for the engine.

  • There is new option in the new Preferences dialog for specifying whether the state of the ElevateDB Manager should be saved during shutdown and restored when it is launched.

  • You can now specify the default sort order of all objects in the explorer via the new Preferences dialog. The two sort options are By Creation Order or By Name.

  • You can change the sort order of any specific objects folder by clicking on the desired object in the explorer and clicking on the desired explorer menu sort order button at the top of the explorer. You can also change the order by simply clicking on the Name column in the properties window list view where the objects contained within the folder are listed.

  • The script debugger is complete, and now includes an option to specify whether you wish the debugger to pause when it encounters an exception. By default, this option is checked. You will find this check box on the left-hand side of each script window under the Options task panel.

  • You can now drag and drop columns and parameters in any of the object creation/alteration dialogs in the ElevateDB Manager. This allows you to quickly re-organize columns and parameters without having to move each one individually with the Move Up or Move Down buttons.

  • There is a new Server Session Statistics task link for any remote session. Clicking on this link will open the new ServerSessionStatistics table on the ElevateDB Server. This table includes I/O performance statistics for each session on the ElevateDB Server, and is useful for determining whether queries need to be optimized further by adding more indexes to the existing tables.

New Features in Version 2.01

New 2.01 SQL Features
  • There is now a new REFRESH SQL/PSM statement for use with sensitive cursors.
  • You can now define an ERROR trigger that can be used to define error handlers for insert, update, and delete operations. Please see the CREATE TRIGGER topic for more information.
  • There is a new LIST aggregate function.
  • There is a new CURRENT DATABASE function.
  • Index names are now present in statement execution plans so that it is easy to see exactly which index was used to optimize a particular condition or set of conditions.
New 2.01 ElevateDB Manager Improvements
  • The SQL editor keystroke handling has been improved and the following keystrokes have been added or changed: Ctrl+I inserts a tab character now instead of indenting a block selection Ctrl+U no longer un-indents a block selection Ctrl+T deletes a word Ctrl+Y deletes a line Ctrl+Shift+I indents a block selection Ctrl+Shift+U un-indents a block selection Ctrl+Shift+Y deletes to the end of a line Ctrl+Left Arrow moves one word left Ctrl+Right Arrow moves one word right Ctrl+Backspace deletes the word to the right of the cursor Ctrl+Up Arrow scrolls up one line Ctrl+Down Arrow scrolls down one line Shift+Backspace deletes the character to the left of the cursor Ctrl+Shift+Left Arrow selects the word to the left of the cursor Ctrl+Shift+Right Arrow selects the word to the right of the cursor
  • General keystroke handling has also been improved and the following keystrokes have been added or changed: Ctrl+Tab moves to the next tab sheet Ctrl+Shift+Tab moves to the prior tab sheet Ctrl+N opens a new SQL statement window Ctrl+O opens an existing SQL statement or script Ctrl+S saves the currently-selected SQL statement or script Ctrl+N no longer NULLs a column value Ctrl+B NULLs a column value now
  • The ElevateDB Manager now saves the current state of the left-hand explorer as well as any open SQL or table windows when the application closes, and automatically restores this state when the application is restarted.

  • The left-hand explorer in the ElevateDB Manager now uses incremental node population. This means that the treeview nodes are not actually populated until they are expanded. The result is that load performance of sessions is much better, especially with remote sessions. However, there are two changes to the behavior of the treeview:

    1) A plus sign may be shown next to nodes that don't actually have any children. This is due to the fact that the ElevateDB Manager does not try to load the children until the node is expanded. Once the node is expanded, you can see if there are any children.

    2) Double-clicking on a table, view, or stored procedure node no longer opens the table automatically. Right-clicking on the table and selecting the Open option is the proper way to open a table, view, or stored procedure now. The reason for this change was to bring consistency to the behavior of the treeview, namely that double-clicking a node expands that node, and a node object is only opened if it is necessary to do so in order to display any child nodes under it, such as is the case with a session or database. Because tables, views, and stored procedures don't require the table to be open in order to display their child nodes, these objects aren't automatically opened when the node is expanded.

  • The ElevateDB Manager now auto-detects scripts vs. normal SQL statements when opening an .SQL file. This saves having to select which type of file that you wish to open prior to opening any .SQL file.

  • There were quite a few minor fixes to close/save behaviors and some improvements to the painting and refreshing of controls in order to make the UI more responsive and reduce flicker.

New Features in Version 2.0

The new ElevateDB 2.0 includes complete support for both uni-directional and bi-directional replication with your choice of push or pull synchronization options. The replication can also be used for hot backup of ElevateDB Servers and the ultimate in redundancy and safety that will drastically reduce downtime in the case of a server failure.

The following are the new features:

  • ElevateDB 2.0 supports replication. Please see the Replication topic for more information.
  • ElevateDB 2.0 introduces the concept of stores for file management. Please see the Stores topic for more information.
  • ElevateDB 2.0 supports derived tables in SELECT statements. Derived tables are essentially the ability to use a SELECT statement as a virtual table in the FROM clause of a SELECT statement. Derived tables can be nested as deep as memory and performance permits in ElevateDB.
  • ElevateDB 2.0 allows you to send progress, status message, and log message updates from scripts and procedures via the SET PROGRESS, SET STATUS MESSAGE, and SET LOG MESSAGE statements.

Version 2.0 Breaking Changes
The following are the breaking changes in version 2.0:

  • Executing the FETCH statement without specifying a fetch direction previously erroneously resulted in a FETCH NEXT in ElevateDB 1.x. In 2.x, this has been changed to correctly perform a fetch on the current row instead.
  • The BACKUP DATABASE, RESTORE DATABASE, IMPORT TABLE, and EXPORT TABLE statements now use stores instead of path names for their input and output. Please see the Stores topic for more information.
  • The TEDBEngine ConfigPath property now defaults to blank ('') and a design-time property editor now exists in the Object Inspector for selecting the configuration path.

Back to top

Requirements

Can be used with the following development environments

  • Borland Delphi 5, 6, 7 and 2009
  • Borland C++Builder 5,6
  • Borland Developer Studio 2005
  • Borland Developer Studio 2006
  • Borland RAD Studio 2007
  • Microsoft Visual Studio 6
  • Microsoft Visual Studio .NET 2002
  • Microsoft Visual Studio .NET 2003
  • Microsoft Visual Studio .NET 2005
  • Microsoft Visual Studio .NET 2008

Need more information on this product? No Problem!

Please contact us on +44 (0)20 8733 7103 or email sales@qbsd.co.uk