Elevate Software


Login Login

ProductsBulletSalesBulletSupportBulletDownloadsBulletAbout





Home » Elevate Software Blog

Icon Elevate Software Blog

Tags Showing all blog entries tagged with "New Releases"

DBISAM 4.46 Released
Posted by Tim Young on Thu, Nov 29 2018

DBISAM 4.46 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions.

The breaking changes and new features for both the DBISAM VCL and ODBC products are below.

4.46 New Features
The following are the new features in 4.46:
  • The join execution performance has been improved, and you should see an overall decrease in execution times for SQL statements that include joins.


  • The DBISAM Database Servers that are shipped with DBISAM now include the ability to use SQL performance tracking/logging to detect SQL statements that are exhibiting bad performance. This capability is a server-level feature, and is not implemented in the TDBISAMEngine component (it uses the SQL execution trigger in the engine). You can find out more information on the various dbsrvr.ini file options for the SQL performance tracking/logging here:

    Configuring and Starting the Server

    under the section that shows a sample dbsrvr.ini file (Sample DBISAM Database Server Parameters INI File).


Tags: DBISAM, New ReleasesPermanent Link0 Comments

ElevateDB 2.29 Released with 32-bit MacOS Support
Posted by Tim Young on Mon, Nov 26 2018

ElevateDB 2.29 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions.

The breaking changes and new features for the ElevateDB VCL/LCL, DAC, and PHP products are below. In addition, this release contains several bug fixes, which are detailed here.

2.29 Breaking Changes
The following are breaking changes in 2.29:
  • The MIGRATE DATABASE statement now disables all default column value assignments when migrating table rows. The migration functionality uses INSERT statements to migrate rows from the source database to the target database. Previously, the default column value assignments could cause primary and unique key conflicts when columns containing NULL values were migrated to the new database.


  • The lightweight word generator module, text filter module, and external module templates have been changed so that only module-relevant code is required in the actual project, and all ElevateDB module-specific code is part of engine-level units, similarly to the non-lightweight modules. The following is the implementation code for the new lightweight external module template project's main unit (Unit1):

    implementation
    
    procedure TEDBLightweightExternalModule1.DoRoutine(const RoutineName: String);
    begin
       { Fill in the routine (function or procedure) execution code here.
         You can have multiple functions and/or procedures in a module.
         Use the RoutineName parameter to determine which function or
         procedure is being executed.  Use the public ParamValues property of
         this external module (TEDBParamValues object) to access the parameters to
         the function or procedure.  Do not modify the ParamValues property other
         than to get/set the parameter values or Null flag.  Adding, removing,
         or changing the data type or parameter type of a parameter can cause
         serious problems.
    
         NOTE: The TEDBParamValues class is an internal ElevateDB engine class,
         and is used instead of the normal TParams class to bypass the inclusion
         of the Delphi VCL/DB units that cause the DLL size to bloat.  You can find
         out the various properties and methods available for this class in the
         edbvalue.pas and edbparam.pas units for ElevateDB.  If you are not
         comfortable working with an internal class such as this that contains no
         documentation, then you should use the normal external module template
         project that is installed into the Delphi object repository }
    end;
    
    initialization
       {  You *must* set the external module class, otherwise your class
          will not get instantiated !!! }
       LightweightExternalModuleClass:=TEDBLightweightExternalModule1;
    end.

    The key is the use of the initialization section to assign the class type for all lightweight modules that are instantiated by ElevateDB for this lightweight module.


  • For both the normal and lightweight word generator, text filter, and external module template projects, the exports clause has been moved from the .dpr (project file) to the main unit for the template projects. This change was required due to the Delphi MacOS compiler requirement that any library exports clauses not appear in the project files. You will need to make sure to adjust any existing word generator, text filter, and external module projects accordingly if you plan on using them with the MacOS version of ElevateDB.
