![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General » View Thread |
Messages 1 to 2 of 2 total |
![]() |
Tue, Sep 22 2009 2:44 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Elevate Software is pleased to announce that ElevateDB 2.03 has been
released. ElevateDB is our latest embedded database engine for use by developers within their applications. It is available for the Borland Delphi, C++Builder, and Developer Studio products, Lazarus (Free Pascal), the CodeGear RAD Studio products, the Microsoft Visual Studio .Net products, and any development environment that can use the ODBC architecture for data access such as PHP or Java. For more information on ElevateDB, please see our product information page here: http://www.elevatesoft.com/prodinfo?action=list Distribution of ElevateDB is 100% royalty-free, including the ElevateDB Server, ElevateDB ODBC Driver, and ElevateDB .Net Data Provider. If you have any questions or would like to download a trial version, please visit us at www.elevatesoft.com or email us at sales@elevatesoft.com The following are the release notes for ElevateDB 2.03: ElevateDB Version 2.03 Release Notes ==================================== 2.03 Breaking Changes --------------------- - The catalog format has been modified, so updating a catalog will cause it to be unusable by any previous 2.02 or earlier version of ElevateDB. - The LIKE operator may now be slightly slower for partial wildcard searches (LIKE 'Test%' or LIKE 'Test_') when executed on a large table. This is due to changes that were required for proper operation of the LIKE operator with certain collations like German. Delphi 2010 Support ------------------- As of version 2.03, Delphi 2010 for Win32 support is included for both the ANSI and Unicode versions of ElevateDB. New 2.03 Features ----------------- - The TEDBQuery, TEDBTable, TEDBStoredProc, and TEDBScript components can now cache updates to their datasets via the BeginCachedUpdates, ApplyCachedUpdates, and CancelCachedUpdates methods. In addition there is a public property called CachingUpdates that will indicate when a dataset is caching its updates. - The TEDBSession component now includes the ExcludeFromLicensedSessions property that can be used to exclude a session from the TEDBEngine LicensedSessions count. This is useful for situations where you have a utility session that you want to exclude from your own licensing restrictions, such as when a session is used in a thread for performance reasons. Note This property does not cause the session to be excluded from the ElevateDB licensed session count, which is lower for all non-CS products. - The TEDBSession component now includes the SaveStoreFileToStream, SaveStreamToStoreFile, and CalculateCRC32ForStream methods for loading and saving files to and from stores via streams. This is useful for situations where you are storing non-ElevateDB files in an ElevateDB store and want to manipulate them at the stream level. - The TEDBDatabase component now includes an extra parameter for the StartTransaction method that allows you to specify the total amount of time, in milliseconds, that ElevateDB should wait for a successful transaction lock on the database or tables specified in the StartTransaction method call until it displays a lock error. - The TEDBDatabase component now includes the TableInTransaction method that allows you to check to see if a specific table is currently involved in a transaction. - The TEDBStoredProc component now supports executing functions in addition to stored procedures. The result of the function is contained in a result (TParam.ParamType-ptResult) parameter called "Result" that is automatically created when the function is prepared via the Prepare method. - The buffer manager in the engine has been updated so that buffer references are resolved much quicker, especially over much larger buffer sizes. This will allow multi-user, file-sharing applications (non-CS) to specify higher buffer sizes for tables without encountering performance penalties related to buffer management overhead. - All native (non-managed code) versions of ElevateDB now have much better index updating performance with indexed CHAR and VARCHAR columns. Internal tests here indicate a performance improvement of around 40% for bulk inserts. - Insensitive query result sets are now buffered more aggressively, especially for aggregate queries (GROUP BY), resulting in much better performance. - A SELECT statement containing sub-queries in the SELECT column expressions can now return a sensitive result set. This means that a query like the following can return a sensitive result set: SELECT CustNo, (SELECT Company FROM customer WHERE customer.custno-orders.custno) AS Company FROM orders Furthermore, this means that updating the sensitive result set in a way that changes the results of the sub-query will automatically cause the "looked-up" value to change as necessary. This is extremely useful for situations where, in the past, you would normally use a join and get an insensitive result set. - Views now automatically update their columns when the base tables or views involved in the view SELECT definition change. - The EXECUTE IMMEDIATE SQL/PSM statement can now accept parameters via a USING clause. This is useful for situations where data ia already in a variable and building a dynamic SQL statement is more difficult than using a parameter. The following function illustrates such a case: FUNCTION "GetTableVersion" (IN TableName VARCHAR) RETURNS DECIMAL(19,2) BEGIN DECLARE Version DECIMAL(19,2) DEFAULT 0; EXECUTE IMMEDIATE 'SELECT Version INTO ? FROM Information.Tables WHERE Name-?' USING Version,TableName; RETURN Version; END - There is a new INTO clause for SQL SELECT statements that allow you to specify one or more OUT parameters as the target of a SELECT statement. Such a statement doesn't return a result set at all, which is useful for situations where you only want one, or a few, values from a specific row in a table. However, the use of the INTO clause requires that the SELECT statement only return a single row. The following SQL statement shows how this works: SELECT Version INTO :Version FROM Information.Tables WHERE Name-:TableName - The operation of the LIKE operator has been modified to work properly for special collation exceptions present in certain languages like German ('ss' collates as a single character). The LIKE operator can now correctly handle wildcard searches that involve such collation exceptions. - There are now RENAME SQL statements for all configuration-level and database-level objects that simply allow you to rename a given object. - The ALTER TABLE SQL statement now includes a RENAME COLUMN clause that allows you to rename a column. - Triggers can now be enabled and disabled on a per-session basis via the ENABLE TRIGGER and DISABLE TRIGGER SQL statements. The status of a trigger can be queried via the Triggers Information schema table and the new Enabled column. - You can now specify the execution order of triggers by using the new AT clause for the CREATE TRIGGER and ALTER TRIGGER SQL statements. - SQL jobs, scripts, stored procedures, functions, and triggers can now declare and use arrays. There is now also a CARDINALITY SQL function for determining the actual length of an array. - The SQL CAST function can now include format specifiers in the same way that the IMPORT TABLE and EXPORT TABLE support them. For example, the following SQL statement will return a result set where the LastInvoiceDate TIMESTAMP column is in "m/dd/yyy h:mm:ss n" format: SELECT CAST(LastInvoiceDate AS VARCHAR(24) DATE FORMAT 'm/dd/yyyy' TIME FORMAT 'h:mm:ss n') FROM customer - The START TRANSACTION SQL statement now includes a TIMEOUT clause that allows you to specify the total amount of time, in milliseconds, that ElevateDB should wait for a successful transaction lock on the database or tables specified in the START TRANSACTION statement until it displays a lock error. - All error messages now include a reference to the container object of the object that is the target of the error message. If an index name is referenced that does not exist, the error message will indicate that the referenced index does not exist in the table associated with the reference. For example, the following SQL statement: DROP INDEX NonExistent FROM customer will cause the following error message: ElevateDB Error #401 The index NonExistent does not exist in the table customer whereas previously the error message would be: ElevateDB Error #401 The index NonExistent does not exist - There are two new Information schema tables: TemporaryTables TemporaryViews The TemporaryViews table is used to show all derived tables that are currently defined. - There is a new OrdinalPos column for the following Configuration database tables: MigratorParams - There is a new OrdinalPos column for the following Information schema tables: TableColumns IndexColumns ConstraintColumns TriggerColumns Triggers ViewColumns ProcedureParams - The BACKUP DATABASE and RESTORE DATABASE statements have been altered to now allow the backup or restore of the database catalog only. - The ElevateDB Server now logs all server starts/stops, invalid logins, and unauthorized IP address connection attempts to the logged events (LogEvents table). - All migrator modules now include a parameter called BlankNullStrings will cause any NULL strings to be migrated over as blank strings (non-NULL) instead. - The Unicode DBISAM migrator modules now properly map any string columns in the source table to the proper code page during the migration process. This ensures that any multi-byte characters are properly mapped to the appropriate Unicode characters. - Jobs can now be scheduled on a MINUTE basis in addition to on an HOUR basis. This is useful for incrementally backing up a database via replication every minute or every few minutes. - There is a new QUOTEDSTR SQL function for escaping single or double quotes in a string. - There is a new INTRANSACTION SQL function for determining whether the current database (or a specific table in the current database) is involved in a transaction. - The DROP STORE SQL statement now also removes the target folder if the store was local. - You can now specify user-defined functions in generated columns. However, there is still a restriction on using user-defined functions in computed columns. This is due to how each type of column is populated in the C/S architecture - generated columns are populated on the server during an update, whereas computed columns are populated on-demand in the client application. New 2.03 ElevateDB Manager Improvements --------------------------------------- As of version 2.03, the following improvements have been implemented in the ElevateDB Manager: - There is a new HTML help sub-system which currently contains the ElevateDB SQL Reference and will soon contain complete ElevateDB Manager help content. - You can now rename any object using the appropriate Rename task link. - You can now create a copy of any object by using the appropirate Create Copy task link. - The script debugger now allows you to see the entire contents of a long variable in the Variables tab, especially long SQL statements, by just moving the cursor over the variable value. The length of time that the variable contents are displayed has also been increased. - All modal dialogs that execute SQL DDL statements (CREATE DATABASE, ALTER TABLE, etc.) now immediately display any error messages and give you the option of copying the generated SQL statement to a new SQL window for further modification and/or execution after the cause of the error is corrected. - There is a new task for jobs called Execute Job as Script that allows you to execute a job immediately as a script in a new SQL script window. This is useful for testing a job in real-time instead of waiting for the scheduled job to execute. - There is a new Views button above the Explorer treeview that allows you to choose how each node of the treeview should display its sub-items in the Properties window. The view is specific to the node, but the global view for all nodes can be changed via the Explorer/Preferences menu item under the Default Object View option on the Explore tab of the Preferences dialog. - The Reverse-Engineer Database task now supports the generation of an upgrade script that will upgrade a source database to a specific target database. In addition, you can now specify collation conversions that will automatically convert source collation references to a new target collation reference during the reverse-engineering process. This is useful when reverse-engineering a Unicode database to a script that needs to be executed with the ANSI version of ElevateDB or the ElevateDB Manager. - Double-clicking on any Explorer treeview node now automatically brings forward the Properties window for that node. - You can now reverse-engineer any database object (excluding the databases themselves and similar configuration-level objects like jobs or stores) by dragging the object from the Explorer treeview to any SQL statement or script window. The ElevateDB Manager will automatically add any necessary EXECUTE IMMEDIATE statements if the object is being dragged and dropped on an SQL script. - There is now a Close All option for all folders in the Explorer tree view that will close all sub-objects that are contained within that folder. - You can now open any store file by clicking on the Open File task. The ElevateDB Manager will automatically use the Windows shell to launch the associated application (if one exists). This works for remote sessions also. Note The opened file is stored locally as a temporary file and you will be prompted to propogate any modifications to the file back to the source file. The ElevateDB Manager uses a CRC32 checksum to determine if the file has changed. - There is now an active index selection combo box for the table window, in addition to being able to select an index by clicking on a grid column header button. - You can now drag and drop the grid column headers in order to re-order the display of the columns in a table, including scrolling the column headers to move a column to a position that is outside of the currently-viewable set of columns. - The table window grid column layout saving/loading has been modified so that it automatically detects any changes in the base table columns and reverts the column layout to match the base table. Previously you would have to manually reset the column layout. - All combo boxes that offer selections of objects display their drop-down lists in alphabetical order for easier selection. - The Create/Edit session dialog will now offer to create a non-existent configuration folder, if such a folder is specified on the Local Configuration tab. - The F6 key now brings forward the Properties window for the currently-selected node in the Explorer treeview. - The parameters entry for SQL statements now allows you to specify the data type of any parameter. This is useful for situations where ElevateDB cannot determine the data type of a parameter, such as when a parameter is used in a CAST() SQL function. - INTERVAL types, DECIMAL/NUMERIC, and BLOB/BYTE types are now displayed properly in grids and can be entered properly in their textual form. - DECIMAL/NUMERIC and FLOAT/DOUBLE types now require that the period be used for the decimal separator for all inputted numbers. The period is the standard ANSI decimal separator character. -- Tim Young Elevate Software www.elevatesoft.com |
Tue, Sep 22 2009 5:39 PM | Permanent Link |
Lance Rasmussen Jazzie Software ![]() | Sweeeeeet. Looking forward to the new ones. I have a project I need
to do in D2010. Lance |
This web page was last updated on Wednesday, August 14, 2024 at 03:12 PM | Privacy Policy![]() © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |