|
|
Database Comparer VCL Version History
|
|
|
Implemented Features:
- RAD Studio 12 Athens support.
- Minor fixes and improvements.
Implemented Features:
- Connecting to a database and extracting the database structure.
- Comparing two database structures and producing the update SQL script.
- Updating the target database structure using the update SQL script and syncrhonizing two databases structures.
- Comparing two SQL DDL scripts, a database and an SQL script, and synchronizing a database with an SQL script.
- Comparing and synchronizing data in two tables of the same database, two databases, or even two databases of different type.
- Synchronizing Firebird, Interbase, MS SQL, Oracle, MySQL, Sybase, Postgre SQL, and may other popular databases.
- Comparing and synchronizing stored procedure, trigger, and function scripts.
- Comparing tables, constraints, indices, triggers, generators, stored procedures, UDFs, grants, roles, and many other database objects, depending on the database type.
- Extracting the database structure (metadata) to a file.
Fixed Bugs:
- The Table Data Comparer didn't syncrhonize data with different key field names in the source and the target tables - fixed.
- The FireDAC connection component was fixed: added necessary modules to the "uses" section, fixed problems with the "Variable length column [RDB $ FIELD_NAME] overflow".
- The Database Comparer failed to analyze the Firebird CTE syntax, namely CTEs where the "WITH recursive" statement is used - fixed.
- The DBComparer failed to parse the "merge into query" and the "extract (week from...)" statements - fixed.
- The "Column unknown. FNC.RDB$OWNER_NAME" error when extracting Grants in Firebird 2.5 and earlier was fixed.
Implemented Features:
- A new example for the TTableDataComparer component was added. The example shows how to compare and synchronize two Firebird DB tables using a user-defined SQL script to fetch records. The connection is implemented via the FireDAC library.
Implemented Features:
- RAD Studio 10.4 Sydney support was introduced;
- IB Description - COMMENT ON FUNCTION was added;
- Compilation warnings when compiling in new versions of Delphi were fixed;
- Added support for DB2 version 9, 10, and 11;
- MSSQL - the compatibility level checking was implemented;
- TableDataComparer - the WideMemo blob data type was implemented;
- The Big-Endian Unicode encoding support was added.
- The TDBComparer.Database Type property was removed. The appropriate database type is determined automatically from both the master and the target database settings. Simple ignore this warning and allow IDE to remove it while opening your form in Delphi.
- The IBServerOptions (and also MSSQLServerOptions, etc.) were moved from the TDBComparer component to the TDBStructure component. You will need to make corresponding changes in your code.
Fixed Bugs:
- FB3: Procedure dependencies fix;
- Extract function arguments fix;
- FB3: CONTAINING fix;
- FB3: OVER-clause with ROW_NUMBER(), RANK(), DENSE_RANK() - fixed;
- FB3: UDF fixes. CSTRING datatype, MODULE_NAME, ENTRY_POINT keywords - fixed;
- FB 2.1+: CREATE COLLATION - fixed;
- FB3: FUNCTION (...) RETURNS param DETERMIMISTIC - fixed;
- FB: Computed field with datatype (erroneous script) - fixed;
- FB3: Local declaration procedure/function into proc/func body - fixed;
- FB3: Default values for proc-params fix (exptact from DB) - fixed.
Implemented Features:
- The CROSS APPLY statement for the SELECT command was added;
- The Packages support was added to the Firebird 3.0 engine;
- The parsing/building of CREATE FUNCTION statement was implemented;
- The DATEADD, DATEDIFF, and OVERLAY functions parsing was introduced for Firebird 3.0;
- The MS SQL Server CTE support was added;
- The default values for the stored procedure parameters was implemented;
Fixed Bugs:
- The database comparer cannot parse the "rows 1" statement in triggers - fixed;
- Crash comparing two oracle 11g2 databases - fixed;
- The Invalid typecast error occurs when extracting the Firebird 3.0 internal functions - fixed;
- The SQL LIST ALL and DISTINCT statements cause the parsing error in Firebird 2.6 - fixed;
- The valid Firebird 2.5 trigger with the script containing the CTE syntax is marked as invalid - fixed;
- The extractor cuts the final ")" from the stored procedure code - fixed;
- The updating of the Database Default Charset failed - fixed;
- The problems with parsing of computed fields of NUMERIC (nn, xx) type were fixed;
- The NOT NULL table columns are not changed to NULL for Firebird 3.0 - fixed;
- The problems with parsing of stored procedure scripts containing the PERCENT and OPTION statements were fixed;
- The comparer doesn't create the global temporary table, but it creates all the indices, primary keys, and foreign keys that belong to GTT - fixed;
Implemented Features:
- RAD Studio 10.2, 10.2.2 and 10.2.3 Tokyo support;
- Minimum IDE versions: Delphi 7.0, C++Builder XE;
- FireDAC support;
- Common Table Expressions (CTE) support;
- Full Firebird 3.0 support;
- 64-bit platform support;
- Design-time and runtime packages. The components can be used by RAD Studio form designer in 64-bit projects;
- New demo projects;
- FB: Procedure params: NOT NULL support added;
- Minor fixes and improvements.
Fixed Bugs:
- MSSQL (Transact-SQL) script syntax fixes - http://barry.exp-host.ru/tracker/view.php?id=1189
- TIME datatype with scale: time [ (fractional second scale) ];
- Derived_table parsing, like this: SELECT * FROM (VALUES (1, 2), (3, 4) ) AS MyTable(a, b);
- SET-statement, options sequence fix: SET ANSI_PADDING, ANSI_WARNINGS, ANSI_NULLS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER ON;
- CREATE INDEX with WHERE-clause;
- FB3: Disabling of the system table updates for Firebird 3.0 - http://barry.exp-host.ru/tracker/view.php?id=1063
- FB3: Added support for the Generator increments (START WITH... INCREMENT BY...) - http://barry.exp-host.ru/tracker/view.php?id=996
Implemented Features:
- RAD Studio 10.1 Berlin support added;
Fixed Bugs:
- FB: Firebird fixes (generator-fields, etc.);
- IB: P.RDB$RELATION_NAME field not found in rdb$procedure_parameters (Interbase XE) - fixed;
- MySQL: MySQL 4.0 "information_schema.routines" doesn't exist - fixed;
- FB: Access violation when loading the update script to the TIBSQLExec component - fixed.
Fixed Bugs:
- FB: Description of procedure params fixes.
- FB: Type of Domain default value fix.
Fixed Bugs:
- FB: Parse Hex-value (0x000...) fix for Int64.
Fixed Bugs:
- FB: Extract metadata from DB fix. TYPE OF for procedure params;
- FB: EXECUTE STATEMENT fix. Optional [DATA SOURCE].
Implemented Features:
- RAD Studio XE8 support added;
Implemented Features:
- RAD Studio XE6 and XE7 support added;
- 64bit and Unicode support improved;
Fixed Bugs:
- PostgreSQL: Extract database metadata fixes;
- PostgreSQL: CREATE FUNCTION, CREATE SEQUENCE fixes;
- MySQL: Table options, index options fix;
- IB/FB: Fix trigers parsing;
- PostgreSQL fixes.
Implemented Features:
- RAD Studio XE5 support added;
- 64bit support improved;
- Text encoding added: ANSI, Unicode, UTF-8;
- Minor fixes and improvements.
Implemented Features:
- RAD Studio XE4 support added;
- 64bit support improved;
- Minor fixes and improvements.
Implemented Features:
- VCL: Delphi XE3 support added;
- 64bit support;
- MySQL: PROCEDURE/TRIGGER support added (MySQL v.5.x);
- Oracle: v.11g suppopt added (11.x).
Fixed Bugs:
- FB: EXECUTE STATEMENT <options> fix;
- MySQL: PhpMyAdmin script parse fixes;
- Firebird: "...SIMILAR... ESCAPE..." fix, Issue: http://barry.exp-host.ru/tracker/view.php?id=423
- MS SQL: SELECT... FOR-clause fix;
- MS SQL fixes;
- TYPE OF COLUMN <table>.<column> declaration fix.
Implemented Features:
- RAD Studio XE2 support was implemented;
- 64bit support;
- Unicode support.
Fixed Bugs:
- MSSQL: SELECT-directive ...FOR BROWSE/XML fix,
Issue: http://barry.exp-host.ru/tracker/view.php?id=225
- FB: Common Table Expressions (CTE) fix for CREATE/ALTER VIEW statement;
- FB: Common Table Expressions in procedure body fix;
- MSSQL: Default values for function/procedure varibles fix.
Implemented Features:
- RAD Studio XE support was implemented;
- Unicode support;
- Hexadecimal Numeric and Binary String Literals support added:
(0x0F0000000, x'deadbeef');
- Support for dublicate index names for different objects (tables, views);
- IB/FB: SUSPEND for empty body of procedure;
- EXECUTE BLOCK support added;
- OVERLAY function support added.
Fixed Bugs:
- Datatype fixes: VARCHAR(n [ CHAR ] ), TIMESTAMP [ (precision) ];
- Extract metadata from database fix (extract users);
- Oracle: COMMENT ON COLUMN fix;
- Oracle: ASC/DESC for index-fields fix;
- FB2: Extract DATABASE TRIGGERs from database
(fixed by Alexander Khvastunov);
- FB2 version changed (property IBServerOptions.SQLServerVersion): st_firebird_2x => st_firebird_20, st_firebird_21, st_firebird_25
(fixed by Alexander Khvastunov);
- Views recreate fix;
- SELECT FROM SELECT fix.
Implemented Features:
- TEXT to BLOB SUB_TYPE TEXT conversion was implemented;
- FB21: extracting of stored procedure parameters was improved (DOMAIN, TYPE OF DOMAIN).
- FB2: triggers support was added;
- FB2: UPDATE OR INSERT... MATCHING... RETURNING, TYPE OF <domain>, MERGE-statement;
- FB2: Common Table Expressions were implemented (WITH... SELECT...);
Fixed Bugs:
- TDBComparer: the problem with changing of database type was fixed;
- MSSQL: fields with UNIQUE-constraints were extracted incorrectly - fixed;
- The problem with parsing of "AS" statement was fixed;
Implemented Features:
- Delphi 2007 support was added.
- TDBCCustomConnection: TestConnectInfo() method was added.
- Custom OLE DB connection was added.
- MSSQL: stored procedure comparing improvements.
- MSSQL: Default constraints improvements.
- MSSQL: comparing of table-valued functions which return tables was improved.
- MSSQL: Update column position was added.
- MSSQL 2005 improvements: SCHEMA, TYPE, XML SCHEMA COLLECTION, XML INDEX.
- MSSQL 2005: extracting of Descriptions was improved.
- Sybase ASA: ALTER COLUMN, Primary key CLUSTERED.
Fixed Bugs:
- Oracle: "type of object" fix.
- IB/FB: errors in parsing of "STARTS WITH" and "ALTER EXCEPTION" statements - fixed.
- IB/FB: SET BLOBFILE does not work - fixed.
- IB/FB: CHAR/NCHAR (VARYING) datatype fix.
- MSSQL: OPENDATASOURCE, OPENROWSET, OPENQUERY fix.
- MSSQL: BEGIN TRY/CATCH fix.
- MSSQL: ALTER TABLE ENABLE/DISABLE TRIGGER fix.
- MSSQL: negative IDENTITY values.
- "DUMMY" was excluded from keyword list.
- ASA7: "Extract metadata from DB" fix.
- Memory leaks were fixed (TTrgData.Destroy, TCustomScriptExtract, TObjs).
- ADOConnection: "Timeout expired" error was fixed.
Implemented Features:
- MySQL: "Case sensitive identifiers" option added.
Fixed Bugs:
- dbcTableDataComparer.pas - Delphi5 compilation fix.
- Fix for packages: ComparerADOD7.dpk, ComparerMyDACD7.dpk, ComparerIBDACD7.dpk, remove using *.dcp libraries.
- DB2: Parsing fixes: CONNECT, CREATE TABLESPACE, CREATE INDEX, ALTER TABLE...ADD CONSTRAINT.
- Yaffil: Fix for parse function PAD (...FOR...)
Implemented Features:
- IB DAC support was implemented.
- TableDataComparer: Logic related to deleting of records improved.
- News icons added.
Fixed Bugs:
- IB/FB: BLOB SUBTYPE TEXT - charset fix.
- TableDataComparer: Processing of fields of BIGINT type fixed.
- MSSQL: Case sensitive databases fix.
- IB/FB: Grants for views fix.
Implemented Features:
Oracle:
- Processing fields of CLOB datatype improved in TableDataComparer.
- GLOBAL TEMPORARY TABLEs support added.
MSSQL:
- Parsing of SELECT TOP <expression> * FROM <table> expressions improved.
ASA:
- Parsing of EVENT statements improved.
ASE:
- Processing of script header improved, comparison of database options added.
Fixed Bugs:
Oracle:
- Parsing fields of VARCHAR2( size ) datatype fixed (size was not extracted properly).
MSSQL:
- Parsing of CREATE DATABASE statement fixed.
- Parsing of IDENTITY (data_type [ , seed , increment ] ) AS column_name fixed.
- Parsing of procedure calls without parameters fixed.
- Table-valued functions being not extracted from databases and update of table-values functions fixed.
ASA:
- Parsing of GRANT statement fixed.
- Parsing of CREATE DOMAIN statement fixed.
- Parsing of GO-terminator fixed (some statements stared with GO... were interpreted as terminator).
- For v 8.x extracting of metadata fixed (related to error "Table SYSCONSTRAINT not found").
ASE:
- Bug related to unknown field "xtype" error in TableDataComparer fixed.
IB/FB:
- Parsing of PLAN options fixed.
- Parsing of ALL keyword as and argument inside aggregate function fixed.
- Parsing of ALTER TRIGGER statement fixed. (ALTER TRIGGER <trigger-name> {ACTIVE/INACTIVE}).
- Parsing of string datatypes inside UDF parameters fixed (size was not extracted properly).
- Interbase v 5.x error "Can't find procedure isc_service_attach in gds32.dll" fixed.
Implemented Features:
- Extract and compare Metadata for Sybase ASE, Postgre SQL, IBM DB2 implemented.
- Oracle: extracting and processing of TYPE's and PACKAGE's added.
- MSSQL: MSSQL 2005 support added.
- MSSQL, Sybase ASE: Full-text parsing implemented allowing to extract metadata from IF conditions and parameters of sp_executesql.
- MySQL: Support for GIS (geographic information system) datatypes added.
- MySQL: Tables creation algorithm improved (constraints, keys).
- TableDataComparer - property IngnoreComputedFields added.
- Sybase ASE: Support of roles, logins, users and rights added.
- Various improvements related to work with Sybase ASE.
- IB/FB: Field datatypes conversion improved (using update of system
tables), controlled by AllowDatatypeConversion option.
- Comparing of scripts and databases for Sybase ASE (initial
implementation).
- MSSQL: Extraction of Defaults from database for MSSQL2000/2005 was
improved.
Fixed Bugs:
- IB/FB: Bug related to creating/deleting of roles when comparing databases - fixed.
- MSSQL: Float datatype fix.
- MSSQL: Parsing of trigger's headers fixed: {FOR / AFTER / INSTEAD OF},
[WITH APPEND], [NOT FOR REPLICATION].
- TableDataComparer: IB/FB Dialect 3 table names fix.
- Oracle: Execute script fix, Extract packages, types from database.
- TableDataComparer: Output format fix for float values.
- PostgreSQL: v.8.0 fix (relation "pg_catalog.pg_authid" not found).
- IB/FB: VARCHAR(1) fix.
- IB/FB: Missing "AS" when parsing triggers - fixed.
- MSSQL: Parsing of GRANT statement fixed.
- MySQL: Parsing of Unique key fixed (length of the key was ignored).
- MySQL: Engine MEMORY/HEAP fixed (identified as separate statements).
- IB/FB: Relations were extracted only for triggers - fixed.
- IB/FB: Identifiers starting with "_" was not quoted.
- IB/FB: UDF calls without return params (type RDB$SET_CONTEXT) - fixed.
- IB/FB: Parsing of CREATE TRIGGER... without [POSITION n] fixed.
Implemented Features:
- A new component for comparing and synchronizing table data was added.
- The following SQL servers support was added: MS SQL, Oracle, MySQL, Sybase.
- Now the Database Comparer VCL can be independently compiled with any version of supported database engines.
- The following database engines are supported: ADO, BDE, DBX, IBX, FIB, IBO, ZEOS, MyDAC and ODAC.
- Now the SQLExec component can be used independently from DBComparer component for executing any SQL scripts.
- TableDataComparer: Sybase support was added.
- Sybase: Extract and compare PUBLICATIONs.
- Sybase(ASA): Extract metadata from DB, compare DB-structures, update DB-structure, execute external script.
- IB/FB: Option "Ignore IBE$... objects" added (ignore objects created by IBExpert).
- Dependencies of grants with the objects are added.
- MSSQL2000 keywords are added. Quoting of identifiers performed only if necessary.
- MSSQL: Remove dependencies for field before ALTER COLUMN.
- Support of CharSet-prefix for strings was added (e.g.: select _unicode_fss 'ABCD' from rdb$database).
- Support of Interbase v 4.0 restored (extract metadata).
- Domains CHECK altering via ALTER DOMAIN DROP CONSTRAINT / ADD CHECK (IB6.0 and up).
- TTableDataComparer.UpdateImmediately added.
- TDBStructure: Extract metadata into script.
- TTableDataComparer: comparison of tables with different structure.
Fixed Bugs:
- IB/FB: System CHECK_-triggers for views were extracted with option "WITH CHECK OPTION".
- Extraction of views with “WITH CHECK OPTION” (FB 1.5.2 truncates "OPTION" when saving view body into RDB$VIEW_SOURCE).
- REVOKE performed before assigning of rights (GRANTs) - fixed.
- Temporary dropped indexes (when updating other objects) was not be restored afterwards - fixed.
- EXTERNAL [FILE] parsing.
- NEW/OLD context-variables.
- "GLOBAL"-keyword removed.
- TxxxSQLExec closes connection after ExecuteScript - fixed.
- During updating of domain type the constraints on corresponding fields was not dropped - fixed.
- Temporary dropped constraints (and possible some other DB-objects) was not restored at first comparison pass.
- Updating of Precision, Scale for Decimal/Numeric (domains, table fields).
- Using of DBC VCL components may lead to Delphi IDE freezing in some cases - fixed.
- Comparing of tables with compare domains option turned off may lead to “Index out of bounds” error - fixed.
Implemented Features:
- Delphi 2005 support.
- Comparing of the MySql scripts was implemented.
Fixed Bugs:
- Comparing of the TIME fields in FireBird 1.x - fixed.
- The Database Comparer worked with COMPUTED BY fields incorrectly - fixed.
- The "Invalid factor in expression" error occured when comparing script statements with the row_count keyword - fixed.
Implemented Features:
- Starting from now the Ya / FB extensions of the EXCEPTION command are fully supported.
- The updating of the View objects has been improved.
- The deletion of the Domain objects which are used in Views has been improved.
- Starting from now the database Triggers are modified with the ALTER command instead of using the DROP / CREATE pair (IB6.x and higher).
- The data type conversion is performed using ALTER COLUMN / ALTER DOMAIN commands if it is possible (IB6.x and higher).
- Currently the database object descriptions are included into the resulting update script (using the DESCRIBE command).
- The Numeric / Decimal data type extraction has been improved.
- Starting from now the dbc script parser does not require for the AS specification in the CREATE DOMAIN ctatements: CREATE DOMAIN domain [AS] <datatype>...
Fixed Bugs:
- Cross references for the stored procedures are not used in the comparing process - fixed.
- The new View objects are not created - fixed.
- The inactive triggers look activated within the resulting update script - fixed.
- The ALTER DOMAIN command is generated incorrectly - there are some superflow commands like DEFAULT, NOT NULL etc.
- The table field constraints are not dropped with Alter Domain and Alter Column commands.
- From now on the data conversion for BLOB fields is disabled for both the Alter Domain and Alter Column commands.
Implemented Features:
- Starting from version 2.0 components have full support of the Interbase Objects (IBO) library.
Implemented Features:
- Extraction of the database triggers has been improved.
- The OLDFIBSYNTAX conditional directive has been added to the dbcIBDatabase.pas module. This directive is used for compatibility with old FIBPlus library versions.
- Script metadata extraction has been improved. From now the resulting script statements are separated with TERM delimiters.
Fixed Bugs:
- Comparing of the DEFAULT field parameters has been fixed. From now if this parameter is equal to NULL for the specified DOMAIN, the DEFAULT value will be taken from the corresponding field definition.
- Comparing of the CHARACTER SET parameters for calculated string fields was removed.
- Interbase parser error occured when parsing stored procedure or trigger which contain the term ('^') symbol - fixed.
- Grants on system tables were not compared - fixed.
- Grants on View objects were dropped after comparing - fixed.
Implemented Features:
- Database Comparer VCL v. 1.0 released!
- Starting from now you can compare one database with another database or database with SQL/DDL script or even two SQL/DDL scripts.
- Support of universal triggers for Yaffil and FireBired 1.5.
- Processing of external table fields located in external files. The algorithm of update of the external table fields is the same as for regular table fields.
- BOOLEAN fields handling (for IB 7.x).
|
|