2.29 New Features
The following are the new features in 2.29:
  • ElevateDB now supports the 32-bit MacOS compiler for RAD Studio XE4 and higher. RAD Studio XE2 and XE3 lack some necessary platform APIs, so support for those compilers will not be possible.


  • ElevateDB now includes SQL statement performance logging that can be used for determining which SQL statements are taking the longest to execute. There are new ENABLE STATEMENT LOGGING and DISABLE STATEMENT LOGGING statements, along with a new LoggedStatements Table system information table for reviewing which statements have been logged.


  • The PUBLISH DATABASE statement now includes a new BY clause that allows you to specify how you want the updates for a given table or tables to be logged.


  • The MIGRATE DATABASE statement now includes a new START AT TABLE clause that allows you to specify the table at which the migration should start. This is useful when the migration of a large database fails for an unexpected reason, and you don't want to start the migration from the first table in the database again.


  • The LOAD UPDATES statement now includes new MERGE DUPLICATE INSERTS and INSERT MISSING UPDATES clauses which allow for further control over how primary key constraints are handled during the loading of updates.


  • There are new ENABLE DEFAULTS, DISABLE DEFAULTS, ENABLE GENERATED, and DISABLE GENERATED statements that allow you to selectively enable/disable the default column value and generated column value functionality, respectively, in ElevateDB.


  • The join performance in ElevateDB has been improved, especially for SELECT statements that include joins performing lookups. Such joins tend to include lots of repeating driver table values, and ElevateDB uses this information to cache prior join projection sets and avoid re-building them.


  • There are new SET STATEMENT CACHE and SET PROCEDURE CACHE statements for setting the statement and function/procedure cache sizes for jobs.


Tags: ElevateDB, New ReleasesPermanent Link0 Comments

ElevateDB 2.28 Released
Posted by Tim Young on Wed, May 2 2018

ElevateDB 2.28 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions.

The breaking changes and new features for the ElevateDB VCL/LCL, DAC, and PHP products are below. In addition, this release contains several bug fixes, which are detailed here.

2.28 Breaking Changes for VCL/LCL Products
The following are breaking changes in 2.28:
  • Large file support is now enabled by default in ElevateDB. Along with this change, the TEDBEngine LargeFileSupport and TEDBSession LocalLargeFileSupport properties have been removed.

    These are published properties, so please be sure to open, ignore any warnings about these properties being absent, and re-save any forms or data modules that use the TEDBEngine or TEDBSession components to ensure that you do not see any runtime missing property errors in your application(s).

    Warning If you are using local ElevateDB sessions to directly access shared databases on a file server, you need to make sure that all client applications that are accessing the data are either updated to 2.28 or have their pre-2.28 TDBISAMEngine LargeFileSupport and/or LocalLargeFileSupport properties set to True. Failure to do so can cause the local ElevateDB sessions to not see each other's locks, which can lead to database corruption.


  • The TEDBEngine ExclusiveFileAccess property has been removed and replaced with the TEDBEngine BufferedFileIO property. Please see the new features in 2.28 section below for more information on the new buffered file I/O functionality in ElevateDB.
2.28 New Features for VCL/LCL Products
The following are the new features in 2.28:
  • ElevateDB now includes new global buffered file I/O functionality. There are new TEDBEngine BufferedFileIO, BufferedFileIOSettings, and BufferedFileIOFlushInterval properties for configuring the buffered file I/O in the engine. Please see the Buffering and Caching topic in the SQL manual for more information.


  • ElevateDB now includes new SQL statement and function/procedure caching functionality. There are new TEDBSession SQLStmtCacheSize and FuncProcCacheSize properties for configuring the caching, as well as the TEDBSession FreeCachedSQLStmts and FreeCachedFuncProcs methods for freeing cached SQL statements and functions/procedures. Please see the Buffering and Caching topic in the SQL manual for more information.


  • There are two new system information tables, the FileIOStatistics table, and the SessionStatistics Table table.


  • There is a new CURRENT_SESSIONID function for returning the current session ID in SQL/PSM routines.
2.28 Breaking Changes for DAC Products
The following are breaking changes in 2.28:
  • Large file support is now enabled by default in ElevateDB. Along with this change, the LARGEFILESUPPORT connection attribute has been removed.

    Warning If you are using local ElevateDB sessions to directly access shared databases on a file server, you need to make sure that all client applications that are accessing the data are either updated to 2.28 or have their pre-2.28 LARGEFILESUPPORT connection attributes set to True. Failure to do so can cause the local ElevateDB sessions to not see each other's locks, which can lead to database corruption.
2.28 New Features for DAC Products
The following are the new features in 2.28:
  • ElevateDB now includes new global buffered file I/O functionality. Please see the Buffering and Caching topic in the SQL manual for more information.


  • ElevateDB now includes new SQL statement and function/procedure caching functionality. There are new STMTCACHESIZE and PROCCACHESIZE connection attributes for configuring the caching, as well as the EDBConnection FreeCachedStatements and FreeCachedProcedures methods for freeing cached SQL statements and functions/procedures in the ElevateDB .NET Data Provider (there are no equivalents for the ElevateDB ODBC Driver. Please see the Buffering and Caching topic in the SQL manual for more information.


  • There are two new system information tables, the FileIOStatistics table, and the SessionStatistics Table table.


  • There is a new CURRENT_SESSIONID function for returning the current session ID in SQL/PSM routines.
2.28 Breaking Changes for PHP Products
The following are breaking changes in 2.28:
  • Large file support is now enabled by default in ElevateDB. Along with this change, the LARGEFILESUPPORT connection attribute has been removed.

    Warning If you are using local ElevateDB sessions to directly access shared databases on a file server, you need to make sure that all client applications that are accessing the data are either updated to 2.28 or have their pre-2.28 LARGEFILESUPPORT connection attributes set to True. Failure to do so can cause the local ElevateDB sessions to not see each other's locks, which can lead to database corruption.
2.28 New Features for PHP Products
The following are the new features in 2.28:
  • ElevateDB now includes new global buffered file I/O functionality. Please see the Buffering and Caching topic in the SQL manual for more information.


  • ElevateDB now includes new SQL statement and function/procedure caching functionality. There are new STMTCACHESIZE and PROCCACHESIZE connection attributes for configuring the caching, as well as the edb_freecachedstmts and edb_freecachedprocs functions for freeing cached SQL statements and functions/procedures. Please see the Buffering and Caching topic in the SQL manual for more information.


  • There are two new system information tables, the FileIOStatistics table, and the SessionStatistics Table table.


  • There is a new CURRENT_SESSIONID function for returning the current session ID in SQL/PSM routines.


Tags: ElevateDB, New ReleasesPermanent Link0 Comments

DBISAM 4.45 Released
Posted by Tim Young on Mon, Apr 30 2018

DBISAM 4.45 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions.

The breaking changes and new features for both the DBISAM VCL and ODBC products are below.

4.45 Breaking Changes for VCL Products
The following are breaking changes in 4.45:
  • The TDBISAMEngine LargeFileSupport property has been removed and large file support is now always on. This functionality has its roots in the old Windows 9x series of operating systems and is no longer relevant.

    Warning If you are using local DBISAM sessions to directly access shared databases on a file server, you need to make sure that all client applications that are accessing the data are either updated to 4.45 or have their pre-4.45 TDBISAMEngine LargeFileSupport property set to True. Failure to do so can cause the local DBISAM sessions to not see each other's locks, which can lead to database table corruption.


  • The TDBISAMSession PrivateDir property has been changed from being a published property to a public property, so you may see a missing property error when loading forms or data modules in the IDE that contain the TDBISAMSession component after updating to 4.45. This property is typically only useful at run-time, and setting it at design-time could cause run-time errors if its value did not work properly with the target operating system's configuration.

    Information To make sure that you don't experience any "missing property" exceptions at run-time in your application, please open any forms or data modules in your application that contain an existing TDBISAMSession component at design-time, ignore any "missing property" errors, and then re-save the owner form(s) or data module(s) that contain the TDBISAMSession component(s).


  • The TDBISAMEngine TableReadLockRetryCount, TableReadLockWaitTime, TableTransLockRetryCount, TableTransLockWaitTime, TableWriteLockRetryCount, and TableWriteLockWaitTime properties have been replaced with the equivalent TableReadLockTimeout, TableTransLockTimeout, and TableWriteLockTimeout properties.

    Information To make sure that you don't experience any "missing property" exceptions at run-time in your application, please open any forms or data modules in your application that contain an existing TDBISAMEngine component at design-time, ignore any "missing property" errors, and then re-save the owner form(s) or data module(s) that contain the TDBISAMEngine component.
4.45 New Features for VCL Products
The following are the new features in 4.45:
  • The SQL join performance has been improved by up to 30-40%, depending upon how join-intensive the SQL being executed is. For example, SQL SELECT statements that contain INNER JOINs but no WHERE clauses are very join-intensive, and will benefit the most from this performance improvement.


  • The internal bitmap set handling for filters and SQL has been changed so that DBISAM uses sparse bitmaps instead of linear bitmaps, resulting in faster performance and less memory consumption. Part of the join performance improvements mentioned previously are due to the use of the new sparse bitmaps.


  • The sockets functionality in the DBISAM engine has been replaced with a new implementation, which should result in better overall performance and stability for remote sessions and the database server.


  • There is a new NOWHEREJOINS clause available for the SQL SELECT, UPDATE, and DELETE statements. This clause allows you to prevent DBISAM from treating any inner joins in the WHERE clause (SQL-89-style joins) as optimized joins, instead allowing the expressions to be treated as un-optimized expressions that will be evaluated after any joins are executed.


  • There are new TDBISAMEngine StoreActive, TDBISAMSession StoreActive, TDBISAMDatabase StoreConnected, TDBISAMTable StoreActive, and TDBISAMQuery StoreActive properties for specifying whether the component's related Active and Connected properties are stored in the owner form or data module.
4.45 Breaking Changes for ODBC Products
The following are breaking changes in 4.45:
  • The large file support driver configuration option has been removed and large file support is now always on. This functionality has its roots in the old Windows 9x series of operating systems and is no longer relevant.

    Warning If you are using local DBISAM ODBC Driver connections to directly access shared databases on a file server, you need to make sure that all client applications that are accessing the data are either updated to use the 4.45 DBISAM ODBC Driver or turn on the pre-4.45 large file support driver configuration option turned on by using the ODBC Driver Configuration Utility that is included with the DBISAM ODBC Driver installation. Failure to do so can cause the local DBISAM sessions to not see each other's locks, which can lead to database table corruption.


  • The DBISAM ODBC Driver Table Read Lock Retry Count, Table Read Lock Wait Time, Table Transaction Lock Retry Count, Table Transaction Lock Wait Time, Table Write Lock Retry Count, and Table Write Lock Wait Time driver configuration options have been replaced with Table Read Lock Timeout, Table Transaction Lock Timeout, and Table Write Lock Timeout configuration options. These options can be modified using the ODBC Driver Configuration Utility that is included with the DBISAM ODBC Driver installation.
4.45 New Features for ODBC Products
The following are the new features in 4.45:
  • The SQL join performance has been improved by up to 30-40%, depending upon how join-intensive the SQL being executed is. For example, SQL SELECT statements that contain INNER JOINs but no WHERE clauses are very join-intensive, and will benefit the most from this performance improvement.


  • The internal bitmap set handling for filters and SQL has been changed so that DBISAM uses sparse bitmaps instead of linear bitmaps, resulting in faster performance and less memory consumption. Part of the join performance improvements mentioned previously are due to the use of the new sparse bitmaps.


  • The sockets functionality in the DBISAM engine has been replaced with a new implementation, which should result in better overall performance and stability for remote sessions and the database server.


  • There is a new NOWHEREJOINS clause available for the SQL SELECT, UPDATE, and DELETE statements. This clause allows you to prevent DBISAM from treating any inner joins in the WHERE clause (SQL-89-style joins) as optimized joins, instead allowing the expressions to be treated as un-optimized expressions that will be evaluated after any joins are executed.


Tags: DBISAM, New ReleasesPermanent Link0 Comments

ElevateDB 2.27 Released
Posted by Tim Young on Thu, Jan 11 2018

ElevateDB 2.27 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions.

The complete list of breaking changes and new features is below.

2.27 Breaking Changes
The following are breaking changes in 2.27:
  • The XML output from the EXPORT TABLE SQL statement now includes a top-level "table" element in order to properly adhere to the XML specifications and allow exported XML files to be properly validated.

    Information The IMPORT TABLE SQL statement can still import XML files formatted with or without the top-level "table" element.


  • Comparisons between timestamp values and date values now ignore the time portion of the timestamp value and only compare the date portion of the timestamp value with the date value. This means that you can now execute queries like the following:

    SELECT * FROM MyTable WHERE TimeStampColumn = DATE '2017-10-17'

    and the query will return all rows where the TimeStampColumn column contains a timestamp value whose date portion matches the specified date constant value.


  • As indicated in incident report #4609:

    # 4609 Default Expressions for DECLARE SQL/PSM Statements Not Being Properly Type-Checked

    default expressions for DECLARE SQL/PSM statements were previously not being type-checked properly, so you may see new type errors during compilation of routines that do not specify correct default expressions for a given variable type.
2.27 New Features
The following are the new features in 2.27:
  • New VCL TEDBDataSet Import and Export methods have been added to allow for the import/export of files to/from TEDBTable, TEDBQuery, TEDBScript, and TEDBStoredProc components.


  • A new LOG EVENT SQL/PSM statement has been added in order to allow SQL/PSM routines (scripts, procedures/functions, triggers, and jobs) to log information, warning, and error events directly to the logged events for the current ElevateDB configuration.


  • There are new VCL TEDBEngine AddDayTimeToDateTime, AddDayTimeToTime, AddYearMonthToDate, AddYearMonthToDateTime, SubtractDateFromDateAsDayTime, SubtractDateFromDateAsYearMonth, SubtractDateTimeFromDateTimeAsDayTime, SubtractDayTimeFromDateTime, SubtractDayTimeFromTime, SubtractTimeFromTimeAsDayTime, SubtractYearMonthFromDate, and SubtractYearMonthFromDateTime methods that allow for basic interval math directly from native code, in addition to SQL.


  • As noted above in the breaking changes section, you can now directly compare the date portion of timestamp values with date values.


  • ElevateDB now logs warning events to the logged events for the current ElevateDB configuration when a database is opened and the database path does not exist, or if the database catalog does not exist.


  • The ALTER INDEX and ALTER TEXT INDEX SQL statements no longer alter the entire index when only the description is changed.
In addition, this release contains several bug fixes, which are detailed here.

Tags: ElevateDB, New ReleasesPermanent Link0 Comments

ElevateDB 2.26 Released
Posted by Tim Young on Mon, Jun 26 2017

ElevateDB 2.26 is now available for download. If you're an existing customer, then you should be receiving an email shortly with download instructions.

The complete list of breaking changes and new features is below.

2.26 Breaking Changes
The following are breaking changes in 2.26:
  • The following incident report:

    Incident Report #4528 - Altering a Table Results in an Incorrect Table Structure Checksum

    deals with an issue with incorrect checksum calculations during table alterations. This bug can affect your ability to restore backups when restoring only table files without also restoring the database catalog. However, please keep in mind that the table structure checksums are only re-computed when a table is altered in some way, and under normal operation are simply just stored and compared to ensure that the physical table files match the table structure for the table in the database catalog.


  • There is a new JOININDEXTHRESHHOLD keyword available for the SQL SELECT statement. This keyword controls how ElevateDB handles optimized (indexed) WHERE conditions on tables that are the target of INNER JOINs. For more general information, please see the How ElevateDB Selects the Rows section in the Optimizer topic in the SQL manual.

    Previously, ElevateDB would simply use any available, usable index and build a bitmap that represented the set of rows, irrespective of how many rows were selected. This works fine when there are no joins, but can be problematic when the number of rows selected is large and the table is also the target of an INNER JOIN. In such cases, the INNER JOIN condition's bitmap must constantly be assigned/ANDed with the WHERE condition's bitmap and, because the join condition's bitmap typically represents a much smaller set of rows than the WHERE condition, this process of reconciling the bitmaps becomes computationally expensive and a drag on performance.

    The value provided with JOININDEXTHRESHHOLD clause is an integer value representing a percentage of rows that, when exceeded, causes ElevateDB to treat such WHERE conditions as un-optimized row scans instead of index scans. This eliminates the computationally expensive bitmap operations and drastically improves the performance of the SELECT statement. The default value for the JOININDEXTHRESHHOLD is 75. This means that a WHERE condition must select at least 75% of the rows in a table is also the target of an INNER JOIN condition in order to be converted into a row scan.
2.26 New Features
The following are the new features in 2.26:
  • There is a new NO BACKUP FILES clause included with the ALTER TABLE, CREATE INDEX, CREATE TEXT INDEX, ALTER INDEX, ALTER TEXT INDEX, DROP INDEX, and OPTIMIZE TABLE SQL statements. This clause allows you to stop ElevateDB from retaining backup files (*.old) for physical table files after the execution of the SQL statement completes.

    Information The NO BACKUP FILES clause does not apply to physical backup files created for the database catalog, which are always created and retained. Also, if the application executing the SQL statement is killed for any reason, it is still possible for these backup files to be present and not removed.


  • There is a new FROM PUBLISHED UPDATES clause included with the CREATE TABLE statement. This clause allows you to create a table (permanent or temporary) that includes all pending published updates for all, or some, of the tables in the database.


  • Query execution can now be cancelled while ElevateDB is executing un-optimized WHERE conditions on tables. Previously, ElevateDB would need to wait until such conditions were executed before it could cancel the query execution, and could only cancel query execution while executing joins and building the result set. This design was used for performance reasons, but it resulted in situations where runaway un-optimized queries could never be killed without killing the application itself.
In addition, this release contains several bug fixes, which are detailed here.

Tags: ElevateDB, New ReleasesPermanent Link0 Comments


Previous Entries: 1-6 7-12 13-18 19-24 25-30 31-36 37-42 43-48 49-54 55-57
Image