RELEASE Notes: This document describes changes and enhancements made to ApexSQL Diff Best viewed with 'WORD WRAP' unchecked -------------------------------------------------------------------------------------------------- RELEASE: 2008.02.0216 DATE: 24 November 2008 DESCRIPTION: Major Feature, Major Fix Release NOTE: On 2008, ApexSQL Diff was split into two products: ApexSQL Diff, for structure comparison and ApexSQL Data Diff for data comparison. These release notes cover all previous versions of the pre-split product, ApexSQL Diff, and new versions of ApexSQL Diff. -------------------------------------------------------------------------------------------------- Enhancements: - Up to 5x faster comparison and synchronization performance than in previous version - Differences Viewer now displays carriage return and linefeed symbols as whitespace - Source control support for SourceGear Vault, Subversion, Team Foundation Server - New source type (Source Control) in Project Settings - 'Add with Encryption' option in Synchronization Wizard for functions, procedures, triggers and views - Support for SQL Server 2008 table-valued user-defined types - Support for SQL Server 2008 SPARSE columns - Support for SQL Server 2008 FILE_STREAM columns - Support for SQL Server 2008 DATA_COMPRESSION option - Support for SQL Server 2008 READONLY parameters of SQL Server 2008 procedures - Support for SQL Server 2008 Geometry, Geography, HierarchyID types - Support for SQL Server 2008 XML_COLUMN_SET columns - Support for SQL Server 2008 CRYPTOGRAPHIC_PROVIDER credential attribute - New /scf1(/scf2) CLI switch for path of local folder with script files - New /sci1(/sci2) CLI switch to use source control server to retrieve scripts for comparison - New /sct1(/sct2) CLI switch for source control type - New /scs1(/scs2) CLI switch for name of source control server - New /scu1(/scu2) CLI switch for login for connection to source control server - New /scp1(/scp2) CLI switch for password for connection to source control server - New /scr1(/scr2) CLI switch for repository on source control server - New /scj1(/scj2) CLI switch for project path containing script files on source control server - New /scd1(/scd2) CLI switch to delete script files from local folder before retrieving new files from source control - New /scl1(/scl2) CLI switch to get script files from source control by label - New /scdd1(/scdd2) CLI switch to drop temporary source control database (if exists) - New buttons "<< Clone" and "<< Reverse >>" for datasources in Project Settings - Added "Reset Page Settings to Last Saved Values" option in Project Settings - Added "Status" and "Action" columns to objects grid of Main Form - Added "Default Directory" and "Default File Name" options for synchronization script to "Options" form - Added filtering by checked/un-checked items in Difference Code panel - Added sql example for each option in Project Settings Form Options page contain - New "Properties" tab that allows changing of project name and description - Added tooltips for "Source" and "Destination" columns Fixes: - NOT NULL columns are sometimes added to tables without default constraints - The presence of parentheses in Check Constraints is considered as a difference - Differences in filegroups may not be detected for tables - Equal functions incorrectly treated as different in MSSQL2K vs MSSQL2005 comparisons - 'Data is NULL' exception encountered during reloading of table columns - Diff Viewer does not ignore set comparison options even when the 'Ignore Comparison Option' is ON - The Functions as datatype dependencies aren't detected when the 'Include Dependent Database Objects' option is ON - The Rules difference not detected in Difference Code - Although Ignore Case and Ignore Comments options are unchecked, case and comment differences are still displayed in Difference Code Viewer - Incorrect existence checks generated for triggers when scripting from MSSQL2005 to MSSQL2K - Foreign Key Cascades are lost on synchronization - 'Dbo has insufficient rights' error during reloading of CLR DDL trigger - Schema/owner mapping algorithm sometimes cause synchronization exception - In case of mapping one source schema to multiple target schemas, an object may appear in the main grid several times and synchronization may result to an exception - During roles/members synchronization, users are not recognized as dependencies even when the 'Include Dependent Database Objects' option is turned on - The non-dependent table is incorrectly included on the Synchronization Wizard Dependencies detection step when schema mapping is used - HTML report generated with Javascript error for some options - Actions in Script Result step of Synchronization Wizard are incorrectly ordered when synchronizing UDT with dependent tables - User guest incorrectly loaded for databases where it doesn't exist - Nvarchar length in user datatype is sometimes incorrectly scripted - Application may hang during comparison of some stored procedures - Table DDL doesn't contain TEXTIMAGE_ON statement if column types are varchar(max), nvarchar(max) or varbinary(max) - NullReferenceException encountered during reloading of foreign key - Differences Viewer sometimes highlights differences without considering sql syntax - ArgumentNullException sometimes occurs while checking dependencies for table synchronization - Equal Rules displayed as different - 'Ignore Case In Names' may cause exception while comparison - User datatype synchronization script may fail if there is table that uses the datatype - Application roles default schemas are synchronized using DROP/CREATE instead of ALTER - Disabling DLL Triggers may cause error if output format of generated script is VBScript - If Default is bound to several columns on the same table, generated synch script fails - If one or more objects are bound to User, generated synch script fails - Assemblies that are dependent on DDL Triggers are not synchronized correctly - If Rule is bound to a Datatype, generated synch script fails - If Service is bound to a Contract, generated synch script fails - Other fixed exceptions (encountered during dependency checking): 'The process cannot access the file .\Data\ServerName\DbName\cache2005.14.207.0.dat because it is being used by another process.' 'End of Stream encountered before parsing was completed.' 'DB create script contains more than one CREATE statement for: schema.object' 'Unable to parse detected CREATE FULLTEXT INDEX' 'Object reference not set to an instance of an object.' - 'Checked Only' option in the HTML/CVS Report Options form incorrectly displays equal objects in HTML/CVS report Changes: - Removed Property item from Differences Viewer context menu - Replaced Comparison Wizard with new Project Settings - In Project Settings, Options tab contains treeview for selecting option pages - Object Filter tab now contains tree view for selecting Individual Object Selection tabs - Synchronization Wizard redesign to 3-step wizard with advanced options - New "Reverse" button now allows user to change synchronization direction - Added status bar to Synchronization Wizard - Removed Outlook bar from main form - Added "Edit Current Project Settings..." menu item to content menu of objects grid - "Source owner" and "Destination owner" columns appear instead of "Owner" if owner mapping is used - Changed default sorting in objects grid to by status (#1 Not equal, #2 Added, #3 Missing, #4 Equal); default sorting within each group is now by object type (#1 Table, #2 View, #3 Procedure, #4 Function and so on) - Checkboxes are now not displayed in objects grid for equal objects - Removed "Automatically Re-Compare Objects After Synchronization" option from Synchronization Wizard - Option "Include Dependent Database Objects" in Synchronization Wizard is now checked by default - Removed "Explicitly Parse Database for Proper Script Creation Order" option from Synchronization Wizard and CLI commands - Removed "Treat Object Selections As Exclude" option from Synchronization Wizard - "Object Filter" panel moved to Main Form and toolbar counterpart removed Known Issues: - Decrypting of encrypted MSSQL 2005 objects not supported -------------------------------------------------------------------------------------------------- RELEASE: 2005.14.0207 DATE: 24 Jan 2008 DESCRIPTION: Minor Fix Release -------------------------------------------------------------------------------------------------- Fixes: - project file from previous version of app is incorrectly loaded - 'Use Filter' options for object types may be loaded from previous session - synchronization check box in main form is not cleared after object became identical after synchronization - /sync switch doesn't work in CLI mode. The Error message informs that snapshot can't be synchronized. - /inc switch incorrectly work in CLI mode. Though /inc option is used all objects are compared. - objects in filter pages in the comparison wizard are not all marked when databases in Login pages are changed Known issues: - During roles/members synchronizing users are not recognized as dependencies having the Include dependent database objects option turned on - On changing servers at the Login page the new objects won't be checked by default in the individual object filters if any of database names remains unchanged - On synchronization the foreign key cascade actions can be lost after recreating - In case of mapping one source schema to multiple target schemas an object may appear in the main grid several times and synchronization may result in an exception -------------------------------------------------------------------------------------------------- RELEASE: 2005.13.0206 DATE: 28 Nov 2007 DESCRIPTION: Medium Fix Release -------------------------------------------------------------------------------------------------- Fixes: - On synchronizing roles with different members the members may not be added if a user that corresponds to the member is absent in the destination database - User-defined datatypes based on varbinary(max) and other MAX types are scripted incorrectly - In case of synchronizing user-defined datatypes (deleting from the destination) the target tables using those types may be dropped instead of unbinding the types - Mapping schemas may result in improper output scripts in case of synchronizing tables with foreign keys - Fulltext catalogs aren't scripted in/extracted from SQL 2000 database snapshots - Filegroups aren't scripted in/extracted from SQL 2000 database snapshots - Difference in function return types is not detected in some cases - Issue with incorrect importing/exporing selection profile Known issues: - During roles/members synchronizing users are not recognized as dependencies having the Include dependent database objects option turned on -------------------------------------------------------------------------------------------------- RELEASE: 2005.12.0205 DATE: 19 Nov 2007 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added fulltext catalogs support for SQL Server 2000 - Added warning for syncing functions when target server is SQL Server 7.0 - Added warning for cases when exclude schema/owner option is used in manage owners tab and object owner/schema differs from dbo and default schema of connect user - Added warning for cases when not all object types are loaded Fixes: - Issue with expressions comparison in computed columns, check and default constraints, bodies of rules and defaults - Check for existence statements for Foreign Keys was removed for cases when "Check For Objects Existence..." option is OFF - Duplicating extended properties creation statements in some databases - Extended properties on foreign keys are not ignored for cases when "Ignore Foreign Keys" option is ON - Some system objects are not ignored for SQL Server 2005 for cases when "Ignore System Objects" option is ON - Issue with handling contracts dependent on message types for cases when "Include Dependent Database Objects" option is ON - Issue with queues ordering for cases when there are queues dependent on stored procedures and Include dependencies option is off - Issues with dropping dependent objects for cases when one-side object is checked for synchronization and should be dropped - CREATE/DROP statements instead of ALTER were used for services, message types and queues in some cases - Check constraints and Foreign Keys were recreated instead of changing CHECK/NOCHECK state for cases when constraints differ only in CHECK state - Issue with syncing statistics and indexes on views for cases when views differs only in statistics or only in indexes - Manage Owners option group does not work for cases when "Remove Only if Different from the Connected User" is checked - Wrong summaries order in some cases (e.g. when altering authorization for tables when table is recreated) - Changed check for existence methods for extended properties - now ::fn_listextendedproperty function is used - Incorrect processing of the 'Cryptographic exception' thrown when loading project with encrypted credentials - Exception 'No application is associated with the specified file for this operation' when HTML report is opened Known issues: - During roles/members synchronizing users are not recognized as dependencies having the Include dependent database objects option turned on - On synchronizing roles with different members the members may not be added if a user that corresponds to the member is absent in the destination database - User-defined datatypes based on varbinary(max) and other MAX types are scripted incorrectly - In case of synchronizing user-defined datatypes (deleting from the destination) the target tables using those types may be dropped instead of unbinding the types - Mapping schemas may result in improper output scripts in case of synchronizing tables with foreign keys - Fulltext catalogs aren't scripted in/extracted from SQL 2000 database snapshots - Filegroups aren't scripted in/extracted from SQL 2000 database snapshots -------------------------------------------------------------------------------------------------- RELEASE: 2005.11.0203 DATE: 04 Jul 2007 DESCRIPTION: Medium Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Ability to check for objects existence - Added option "Explicitly Parse Database for Proper Script Creation Order". If this option is checked off "Include Dependencies" and "Manage Owners" options are disabled and internal ordering algorithm is used to establish objects order in sync script - Ability to filter objects by row checked state in the main grid - Filtering by wildcards replaced with filtering by regular expressions - Operations using wildcards replaced with operations using regular expressions (filtering, including/ excluding) Fixes: - Issue in Comparison Wizard with long delay when switching from Project step to another step in new project - Incorrect behavior of the "Ignore Comparison Options" option - Issue with some objects not displaying in main grid when filtering some diff codes. - Not picked "table from UDF" dependencies when UDF is used in a default constraint and not picked "table from bound rule" dependencies - Incorrect ALTER statements generated for owner/schema mapped objects in some cases - Not picked "table from user" dependencies when table owner is set explicitly (through ALTER AUTHORIZATION) - Incorrect summaries generated for permission revokes - Incorrect processing of lower compatibility level (80 and 70) dbs under MSSQL2005 when compared with 90 compatibility level ones - Incorrect "user without login" processing - Incorrect extended properties processing for "on queue" event notifications - Incorrect formatting in transaction handling blocks - Incorrect ordering of queues which depend on stored procedures - Incorrect script for table recreating when owners/schema mapping is used - Exception when syncing table for cases when source table has no bound defaults and destination table has one default bound to multiply columns - Incorrect processing of script-based objects (like stored procedures, user defined functions, etc.) for cases when object script contains "-" character in some combinations with other characterss and when "Ignore Comments" option is ON - Exception "Item has already been added. Key in dictionary: 'FK_NAME' Key being added: 'FK_NAME'" when loading metadata - Issue with loading filegroups for fulltext catalogs - Incorrect processing of single-line comments in script-based objects (like stored procedures, user defined functions, etc.) when "Ignore Comments" option is ON - Incorrect synchronizing of foreign keys in some cases - Minor UI fixes - Issue with bad button positioning in wizards on 120DPI or higher resolution displays - Issue with incorrect registration info shown in activation form during evaluation -------------------------------------------------------------------------------------------------- RELEASE: 2005.10.0198 DATE: 01 Mar 2007 DESCRIPTION: Major Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Support for Aggregates, CLR Functions, CLR Procedures, CLR Triggers, Event Notifications and Remote Service Bindings - Snapshot info is shown when choosing snapshot - Dependencies list is shown - Summaries/Warning List representation improved - Detailed HTML report (with showing differences in scripts) - Summary HTML report (with scripts) - Ignore System Objects option - Powerfull difference filter - Changed options Ignore Secondary Index Attribute now it ignores PAD_INDEX, IGNORE_DUP_KEY, STATISTICS_NORECOMPUTE properties of indexes only - Ignore FILLFACTOR Attribute option - Ignores FILLFACTOR property of indexes, primary keys and unique constraints - Ignore ASC/DESC for index columns option - Ignores sort order ofindex columns - Ignore LOCK properties of indexes option - Ignores index PAGE LOCK and ROW LOCK properties when comparing and synchronizing databases - Ignore NOT FOR REPLICATION attribute of constraints option - Ignores NOT FOR REPLICATION argument on constraints - Ignore WITH NOCHECK option - Ignores the WITH NOCHECK argument on constraints. Note that foreign keys or constraints that are disabled, are not ignored - Ignore Foreign Key actions for ON DELETE / ON UPDATE option - Ignores ON DELETE and ON UDATE actions defined on foreign keys - Ignore identity seed and increment values option - For identity properties, ignores only the identity seed and increment values when comparing databases. Note that they will not be ignored when the databases are synchronized - Ignore identity property on columns option - Ignores the identity property on columns when comparing databases. Note that the identity property will not be ignored when databases are synchronized - Ignore replication triggers option - Ignores replication triggers when comparing and synchronizing databases. - Ignore DML trigger order option - DML triggers can have an order specified, such as FIRST INSERT, LAST UPDATE, and so on. Select this option to ignore the trigger order for DML triggers when comparing and synchronizing databases. Note that the DDL trigger order is not affected - Disable DDL triggers during synchronization option - DDL triggers can cause problems when you run the synchronization. Select this option to disable any enabled DDL triggers before synchronizing the databases, and re-enable those triggers following synchronization - Object type filters in an context menu of grids - Treat list as Exclude option for compare - Treat list as Exclude option for synchronize - Ability to change all GUI settings through CLI - Ability to run synchronization scripts in CLI - Ability to assign preprocessing and postprocessing scripts for synchronization - Ability to choose columns to show in the main grids - Automatically check for updates on Application Start-up option - Suppress Wizard on Application Start-up option - Show default owner/schema qualification in common interface labels option - Minor UI enchancements Fixes: - Optimized reloading of objects - Issue with script checking Foreign Keys for existance - Issue with disappearing of script level difference viewer in the main window - Issue with persisting backup options in Synchronization Wizard - Application doesn't detect that object depends on user from ALTER AUTHORIZATION statement - Wrong dependencies handling for cases when DEFAULT statement is having $ (dollar sign) in the name and/or body - Wrong ordering for stored procedures used in queues - Issue with growing size of windows - Issue with a duplicate warning when using with non-dbo login - Issue with persisting argument string for Other editor -------------------------------------------------------------------------------------------------- RELEASE: 2005.07.0191 DATE: 15 Sep 2006 DESCRIPTION: Medium Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added option "Ignore Comparison Options" to view DDLs in a external difference viewer - To improve ordering speed Stored procedures and Triggers are excluded from parsing for cases when "Include Dependent Objects" and "Manage Owners" options is OFF - For cases when there are no other checked objects in main grid except Stored procedures and Triggers parsing isn't performed to improve synchronization speed - Changed compatibility level of synchronization scripts: now for all target databases on SQL Server 2005 used 90-compatibility level - Changed Progress Info dialog behavior - Decoding bitwise constants in CLI - Ability to specify project in command line for GUI command line execution (like "ApexSQLDiff.exe MyProject.axds") - Changed synchronization script header to specify script mode (for schema or data synchronization) Fixes: - Exception when reloading tables columns metadata for SQL Server 2000 databases in some cases - Exception when reloading default constraints metadata for SQL Server 2000 databases in some cases - Exception when reloading indexes keys metadata for SQL Server 2000 databases in some cases - ANSI_PADDING option was not set for indexed views - Issues with matching roles between 80 and 90-compatible databases - Exception when connecting with login which belongs to user who is not member of db_owner role in some cases - Occasional exception thrown when loading data types metadata from 80-compatible database on SQL Server 2005 - Occasional exception thrown when loading tables metadata from 80-compatible database on SQL Server 2005 - Ignore comments option don't work for cases when comment contains single quote character ' - Issue with enabling/disabling triggers when recreating tables - Occasional null reference exception thrown at db parsing stage (“ParseItem” one) - Occasional null reference exception thrown at db parsing stage (“GlobalFindReferencedObject” one) - Snapshots was not parsed when generating synchronization script - Error when using snapshoths while SQL server is stopped - Generated script has zero length when using databases or snapshots from MS SQL Server 2000 - Using projects with databases lead to error with “ExecuteReader” - Crash when saving snapshot to an existed read-only file - Exception when closing Comparison Wizard - VB script output option was removed - Could not compare and synchronize two snapshots from CLI - Script fails during backing up for databases with certain characters in name - ScriptShower was displaying some errors in a message box instead of the script execution result window - Checks on objects in main grid disappearing when loading project in some cases -------------------------------------------------------------------------------------------------- RELEASE: 2005.06.0181 DATE: 07 Jun 2006 DESCRIPTION: Minor Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Excluded SProcs and Triggers from parsing target database to improve performance for DROP-type scanning and dependency ordering Fixes: - Script fails during backing up for databases with some characters in name - Object Filters for SQL Server 2005 objects are available after editing a project with two SQL Server 2000 databases - An individual object created via a synchronization with known (mapped) differences in owner/schema between original and new object disappears from the object grid after executing script and auto-recomparing when filtering is being applied to the specific object type - Incorrect project processing in CLI - Sometimes after changing a project's db selections, the newly-selected db's objects do not appear in the object list - Refresh clears checks on objects in main grid - Snapshots have no default extension - Filtering by Default through Difference Filter Toolbar doesn't work - Object types doesn't persisted in project - Project folder doesn't persisted between session - User defined type synced with wrong size for SQL Server 2005 - Not all extended properties are loaded for constraints for SQL 2000 Server - Extra extended properties are scripted for schemas when using objects filter in SQL 2005 server - Permissons on columns are not loaded from SQL server 2005 snapshots - Bound defaults and rules for UDT are not loaded from snapshot - When syncing from 90-compatible database to 80-compatible one disabled triggers are scripted in wrong syntax - Extra objects included to sync script when Include dependent objects option is ON - Exception thrown when parsing database with objects which has extended properties in different encodings - Exception thrown when viewing script for FK which has "{*}" in name - Issues with synchronizing foreign keys referencing to unique constraints - Issues with matching user defined data types between 80 and 90-compatible databases - Columns with difference in PERSISTED state are not synced - NOCHECK constraint option scripted with syntax error in some cases - False positive in script-based objects comparison for some cases - Some new SQL 2005 objects are synced when syncing from 90-compatible database to 80-compatible - Exception thrown when pressing Ctrl+A followed by space in main grid - Several minor UI issues - Extra whitespaces at the begining of textual object bodies with owners management used - Not picked/improperly picked synonym, partition schemes, message types and xml schema collections dependencies - Some issues with objects ordering for views, tables and user defined data types - Exception thrown during parsing for user defined data types with same names but different schemas - Some issues with context sensitivity for current schema resulted in improperly picked/not picked dependencies - Improperly picked depedencies on full-text catalogs for tables having a full-text indexed column - Exception thrown in parsing views that use their own names as aliases within sub-selects defining views themselves - Not picked dependencies on bound defaults and rules for user types under MSSQL2K - Exception thrown for textual objects with $ sign used in variable names -------------------------------------------------------------------------------------------------- RELEASE: 2005.05.0177 DATE: 28 Apr 2006 DESCRIPTION: Major Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Exception when importing owner mapping profile into project with snapshots - Error when using project with spashots in CLI - Bug with disappearing toolbars in structure mode - VB script couldn't be executed in Script Editor - Checks on object disappearing when loading project - Bug when objects dissappeared from main grid in some situations - Exception when open project for databases which has non-standard characters in user names - Exception when scripting extended properties with values, which has different encodings - When adding new column with default constraints were scripted twice - Extended properties for foreign keys scripted before foreign key definitions - Issue with script fail when altering script-based objects and Ignore Case in Names - Issues with missing comments for some actions - Issues with backing up scripts for SQL server 2000 when using non-standard backup location - Exception thrown when generating script in structure mode for adding columns in some cases - Minor issues with cross-server comparison and syncing - Exception thrown for dbs having views equal in names but different in owners/schemas - Exception thrown in data mode for dbs having tables based on CLR data types - Columns of sql_variant data type may be totally ignored from data comparison - Both tables and views are always compared in data mode in spite of user settings -------------------------------------------------------------------------------------------------- RELEASE: 2005.04.0175 DATE: 12 Apr 2006 DESCRIPTION: Medium Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Stack Empty exception thrown in structure mode at db parsing stage - NotImplementedException thrown in structure mode at db parsing stage - Exception thrown for dbs having $ sign in object names in structure mode at db parsing stage - Exception thrown for some of MSSQL2K dbs in data mode - Exception thrown for some of MSSQL7 dbs in data mode - Exception thrown for servers and databases with some characters in names - Exception thrown for snapshots generated with previous versions - Issues with some extended properties - Several minor UI problems -------------------------------------------------------------------------------------------------- RELEASE: 2005.03.0174 DATE: 07 Apr 2006 DESCRIPTION: Major Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Bug with ignore options set in data mode - Bug with exception on program's start - Bug with simultaneously generating script - Bug with using non trusted connections in CLI - Several minor UI problems - Issues with extended properties that causes exception - Issues with snapshots created and loaded in computers with different local settings - Application throws exception in some cases of permissions comparison for views or tables - Application throws exception for numbered stored procedures with parameters - Issue with triggers disabled state syncing -------------------------------------------------------------------------------------------------- RELEASE: 2005.02.0173 DATE: 28 Mar 2006 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added support for columns of sql_variant data type to data mode Fixes: - Fixed bug with case sensitive CLI - Fixed default toolbar positioning on first start - Fixed several minor UI problems - Fixed bug with triggers disabled state comparison - Fixed bug in permissions comparison methods - Fixed minor bugs in metadata retrieving methods - Fixed bug in assemblies scripting methods - Fixed bug with exception when connecting to remote database when user has restricted access to server -------------------------------------------------------------------------------------------------- RELEASE: 2005.01.0172 DATE: 21 Mar 2006 DESCRIPTION: Major Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Project support - Project wizards for data/structure mode - List of recent projects - Filtering objects for compare by patterns - Filtering columns for compare (only in data mode) - Support conditions for compare (only in data mode) - Selecting individual objects for compare - Support Owners Mapping for compare (import/export owners mappings) - Differences filter in data mode - Object Filter in data mode - Row-level filter in main window's grids - Printing selected rows - Extended properties support - Role members support - Statistics scripting support for tables and views - Backup/Restore support - Warnings and summary support for structure mode scripting - Optional PRINTs and comments in synchronization scripts - Multiple users mapping - Filtering objects by owner - In data mode viewing differences is available in main window now - In structure mode viewing differences is available in main window now - Added support for MS SQL Server 2005. The following objects are supported: Schema (supported difference types: Extended Properties, Owner), Xml Schema Collection (supported difference types: Extended Properties, Owner, Definition), Fulltext Catalog (supported difference types: Extended Properties, Owner, Path, File Group, Default, Accent Sensitivity), Synonym (supported difference types: Extended Properties, Owner, Base Object), Credential (supported difference types: Extended Properties, Owner, Identity), DDL Trigger (supported difference types: Extended Properties, Owner), Partition Function (supported difference types: Extended Properties, Owner, Boundary Values, Parameter Type, Range), Partition Scheme (supported difference types: Extended Properties, Owner, Partition Function, File Groups), Service (supported difference types: Extended Properties, Owner, Queue, Contracts), Route (supported difference types: Extended Properties, Owner, Remote Service, Broker Instance, Lifetime, Address, Mirror Address), Queue (supported difference types: Extended Properties, Owner, Activation, Retention, Status), Message Type (supported difference types: Extended Properties, Owner, Validation, Xml Schema Collection), Contract (supported difference types: Extended Properties, Owner, Message Types), Assembly (supported difference types: Extended Properties, Owner, CLR Name, Manifest File, Permission Set), DDL Trigger (supported difference types: Extended Properties, Owner, Body, ANSI), Event Notification (supported difference types: Extended Properties, Owner, Parent, Service, Broker Instance, Fan In, Event Types) - Added support for defaults and rules bound to UDT both for SQL 2000 and SQL 2005 - Added support for full text indexes and xml indexes - Added support for CLR data types - Added support for xml type columns and new syntax for max sized text and binary columns - Added support for new syntax of objects supported in SQL 2000 like indexes, foreign keys, etc. - Added ability to compare data from columns of compatible data types - Added an option Ignore Case In Names to data comparison wizard - Improved data script formatting - Improved constraints and indexes processing in data mode - Added support for xml data type to data mode - Added object filters for new MS SQL Server 2005 object types to structure mode - Added shortcuts for several commands: Ctrl-W - Show Project Wizard Ctrl-N - New Project Ctrl-O - Open Project Ctrl-E - Edit Project Ctrl-S - Save Project Ctrl-Shift-S - Save Project as Ctrl-T - Create Snapshot Ctrl-Shift-P - Print Preview Ctrl-P - Print Ctrl-H - HTML Report Ctrl-X - XML Report F5 - Refresh F6 - Synchronize - Added hotkeys for numerous of objects in Comparison and Synchronization wizards Fixes: - When altering column which has related PK, Default or Check constraint script does not contain code to synchronize related constraints - App generates wrong script for cases when all non-computed columns should be recreated using DROP COLUMN/CREATE COLUMN statements - Added option SET ARITHABORT to support indexes for computed columns and views - Fixed bug with incorrect processing of triggers and constraints for views in data mode - Fixed bug with unworkable Disable Check Constraints option in data mode - Fixed bug with incorrect processing of batching options set in data mode - Fixed multiple minor GUI defects Changes: - There is no "Options Profile" anymore - replaced by the "Project" paradigm - Switch "options_profile" was removed - Single dialog for snapshot creating instead of two dialogs for creating master/target snapshots - Improved T-SQL script formatting - CLI Help message was changed according to standard - Columns Row Count, Identical, Different, Additional, Missing are not sizable in the main grid in Data Mode - Order of object types in HTML reports - Diff Types are shown for all differences types in HTML reports in structure mode - Theme support improved - Structure mode selection profile was changed -------------------------------------------------------------------------------------------------- RELEASE: 2.48.167 DATE: 31 Jan 2006 DESCRIPTION: Medium Fix Release -------------------------------------------------------------------------------------------------- Fixes: - "Server doesn't exist..." exception in reponse to unsuccessful attempt to connect to one of recently used servers - "Missing master object" exception when synchronizing table's indexed sub-objects (PKs, indexes and unique constraints) - Not shown user defined type columns' nullabilities in a difference viewer - Empty synchronization script for columns with equal native and user defined types - Incorrectness in removing comments from textual objects that refer to objects with ' in names - Incorrect usage examples spooled in console mode help output -------------------------------------------------------------------------------------------------- RELEASE: 2.47.162 DATE: 18 Nov 2005 DESCRIPTION: Minor Fix Release -------------------------------------------------------------------------------------------------- Fixes: - During first start of the application all buttons on toolbars are unchecked -------------------------------------------------------------------------------------------------- RELEASE: 2.46.161 DATE: 15 Nov 2005 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Auto updater allows per file update (i.e. downloading and updating changed files only) Fixes: - Wrong data comparison for numeric keys - Filtering by "Column" Diff Code doesn’t work for Views - Objects with differences not from a Diff Codes stay hidden on any filtering operation - Toolbar settings not saved between starts of the app Changes: - Auto updater is enabled -------------------------------------------------------------------------------------------------- RELEASE: 2.45.160 DATE: 01 Nov 2005 DESCRIPTION: Medium Fix Release -------------------------------------------------------------------------------------------------- Fixes: - First 3 rows are invisible in SQLScript Window - DateTime fields doesn't show milliseconds - Script result has the syntax highlighting - Identity columns were scripted incorrectly in data mode - Wrong links in structure differencies html reports when "Differnecies by Object" option is checked out Changes: - Changed log file name for errors in CLI to satisfy ApexSql CLI standards - Auto-Updater temporarily disabled -------------------------------------------------------------------------------------------------- RELEASE: 2.44.157 DATE: 04 Oct 2005 DESCRIPTION: Major Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Under some circumstances (for example, different naming conventions used for database objects) tables with equal names and structures may be shown as incomparable. - Operations like "Select All", "Check All", "Uncheck All" don’t throw a mousepointer = vbhourglass. - Syntax highlighting is wrong. - Hitting 'enter' on a line doesn’t open up the comparison viewer. - Hitting 'escape' in the "Find" or "Replace" dialogs in the Batch Synchronizing window causes not only the current dialog window to disappear, but the entire batch synchronization window disappears as well - Check boxed column can be sized. - Process cannot access the file “servers.lst" because it is being used by another process - Values of type "uniqueidentifier" were scripted incorrectly in data mode Changes: - System databases are now shown in database picklists - Alternate rows coloring/shading - contrast increased - Connecting to MSSQL2005 instances is restricted -------------------------------------------------------------------------------------------------- RELEASE: 2.43.156 DATE: 14 Sep 2005 DESCRIPTION: Minor Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Supporting .NET - Separated executable files for CLI and GUI mode - Supporting Unicode in CLI - Supporting snapshots in CLI Fixes: - Outputted help information about /object_types switch is insufficient - Tab order in Login window is incorrect - In CLI all switches are case-sensitive - In CLI switches help representation violates standards - In CLI aborting db connection process results in a system error message - Tab order is incorrect at the Comparison Other, Sync Options, Output Options, Reports, Objects To Compare, Configuration pages in the app options. - Tabs in the options window are named using different conventions - Problems with accelerators in the Login window - In command line mode 2 standard switches aren't implemented - Closing console window with swicthes help by pressing [x] button leads to a system error message - Incorrect behavior after choosing print command when there is no installed printers - Wrong case and differencies in some hints and labels of the main form Changes: - Command line support and switches are changed for conforming ApexSQL CLI standard -------------------------------------------------------------------------------------------------- RELEASE: 2.42.151 DATE: 14 Feb 2005 DESCRIPTION: Medium Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Snapshots and offline comparison - Html|xml reporting in command line mode - Console output in command line mode with supporting stdout and stderr streaming - HTML reports show a dialog for customization the content. - All statements in sync script are commented. - Applying selection and options profiles in GUI mode. New submenus and buttons for saving/opening profiles - Implementing bitwise CLI switch for filtering classes of objects. - Filtering objects by "include" switch for loading. Objects will be loaded (and compared) only enlisted in the profiles - Expanded info shown in HTML-reports Fixes: - "Invalid object name 'dbo.XXXX'." error message at "clsMetaData-InExecuting" - "Object variable or With block variable not set" at "clsMatchedColumns-DifferInNames" or "clsMatchedColumns-DifferInTypedefs" - The internal scripts editor can be splitted in 2 or 4 parts - Slightly different (in blanks) SPs are still different after synchronizing - Edit fields are aligned differently in some places in the app options - If incorrect credentials were entered in the login window 3 warning messages are shown - In the app options at the Comparison and Sync tabs some checkbox captions are plural and some are singular - Not-working Stop subitem in the Run menu - Some popup menu items are named using mixed case - "Ignore whitespaces" option doesn't work as expected if the difference is in just one whitespace - Sometimes when syncing data Diff doesn't show "Disabling all triggers" message (from a sync script) - Synchronizing large amount of data through VBScript leads to an error - Structure Differences By Objects is incorrect in a HTML Report - Computed columns are synced incorrectly - When syncing constraints the app unnecessarily drops and recreates a PK - Not null columns with bounded defaults are added incorrectly into a target table - In the Data Comparison mode Name column is shrinked to a minimum after comparison was executed - Diff doubles "Sync script for..." print statement when syncing UDFs, sps, views - The internal editor window can be splitted in 4 parts - Comparison Options section in a HTML report is incorrect - Comparing data in dbs with equal data in all tables through command line leads to an error - Sorting of data grid is not restored after refreshing the grid - In some cases ROWGUIDCOL column property isn't synchronized by the app - In the Data Comparison mode hints aren't shown for some outlook bar toolbuttons when mouse pointer is over them - Selecting "View Differences" popup menu item for group header results in an error - Comparison of a db in compatibility mode 70 doesn't work properly - XP manifest problems on the logon form - In the Data mode Diff shows an error message after several comparisons - In sync scripts permissions comments are placed after GRANT statements Changes: - All "Synchronize*" settings are removed that to avoid non-coordinations with "Ignore*" options - Changed behaviors of Ignore options. Now the script is as most full as possible. So Ignore options mean for comparisons but have the minimal influence for the sync scripts. CompareIt shows the script closestly to comparisons results as it is possible - The command line key "script_file" has been renamed to "output_file" because of new reports output. The key "script_file" is obsolete, but still supported for backward compatibility - ASC|DESC attributes of Indexes and CASCADE attribute are inputed to IgnoreSecondaryAttributes option - SQL-2000 features are not scripted (excluded) if the target database is 7.0 compatible to avoid the appropriate errors. It means for "collation", "asc|desc" and "cascade" attributes - Each table in data comparison mode gets its own individual disabling constraints/triggers instead of global disabling before - Command line support and switches are changed for conforming ApexSQL CLI standard - Options profile is expanded for storing/accepting HTML-reports options -------------------------------------------------------------------------------------------------- RELEASE: 2.41.146 DATE: 06 Dec 2004 DESCRIPTION: Medium Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Performance improvement. - Improved errors handlings in VBScript output - New feature: detecting differences in views' columns - Smooth processing the situation when the connection to a SQL-server is lost. The user gets a friendly message with invitation to reconnect again. After reconnecting the current process continues to execute - Smooth processing the situation when the user has limited privilegies (is not a member of "db_owner" role). The user gets a friendly warning that some secondary operations may be failed with the appropriate errors messages - Applying errors handling for data synchronization sql-scripts (useful when option "Delimited with GO" is used). - Friendly message "Completed successfully" in VBScript output if the script has been executed with the success. Before it was silently. - Message "All actions has been canceled." in data synchronization script's execution output when an error happend that to know that all disabled constraints has been enabled back and data changes have been rollbacked Fixes: - Error message "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression." at "shclSQLError-GetSeverity" in some stuations - Error message "Sunscript out of range" at "cmdRegister_Click" (the form "About") - Duplicated "BEGIN TRAN" when synchronization is through "Synchronize this ..." submenu and errors handling is ON - Error message "Invalid use of Null" at clsMetaDataEngine-FillNode in some stuations - Class of error messages "Object with id=..... is not found in the meta-data storage" in different places, in most at "clsMetaDataEngine-CalcSequences" - Error message "Object variable or With block variable not set" at "basCompare_STRUCTURES-ComparingObjectsProcess" in some stuations in command line mode - Error logs are formed in command line mode instead of building the correct sync script if profiles files are applied in some situations. - Incorrect showing FK scripts in CompareIt when they are disabled from comparing and synchronizing - Some problem with "Ignore UDTs option" - Pressing Esc button doesn't close Data Differences window - Objects names containing quotas ( " ) generate errors messages - In Data Comparison mode Stop button doesn't work. I.e. it doesn't abort comparison process - UDF/procedures/views may still differ in blanks at the beginning or at the end of the scripts after synchronizing - In Data Comparison mode Diff incorrectly syncs text fields if they contain special chars (char(10), char(13)) - If a connection failure happens (e.g. SQL Server Service stops or network connection brakes down) while Diff is active, it becomes inoperative. E.g. after MSSQL was stoped and restarted (during the app is active) Diff shows errors messages in a loop (in response to Compare button hit) - Diff applies difference codes incorrectly. E.g. after two tables differ in columns and FKs have been compared and leaved Columns Differences toolbutton checked only, Diff still hides these tables - Structures grid contains old list after choosing mode to data, changing databases and reverting backward to the structure mode Changes: - Selection profile file for command line comparing has changed format. Old files are ignored without any errors. Please, create new one - Strings values of users data have the view '...'+CHAR(10)+'....' and '...'+CHAR(13)+'....' in synchronization scripts if the appropriate single char is met inside the string - ANSI setting "QUOTE_IDENTIFIER" is removed from tables scripts because for tables this setting is stored always ON independetly on the current session setting during creating tables -------------------------------------------------------------------------------------------------- RELEASE: 2.40.144 DATE: 18 Nov 2004 DESCRIPTION: Medium Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Ctrl-A keys combination selects/deselects all rows in the grids - Spacebar pressing checks/unchecks selected rows in the grids - New option - Ignore Case in Names - New option - Match/Ignore/Map owners - Set of new options for synchronizing, allowing exclude some things and details from synchronization - Considerable speed improvements in the comparison process. Fixes: - Missing objects in the list in Data Comparison mode after performing several actions with an informative errors message. - "Type incompatible" error at frmMain-grxData_MouseDown - VBScript output - An error about missing "End sub" - VBScript output - Superfluous line "--Batch ..." in objects' bodies after executing the script - "Subscript out of range" error at shfrAbout-cmdRegister_Click - NOT NULL instead of NULL in some altered tables - Computed column in the list of INSERT statement when recreating tables - The application reports differences in equal tables if some columns differ with internal (system) "colid" values - Error message "Login failed" instead of friendly message when the login or password is incorrect - In some cases when comparing tables' structures Diff places default constraints in incorrect order - Bunch of error messages in Structure Comparison mode after comparing two slightly different dbs and pressing Equal button at Difference Codes toolbar to hide equal objects - When dbs to compare are form different servers Diff incorrectly fills sync script's header. I.e. it always points first db's server as FROM and second db's server as INTO (in both sync directions - from Master to Target and from Target to Master) but it correctly points dbs' names - Bunch of error messages in Data Comparison mode if a column's name contains a comma - Diff incorrectly syncs calculated fileds in Data Comparison mode. When I try to sync data in two similar tables with calculated fields Diff tries to insert data in that fields - The header of sync script after choosing the menu "Sinchronize This Object" contained the list of all checked objects instead of one selected object. - Possibility to input incorrect chars to text boxes when only integer values are expected - "Key not found" errors message sometimes in Structure Comparison mode - Not working errors handling in Data Comparison mode if sync script is divided into several batches through "Delimit with GO" option and "Error handling" option is set to ON - Hidden (by filter) checked objects are on the sync script - The state of checked objects in the grid doesn't restore after comparison - ANSI button at the Difference Codes toolbar doesn't work properly - Triggers button at the Difference Codes toolbar is unuseful now because currently Diff compares triggers as different objects only - ANSI checkbox at the Difference Codes grid is unuseful for defaults and checks now because currently Diff doesn't process ANSI options for these objects. - Diff incorrectly processes UDT's nullability - Diff incorrectly processes differences in UDFs' WITH SCHEMABINDING parameters Changes: - Misspelling "Syncrhonize" corrected to "Synchronize" - Appended icon for "Synchronize" menu item - Changed "group" and "ungroup" buttons to one togle button - Reformated options form for better viewing -------------------------------------------------------------------------------------------------- RELEASE: 2.39.140 DATE: 20 Oct 2004 DESCRIPTION: Major Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - New option "Ignore UDDT" allows to ingore/not ignore Users Defined DataTypes while comparing/synchronizing tables - New option "Ignore Foreign Keys" allows to ignore/not ignore Foreign Keys while comparing/synchronizing tables - New option "Ignore Unique Constraints" allows to ignore/not ignore Unique Constraints while comparing/synchronizing tables - New option "Ignore Primary Key" allows to ignore/not ignore Primary Keys while comparing/synchronizing tables - New option "Ignore File Groups" allows to ignore/not ignore filegroups (for tables' data and tables' blobs) while comparing/synchronizing tables. - New option "Ignore Secondary Attributes for indexes and constraints" allows to ignore/not ignore while comparing/synchronizing - New option "Ignore Checks" allows to ignore/not ignore Check Constraints while comparing/synchronizing tables - New option "Ignore Defaults" allows to ignore/not ignore Default Constraints while comparing/synchronizing tables - New option "Ignore Bindings" allows to ignore/not ignore binding rules and defaults while comparing/synchronizing tables - New option "Degree Of Similarity (%)", allowing to set the degree of similarity columns' names for matching of renamed columns. A smart algorithm of indistict matching like SOUNDEX is applied. 100% - the names are equal (case insensitive), 0% - the names are fully different. Default value is 40% - speeding getting meta-data in 4 times and comparing in 2 times - VBScript output. New editor of the sync script in VBScript format with the possibility to execute the script directly from the application. - Too big scripts (more than 10Mb) are opened directly in Query Analizer independently on the application settings. The controls cannot accept too long scripts via OLE therefore opening such scripts in QA is better cases - New option "GO" after each rows for data sync scripts. The option allows to execute data synchronizing script not only in one batch as before, but in several batches. It lightens the run of big scripts - Fast navigation in the grids with pressing the first char of a searched object's name Fixes: - Error "... is not found in the meta-data storage" if the object's name has slash or backward slash - In Data Comparison mode Diff incorrectly scripts some tables - Databases lists contained databases dissallowed for the current user - Error "Cannot sort a row ..." in context "basCompare_DATA-CompareData" occurs while comparing data - Error "Item cannot be found in the collection..." occurs in Data Comparison mode when a compared table's column name ends with whitespace. - While a long time process (getting meta-data, comparing) the user can begin a new process by pressing a button with raising an error message. - When in some objects (e.g. sp) present string constants which contain '--' substrings (comment marks) and Ignore comments option is set to ON Diff incorrectly scripts such objects - Incorrect scripting application roles in Target database - This main menu item has incoorect caption "Reconnect to database" - Incorrectly showing Count Bar at starting application in Data Comparison mode - Incorrect appearance of message "At least one non-identical object..." while synchronizing a selected objects if there are not checked objects. - "Automatically show this dialog" didn't effect the automatically appearance of the dialog - If specified /output_format=vbs option is without specifying /script_file option in Diff command line, the file has incorrect ".sql" extension. - Long blobs gives a disagreeable visual effect in Data Differences Grid - "Type mismatch" in the function "GetMilliseconds" when some untypical regional settings - Equal master and target tables are shown as different if their foreign keys differ only by their orders - Log time hang during data comparing and synchronizing - The problem "out of memory" or "out of string space" if the script is huge. (This problem is weaken but is not eliminated at all) - Diff didn't recognize changes in permissions done by 3th-party tool until other changes, reconnect or restart of the application - Pressing "Stop" button didn't abort a long time operation - "Load tables" menu item is always disabled in Data comparison mode - Tab order in the login form is incorrect - "Ignore column order" option doesn't work properly - Error message "Explicit conversion from data type timestamp to nvarchar is not allowed." when the timestamp column is a member of the primary key - Missing "SET INDENTITY_INSERT" statements during ful recreating tables - Missing the step of copying data in some situations - Non-eglish message equal of english "No more results." if the current login is bound with a language different with english - Error message "Cannot alter column '....' because it is 'image'." - Some tables scripts contain constraint definitions of other tables Changes: - New setting "Limit rows in data" allowing to set the threshold of produced rows to avoid an instability if the resources are not enough for completing the step when different data are too much. The default value is 50000 rows - Options "Ignore *" effect now only for comparing process but not for produced scripts. It allows to not damage customers' objects. - If QA is not found in folders listed in PATH-variable, QA is loaded from the installation folder of the MSSQL2000-client. If QA is not found and there, so the friendly message appears: "Query Analizer executable file (isqlw.exe) is not found in the standard pathes. Please, expand PATH environment variable with the path to BINN folder of MSSQL client tools" instead of the error "File not found" before - ANSI settings are eliminated from scripts of Rules and Defaults because these objects ignore ansi-settings during their creation - The action of "Automatically Compare on database select" option is expanded on the meta-data getting process - Eliminated option "Ignore Timestamp" as useless. Timestamps are excluded always while comparing/synchronizing data - Connection timeout is expanded up to 2 minutes for very slow networks - If there are not matched columns during full-recreating tables mode so the appropriate PRINT statement will be in the sync-script instead of omitted statement of copying data - If option "Preserve Data" is OFF during full-recreating tables mode so the appropriate PRINT statement will be in the sync-script instead of omitted statement of copying data - Popup menu of the grids is disabled during long time operations -------------------------------------------------------------------------------------------------- RELEASE: 2.38.136 DATE: 24 Sep 2004 DESCRIPTION: Minor Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Defaults and Rules detect differences in ANSI-settings - Diff compares and synchronizes new class of sql-objects - application roles - Diff can create the produced synchronizing script as VBScript in command line mode. New optional command line key "/output_format=tsql|vbs". Default (omitted) is "/output_format=tsql" - Appending DEFAULT if an added column has "NOT NULL" property and doesn't have an appropriate synchronized DEFAULT Fixes: - Permissions - if object is compared with option to ignore permissions the permissions aren't scripted (if table is full drop and recreate) and are essentially dropped. - In Data Comparison Mode ALL row count fields should be extended. If row count is more than 100000 it is shown incompletely. (v2.34, September 1, 2004) - Errors during synchronizing indexes with altering indexed columns (v2.34, September 2, 2004) - Unexpected changes of checks objects in the grid during the second comaring (v2.34, September 8, 2004) - Diff doesn't show app roles in the main grid. (v2.34, September 9, 2004) - Refresh Target Databases List button doesn't work.(v2.35, September 11, 2004) - CompareIt didn't show ANSI options (v2.37, September 16, 2004) - When syncing two views Diff shows two mutual exclusive messages in an output window. (v2.37, September 21, 2004) - Diff doesn't show encrypted views in the main grid but shows encrypted sps. (v2.37, September 21, 2004) - When tables differ in filegroups Diff shows that they are different but doesn't show in what in the Diff Code grid (i.e. Filegroup checkbox is unchecked). (v2.37, September 21, 2004) - Diff generates an incorrect script when syncing two tables which differ in collations. (v2.37, September 21, 2004) - Controls allowed to be pressed during loading metadata process, the second pressing gave errors. (v2.37, September 21,2004) - When syncing permissions Diff doubles all GRANT statements. (v2.37, September 21, 2004) - Incorrect forming synchronizing script in command line mode. (v2.37, September 22, 2004) - If there are two objects with the same names but different types in compared dbs (e.g. view in a Master db and table in a Target db) Diff shows an error message while comparing them. (v2.37, September 23, 2004) - "Type mismatch" in shrDateFunctions-GetMilliseconds - "Subscript out of range" in frmODBCLogon-AvailableServers - "Invalid procedure call or argument" in shclSQLServerEnumerator-GetSQLServersArray - "Operation is not allowed when the object is closed" in clsMetaDataEngine-FillNode when a sql-server is 7.0 version Changes: - "Exclude system tables" option is removed as useless and problematic. Diff cannot synchronize system objects and data. Explanation: ALTER TABLE ... ALTER COLUMN ... statement doesn't allow to declare DEFAULT at all. Therefore the wish "Appending DEFAULT if a column changes its prop "NULL" to "NOT NULL" and doesn't have a DEFAULT" is impossible to be done. But similar problem is just in ALTER TABLE ... ADD ... NOT NULL. If such column doesn't have DEFAULT in master, so the application will append the appropriate DEFAULT (if possible) to the statement. For numeric types - 0, for string/date types - empty string, for binary types - 0x - "Include Data" option has been changed to more rightly text "Preserve Data" -------------------------------------------------------------------------------------------------- RELEASE: 2.37.135 DATE: 20 Sep 2004 DESCRIPTION: Major Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - No SQLDMO dependencies. The project doesn't have references to DMO. It allow to increase the performance of comparing and synchronizing and to eliminate the own problems of DMO such as "access violation" and "out of memory" errors - More detailed and smart algorithm of synchronizing tables and tables' subobjects (columns, constraints, indexes). Less cases when full recreating table is required. - Permissions are restored on the target database after recreating objects if IgnorePermissions option is true. Before the permissions were lost during such synchronizations - Application shows differences in Primary Key of tables and synchronize such differences (separatedly if possible). - Application shows differences in Unique constraints and synchronize such differences (separatedly if possible). - Application shows differences in Filegroups of tables and synchronize such differences (with recreating the table). - Application shows differences in Bound Rules and Bound Defaults of tables and synchronize such differences (separatedly if possible). - Application shows differences in Base Type, Size ( = Length, Precission), Scale, Nullable properties of user defined datatypes and synchronize such differences (with recreating datatype). - Application detect differences in IgnoreDupKey, NoreComputeStats, PadIndex, With NoCheck, Not For Replication, Filegroups properties of constraints and indexes and and synchronize such differences (with recreating the subobject) - Application detect differences in ASC - DESC orders of indexed columns and synchronize such differences (with recreating the subobject). - Cardinally lowered the count of problems with dropping subobjects of tables. Now all dropped constraints are dropped only existing in the moment of applying synch. script. The synch script detects existing constraints and drops only them, not those were during building the script Fixes: - One error "ActiveX component can't create object" - Overflow in shfrSQLScriptShower-UpdateLineCount -------------------------------------------------------------------------------------------------- RELEASE: 2.36.130 DATE: 03 Sep 2004 DESCRIPTION: Minor fix -------------------------------------------------------------------------------------------------- Fixes: - "This key is already associated with an element of this collection" or unexpected collapse of the application if a compared database contains groups sp. -------------------------------------------------------------------------------------------------- RELEASE: 2.35.129 DATE: 9 Sep 2004 DESCRIPTION: Major Fix Release -------------------------------------------------------------------------------------------------- Fixes: - When using command line in unregistered version Diff shows the Software Activation Form prior to an execution - Internal script difference viewer formes errors "Subscript out of range", "Object doesn't contain such property or method" during showing some scripts. - After pressing Cancel button in Software Activation Form window Diff still shows MSSQL Server Login window - Several pressing Reset button in MSSQL Server Login window formes several appearances of the same MSSQL Servers in the target sql-servers list (as many as the count of pressing Reset button + 1) - Switching to the Data Comparison Mode in the main window Object Count Bar hides but main menu doesn't refresh to reflect changes - During launching Diff the first time after installation the main menu doesn't contain a checked theme - Incorrect Icon on the button "Target" in the form of showing differences in data - Diff doesn't process user sps with dt_-prefixes - Incorrect message "Script Operation With Errors" after execution a script without errors but with inform messages - Incorrect results of comparing encrypted objects. They were marked always as different - Some objects differ after synchronizations with count of empty lines at the beginning and the end - Incorrect message box after selecting XML Structure Report: and then pressing Cancel on the dialog window - After selecting "Script Master (Target) Object" Run button is enabled in Script Viewer. Pressing on the button generates an error - In Data Comparison Mode row count fields were small and hided the values if they are more than 99999 - Permissions item in the Diff Code Grid and Permissions button at the Difference Codes toolbar differ in names - If database is in compatibility mode 65 comparing this database structure through Diff closes the application unexpectedly.(v2.34, August 22, 2004) (Databases with compatible level 65 are removed from databases lists because the application is not compatible with MSSQL6.5 and therefore with the appropriate compatible level) - Users and roles are synchronized inside transaction context and it gives errors because MSSQL doesn't allow to handle roles and users inside a transaction context. - Incorrect label "Intial trial period ..." in activation form is corrected - All scripts will have also "SET IMPLICIT_TRANSACTIONS OFF" setting in the headers because if a customer's sql-server will have global setting IMPLICIT_TRANSACTIONS set to ON, so it will damage errors handling in synchronization scripts and also give errors during synchronizing users and roles - Ignoring comments and blanks in comparing and synchronizing processes are united. Before those applyings settings were separated and it gave incorrect showing differences in objects after synchronization -------------------------------------------------------------------------------------------------- RELEASE 2.34.128 DATE: 19 Aug 2004 DESCRIPTION: Major Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Problem of scripting in command line mode if a profile is applied - Comparison and synchronizing mechanisms don't correspond in columns sort orders of indexes - Comparison and synchronizing mechanisms don't correspond in IGNORE_DUP_KEY and STATISTICS_NORECOMPUTE properties of indexes - Comparison and synchronizing mechanisms don't correspond in filegroups of tables and indexes - Comparison and synchronizing mechanisms don't correspond in bindings columns - (diff-2.32-26-high) Rules were not shown in the grid if they were in both db, had the identical name but differed in bodies - If you change Master or Target server, databases list doesn't refresh - CompareIt doesn't free cache. - If you press "Purchase FAQs" button, the word "FAQs" carries over to the next line - If you don't select any databases in Data Comparison mode and press "Help" button on the outlook bar, you see message "Please select 2 databases:" instead of the help file - Multiple "Type mismatch" - "Error.log" was not created when an error happend in command line mode - "Permissions" property was erroneously shown in the grid for UDDT -------------------------------------------------------------------------------------------------- RELEASE: 2.33.127 DATE: 04 Aug 2004 DESCRIPTION: This version posted to reset Activation Only -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- RELEASE: 2.32.126 DATE: 17 Jul 2004 DESCRIPTION: Minor Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Fixed a bug with Timestamp fields as reported on forum - Significantly improved data comparison algorithm to eliminate occaisonal cases of "out of memory" - Fixed visible bug of incorrect showing image and binary columns inside the form of showing differences in data. - Added new Grigsoft Compare it! 5.5 See http://www.grigsoft.com/wincmp3new.htm for updates -------------------------------------------------------------------------------------------------- RELEASE: 2.31.125 DATE: 04 Jul 2004 DESCRIPTION: Major Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Command line supported added for Data comparison. Command line support already existed for structure comparison - Improved mechanism of comparing data in tables without a common unique key - Supporting of Encrypted Objects - the application will now compare and synchronize encrypted objects (fully activated version only) Fixes: - Status bar wasn't being cleared after new server login - When no tables are comparable message is given to alert user "Due to structure differences there are no tables available that can be processed for data comparison between these databases" - Problem with SQL 7 databases - 126 is not a valid style number when converting from datetime to a character string. - Improved mechanism of comparing data in tables without a common unique key. Fixed visible problem: equal data were in both tabs "master_only" and "target_only". - The produced script of data comparing doesn't have "GO", it has allowed to use the native good-working errors handling with the help of setting "XACT_ABORT" - After pressing DEFAULT button in Option form during data mode comparing the application switched over to structure mode comparing without the appropriate switching over controls - Controls showed the data mode but the comparing process began for structures - 2 different bugs with similar appearance: In data mode comparing some not-equal and equal records with strings data might be innaccurrate - In some cases where data differed only in milliseconds the difference grid didn't visually display different records so it seemed out of sync with comparison results. Now milliseconds are shown - When a script was executed by Diff so if there were errors, the output list contained "Success" at the end anyway. Now if errors happen during executing a script the output panel has the line "Script Operation With Errors" - "Object or with variable is not set" on closing the form of showing sql-scripts - If dates differ only in milliseconds, the form of showing differences showed equal data and UPDATE-statements wasn't formed - "Invalid use of Null" during data comparing - The message "SELECT 2 databases first..." after re-connect although 2 databases are chosen - Addressed one reason of the problem "out of memory". - Fixed visible problem: equal data were in both tabs "master_only" and "target_only" if table has no Unique Key -------------------------------------------------------------------------------------------------- RELEASE: 2.30.123 DATE: 23 Jun 2004 DESCRIPTION: Minor Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Errors tickets do have much more info helping to diagnose the reasons of the problems. - The application checks the writeability of the current folder before execution. If the folder is read-only, the application shows the message "The application's folder is read-only. Please, rerun the application from a writeable folder." and finishes - Added ability to show/hide Object Count Bar separate from Status Bar - Automatically hide Object Count Bar in Data Mode Fixes: - frmOptions-Reset Invalid control array index - Fixed floating bug with overlapped memory with different appearances - Fixed bug "Invalid control array index" at frmOption-Reset - "For loop not initialized" during data comparing - Fixed set of bugs linked with binary sort order in a database. The most often appearance of such bugs was missing some objects in target objects list. - "out of stack" at showing incomparable tables - A table's script might contain a redundant comma if the table doesn't have any column with colid=1. (Such table is being after dropping the first column via an ALTER TABLE statement) - Print statements didn't print the messages on the script results panel after script execute - Equal data of image fields were counted as different - In synchronization script dropping columns would FAIL if the columns did have default constraints. - The cache is freed before comparing if there were changes in databases structures since the last comparing - If the folder was read-only, the application gave unclear errors and launched abort -------------------------------------------------------------------------------------------------- RELEASE: 2.29.122 DATE: 15 Jun 2004 DESCRIPTION: Major Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Command Line features were significantly improved to add switches for passing Options and Object Selections - Slight increase in overall performance - All options are now stored in memory so multiple instances of Diff can be used without actions of one affecting another Fixes: - 'sp_grantdbaccess' cannot be executed within a transaction - In some situations users, roles and datatypes were compared but missing in the produced syncronization script -------------------------------------------------------------------------------------------------- RELEASE: 2.28.118 DATE: 14 Jun 2004 DESCRIPTION: Minor Feature Release -------------------------------------------------------------------------------------------------- Enhancements: - Additional command line functionality -------------------------------------------------------------------------------------------------- RELEASE: 2.27.115 DATE: 05 Jun 2004 DESCRIPTION: Minor Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Updated Help File Fixes: - basObjectModel-GetObject -Invalid use of Null -------------------------------------------------------------------------------------------------- RELEASE: 2.27.115 DATE: 04 Jun 2004 DESCRIPTION: Major Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Some addtional graphics added (View Differents, Synchronize Objects) - Linked servers are not required more. They were required in Data diff only but now this has been removed - Performance improvements in Data comparison and synchronization by factor of 14 - Full blobs support in data comparing - Eliminated "TOO BIG" limitation in Data comparison - Eliminated "Has no common unique key" limitation in Data comparison - Caching queries of meta-data and results of scripting - ESCAPE-key breaks mergings and scriptings long processes - Small increase in performance - This limitation in database comparison has been removed: Has no common unique key: For tables to be compared they must have at least on common unique key. Such key can be a Primary Key or Unique Key - This limitation in database comparison has been removed: Some columns have different and incompatible types: Tables columns must have compatible datatypes and compatible lengths/precisions/scales to be compared - This limitation in database comparison has been removed: Image, text or ntext field: BLOB fields are supported only for SQL2K to SQL2K or SQL2K to SQL7.0 comparisons. - This limitation in database comparison has been removed: Target server name must be explicitly defined if MASTER is not (local) (local) is not a valid TARGET server name in this context. Target Server can currently be (local) only if Master Server is also (local) - This limitation in database comparison has been removed: Target Database can not contain a period "." if it is used in Target Database of linked server. Due to the structure of dynamic queries used in ApexSQL Diff such a character will cause an error - This limitation in database comparison has been removed: Databases and Server names can not contain a comma ",". Due to the structure of dynamic queries used in ApexSQL Diff such a character will cause an error - This limitation in database comparison has been removed: Total length exceeds 8000 bytes. Warning: The query processor could not produce a query plan from the optimize because the total length of all the columns in the GROUP BY or ORDER BY clause exceeds 8000 bytes." Fixes: - Fix: "Subscript out of range" - Fix: "Variable uses an Automation type not supported in Visual Basic" - Fixed problem where two objects of same type (i.e. tables) existed in same database with name differing only by case (i.e. Authors vs authors) - Stored procedures were being synchronized incorrectly when direction was "Target to Master" - Fix: Invalid use of Null in basObjectModel-GetObject Changes: - Made Ignore Indexes Default = False -------------------------------------------------------------------------------------------------- RELEASE: 2.26.112 DATE: 21 May 2004 DESCRIPTION: Minor Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Improved Toolbar customization - Improved client performance / speed Fixes: - "Data source not found" Error fixed - Fixed error "At least one object must be selected" Interface wasn't keeping track of checked items - Unable to right click script Master or Target structure objects Changes: - Option to "Ignore Owners" has temporarily been removed. It was causing unexpected errors -------------------------------------------------------------------------------------------------- RELEASE: 2.25.110 BETA RELEASE DATE: 11 May 2004 DESCRIPTION: Major Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Batch / Command Line interface - Large performance improvments on loading tables for Data Comparison - Limitation "Too big" is expanded - now tables can have up to 500 columns - The application remembers state - Data vs Structure between uses - Added theme dependant alternate row shading for grids - Added ability to check and uncheck selected items only - Ability to "tear off", customize and reposition menus/toolbars - New Themed Interface - choice of Office2003, Office2000, OfficeXP, StandardXP - New Office2003 style Icons / Graphics - Added XP Style controls (i.e. buttons) througout the app - App now remembers all check/unchecked items for STRUCTURE and DATA Fixes: - The bug "The identifier that starts with '... UPDATE #main SET RowsNotInDb1=@CountNotInMaster, RowsNotInDb2=@CountNotInTarget, RowsNotEqual=@CountNotEq' is too long. Maximum length is 128." - Some operations were allowed to continue even if two databases had not been compared if automatic comparison option was un-checked - Triggers were not affected if user clicked Check/Un-Check All - Fixed multiple errors when a compared database has a lowered compatible level "70". In such case the application disables SQL2000 features now. The more lowered compatible level "65" is not supported - Force full recreation of table if ALTER Column is needed on Column participating in PK, Unique Index or FK relationship - Fixed problem where Triggers were not affected if “Check All” or “UnCheck All” were selected - Fixed Query timeout problem on long running queries - Scripting Options were not affecting User Defined Functions - clsDataDiff.FormatDateForQuery - Overflow - Error Description: Line 1: Incorrect syntax near 'A' -------------------------------------------------------------------------------------------------- RELEASE: 2.24.108 DATE: 08 Apr 2004 DESCRIPTION: Minor Feature, Medium Fix release -------------------------------------------------------------------------------------------------- Enhancements: - "Ignore indexes" for comparing tables. - Speed improvements: New faster method of getting lists of databases Fixes: - "the error with mishmash of databases names in HTML-report" - "Incorrect syntax near the keyword 'level'" in basSTRUCTURE_Merge.MergeBatchStructure - raised on MSSQL 7.0 only - "Invalid use of Null" in basObjectModel.LoadProcs - "Must declare the variable '@Table'" - case sensitive problem during merging permissions. - "When Ignore Column Order is off and the column order is different, no table merge generated." - "Unique constraint not merged at all" - "Proper case columns not dealt properly" -------------------------------------------------------------------------------------------------- RELEASE: 2.23.107 DATE: 23 Mar 2004 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - "syntax check" on a resulted sql-script - this is implemented via ApexSQL Editor blue check box similar to QA. Line of syntax error will be highlighted - Ability to execute script directly from ApexSQL Editor introduced (see Green Arrow). Next version will include Automatic execution Fixes: - Roles/users/datatypes were not dropped during merging - "sp_rename" didn't allow to rename "SomeCol" into "somecol" - Fixed some lingering problems with Permissions in Merge script - Fixed "Subscript out of range" inside "clsDataDiff.GetArrayOfCols" - Fixed "Could not find stored procedure sp_msforeachtable" on case sensitive installation -------------------------------------------------------------------------------------------------- RELEASE: 2.22.105 DATE: 17 Mar 2004 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Several instances where objects remained different after merging were eliminated Fixes: - Roles/users/datatypes were not dropped during merging - Users were not shown in the grid in some cases - Roles could not be dropped if they contained members with the error "The role has members. It must be empty before it can be dropped." - "sp_droprole" was mistakenly applied for app roles - SQL-queries were executed twice during merge -------------------------------------------------------------------------------------------------- RELEASE: 2.21.103 DATE: 14 Mar 2004 DESCRIPTION: Medium Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Where some objects were not recognized as being in Target Database Diff type was -> - "Could not drop object 'dbo.authors' because it is referenced by a FOREIGN KEY constraint" when table from target is dropped (drop tables script didn't contain dropping references) - FK doesn't exist in merge-script for tables that are only in master db (creating tables script didn't contain creating references) - One more message "Invalid procedure call or argument" - Fixed problem with "Hidden" SQL Servers Sql-servers may be hidden in next cases: 1) sql-server is limited by a firewall 2) sql-server is in WAN or in a segmented network 3) sql-server is configured as "hidden" 4) sql-server doesn't work with named pipes and TCP/IP with a naming resolution Changes: - Possible unclear messages "Invalid procedure call or argument" in objects collections are replaced with the clear message like "Table [SomeTable] is not found in the collection of Tables" -------------------------------------------------------------------------------------------------- RELEASE: 2.20.102 DATE: 12 Mar 2004 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Appended option "ignore owners" Fixes: - "Login failed for user ''" - In some cases not refreshing target-server object-collection - Multiple errors "Invalid procedure call or argument" - Fixed case-sensitive probles at data-merging: "Must declare the variable '@ExcludeGuid' "Invalid column name 'TabName'" "Invalid column name 'IsPk'" -------------------------------------------------------------------------------------------------- RELEASE: 2.19.100 DATE: 08 Mar 2004 DESCRIPTION: Minor Feature Release -------------------------------------------------------------------------------------------------- Enhancements: - Eliminated linked servers for structure comparison - Additional performance improvements -------------------------------------------------------------------------------------------------- RELEASE: 2.18.99 DATE: 05 Mar 2004 DESCRIPTION: Medium Fix Release -------------------------------------------------------------------------------------------------- Fixes: - Fixed dependency order in Merge Script. In version 2.17 this feature was temporarily removed - When a table was onl in one db, the merge-script didn't have errors handling blocks between tables and indexes, as result errors handling worked not always - Errors occurred if a merged table had an apostrophe in the name: Unclosed quotation mark before the character string ' Line 3: Incorrect syntax near 'ishers' Line 10: Incorrect syntax near 't' Unclosed quotation mark before the character string '' - Dropped tables in resulted merge-script were not ended with "GO" separater. As result, errors handling didn't work there -------------------------------------------------------------------------------------------------- RELEASE: 2.17.94 DATE: 03 Mar 2004 DESCRIPTION: Minor Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Major speed enhancements - up to 10x for some databases! Fixes: - White space characters were not being fully ingored resulting in some False Positives for Procedures, Views, Functions related to White Space Characters Changes: - Dependency order was not working properly in Merge so we have temporarily pulled it "offline". It will be back in shortly -------------------------------------------------------------------------------------------------- RELEASE: 2.16.91 DATE: 27 Feb 2004 DESCRIPTION: Minor Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added Ignore Collation Option - Cleaned up Merge Script Header and Code (GOs, spaces, etc) - Added Option to Include / Not Include Error/Transaction Handling in Merge Scripts Fixes: - Option values for "Ignore White Space" was reversed - Fixed some problems where Button Selections for Loading objects vs. Showing objects were getting switched - Triggers were not being included in Batch Merge - In some cases object level description was not being shown for Tables Changes: - Option Removed: Ignore Regional Settings for Date Format in Merge Script. Use YYYYMMDD hh:mm:ss. Now all dates are scripted in format "YYYYMMDD hh:mm:ss" - Added New Compare it! 3.5 to install. To download separately go to http://www.grigsoft.com/wincmp3.htm - For Diff users - Detects and color codes "Null" vs "Not Null" correctly - Support for all fonts, without fixed-width limitation - Ignore Diff feature - Optional new Adaptive line comparison engine - RegExp usage improved with substring replacements - Relative path can be used for backup folder - Optional usage of balloon-like messages for notifications - Improved Search and Replace function -------------------------------------------------------------------------------------------------- RELEASE: 2.15.89 DATE: 13 Feb 2004 DESCRIPTION: Minor Feature, Medium Fix Release ------------------------------------------------------------------------------------------------- Enhancements: - Improved performance again with Merge - Sort order is now preserved accross comparisons Fixes: - basTableMerge.GetReferencesArray2 - Subscript out of range - Selected row is now the first in the grid. Before the selected row was in the middle of the grid - Fix bug with incorrect FK when the mode "From target to master" - superfluous "IDENTITY" in merge-script inside "ALTER COLUMN" statement - When merging individual table with "full recreate" option selected FKs drop statement was before script header - Error Procedure: basCommonGI.ExecuteRecordsetInMaster - Error Description: Must declare the variable '@Id' Changes: - Only Tables, Triggers, SPs, Functions and Views are now compared by default. Other objects (rules, types, roles and users) can be checked for comparison by user choice - Changed default for "Ingore Space" and "Ignore Case" to false -------------------------------------------------------------------------------------------------- RELEASE: 2.14.87 DATE: 21 Jan 2004 DESCRIPTION: Major Feature / Major Fix Release ------------------------------------------------------------------------------------------------- Enhancements: - Added filtering by Diff Codes - Performance for Table Scripting (Viewing Differences and Merging) exponentially faster. - Improved installation to properly write an .ini file for Compare It! that will point Compare It! automatically to mssql.chi Language definition for purpose of SQL Syntax highlighting - Added Compare It! section to help file - Much Faster scripting (for merge script and viewing script differences) for views, procedures and triggers - Added "Reset" button to Options form - Added "Reset" and "Clone" buttons to login form - When triggers, procs and views are scripted preference for IGNORE COMMENTS, IGNORE ANSI and IGNORE WHITE SPC is now implemented Fixes: - Fixed some problems related to querying sql servers on login screen. In some cases servers were not listed - Names for FKs, Indexes, etc sometimes would not be shown based on defect in SQLDMO technology - now Names will be shown or not shown based on Option selected - with no more missing names - The column prefix 't' does not match with a table name or alias name used in the query - Fixed error on "View script of Master Object" and "View Script of Target Object" - Resolved error if Compare It! (or WinDiff) executables were not found when called - to a friendly message - Fixed a problem with creation of linked servers - In some cases when user selected "View Script of Target Object" the script was blank - Object variable or With block variable not set; Error Line: 34 - ANSI-options are no longer shown if User selects "Ignore ANSI Options" in comparison for tables only - "Line 1: Incorrect syntax near 'WHERE'" - Fixed various problems related to option values in Option form not being persisted and or seletected when DEFAULT button was clicked - In some cases Triggers were showing up in Procedures group Changes: - New Installation program - New product name, graphics etc - Implemented new trial period enforcement mechanism -------------------------------------------------------------------------------------------------- RELEASE: 2.13.85 DATE: 16 Dec 2003 DESCRIPTION: Major Feature Release ------------------------------------------------------------------------------------------------- Enhancements: - Additional improvements to Help file - New Compare It! 3.3 - Added Compare It! to Install - Right click Merge will now merge Individual Object not all of the checked objects for both Structure and Data - Added progress meter and status bar changes to creating merge script process for Structure and Data - Added Option for Target to Master vs Master to Target merge for structure and Data Merge Fixes: - File dialog for Windiff and Compare It! were reversed - If table had identity differences (seed, increment) table will be rebuilt in merge - When shelling out to QA - the proper server/database was not always loaded - Interface reflected login details for Master server only in bottom status bar - Fixed annoying error messages on help file -------------------------------------------------------------------------------------------------- RELEASE: 2.12.83 DATE: 02 Dec 2003 DESCRIPTION: Medium Feature, Major Fix Release ------------------------------------------------------------------------------------------------- Enhancements: - Significantly improved Help file - Made Including Data with Structure Merge an option (default it false) - Table comparison speed HALVED in some cases due to two different performance optimizations - Added DiffCode: Identity for Table differences (Seed and Increment) - Index order is now ignored Fixes: - If Permissions are ignored during comparison they are also ignored in script difference viewing and merge script - For some objects permissions weren't being ignored or included appropriately - Invalid column name 'TabName'. Case sensitive error - has been fixed - Invalid column name 'owner'. Case sensitive error - has been fixed - From View Differences: Object variable or With block variable not set - clsDataDiff.AreEqual Invalid use of Null - fixed - Updatable keyset cursors on remote tables require a transaction with the REPEATABLE_READ or SERIALIZABLE isolation level. - Invalid length parameter passed to the substring (final attempt at this fix. previous fix did not compeletely eliminate this error) - Violation of PRIMARY KEY constraint 'PK__#main__3EAC0DD0'. Cannot insert duplicate key in object '#main____00000000016B' Changes: - Temporary eliminated SQL7 Compatible script options - Changes made to default operation in Database Comparison - F5 now initiates data comparison and doesn't reload tables -------------------------------------------------------------------------------------------------- RELEASE: 2.11.79 DATE: 13 Nov 2003 DESCRIPTION: Major Feature, Medium Fix Release ------------------------------------------------------------------------------------------------- Enhancements: - Added support for Compare It! and Windiff Script comparison viewers (see Options) - Improved FK adding. If referenced table does not exist in target db - FK is not added and warning is supplied - Added XML structure report - Now allow for apostrophes and periods in Database and Server names - Allow for (local) in target server - Added option to ignore Column Order Fixes: - basLinkedServer.GetFoundLinkedServerName: Invalid length parameter passed to the substring - Collection of indexes returned also Primary Key and Unique constraint. The DROP INDEX statement with them generated an error. It is fixed. DROP INDEX statements are not formed for PK and UNIQUE now - Now altering any calculated columns are done through "alter table drop column" and "alter table add column" - Before, if FK from another table tried to be restored to the merged table and the ref-column changed the name, such FK couldn't restore. Now the app tests renaming of such columns and forms the script of FK with the new name of column. If nevertheless the FK cannot be created because the changes in columns are deep, the script of FK is taken into comments and PRINT-operator shows the message "Reference FK__Transacti__Trans__7EF6D905 cannot be created because the ref-table [dbo].[Transactions] has changes in ref-columns" - The same with restoring data into the recreated table from the temp-table. Column set of "INSERT"-statement is formed with consideration of columns renaming. - SELECT permission denied on column 'providerstring' of object 'sysservers', database 'master', owner 'dbo' -------------------------------------------------------------------------------------------------- RELEASE: 2.10.78 DATE: 28 Oct 2003 DESCRIPTION: Minor Fix Release -------------------------------------------------------------------------------------------------- Fixes: - 2.9.75 basMergeScriptFunctions.GlobalMergeScript: Object doesn't support this property or method - 2.9.74 frmMain.ProcScripts: Wrong number of arguments or invalid property assignment - Right pane of not Table objects (i.e. Procedure) was not displaying script - frmDataDifferences.ProcDiffCell: Type Mismatch -------------------------------------------------------------------------------------------------- RELEASE: 2.9.75 DATE: 27 Oct 2003 DESCRIPTION: Medium Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added ability to "Check All" and "Un-Check All" via right click in both Data and Structure compare - Improved Table script - FK names now are always shown - better layout for easier viewing of differences - FKs create scripts are added to end of Merge script to avoiding adding references to tables that haven't yet been created - Added FK drop scripts to beginning of script to eliminate source of Referential Integrity errors when dropping tables Fixes: - 2.9.75 basMergeScriptFunctions.GlobalMergeScript: Object doesn't support this property or method - 2.9.74 frmMain.ProcScripts: Wrong number of arguments or invalid property assignment - Sorting for MASTER and TARGET columns in structure grid. Sort order was not being handled properly for these colums - Date format of HTML report - This error persisted for some users and we have attempted to fix again. Error Description: "Cannot create a row of size 16014 which is greater than the allowable maximum of 8060" in text based objects like Triggers, Procs and Views - Error when "View Data Differences" was selected twice for same table Changes: - Eliminated "Check All" and "Un-Check All" Outlook bar buttons - Remove collation clauses from scripts -------------------------------------------------------------------------------------------------- RELEASE: 2.8.71 DATE: 01 Oct 2003 DESCRIPTION: Minor Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Reset Diff panes to start position in each new viewing - Added Ignore Timestamp to Data Comparison Options. Timestamps are automatically excluded from Data Merge - Data difference performance improvement by factor of 5x Fixes: - Fixed problem where GROUP / UN-GROUP status was not being remembered after Select All / Unselect All - User was having to click GROUP button twice to get GROUP effect - Error Description: Type mismatch, basObjectModel_Data.LoadTables_Data - Error Description: "Cannot create a row of size 16014 which is greater than the allowable maximum of 8060" in text based objects like Triggers, Procs and Views - Load options dialog was showing up for Data comparison not Structure comparison - Error Description: Invalid length parameter passed to the substring function - Error Description: "basDatabaseFunctions.GlobalText1" for Defaults and Functions - Set focus on main grid after comparison - Error Description: Invalid column name 'Fname'. (case sensitive issue) Changes: - Ignore GUID and Ignore Timestamp are added to new Option tab - "Data Options" -------------------------------------------------------------------------------------------------- RELEASE: 2.7.69 DATE: 22 Sep 2003 DESCRIPTION: Medium Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added ability to show "Uncomparable tables" in structure. These are tables over the max size allowable by SQL Server of 8094 bytes - Added ability to show "Uncomparable tables" in data. These are tables that exist in only one database, lack common UK, have different structures or contain blob type fields (i.e. image) - Added addtional column to Data Diff to show whether entire tables differ in data in anyway (different rows, rows in master only, rows in target only) or not (rows are identical in all cases) - Grid status (Grouped vs Un-Grouped) is not remembered accross comparisons and application sessions - New fonts to Script Diff Form: Arial, Lucida Console, and MS Sans Serif - Eliminated toolbars that weren't applicable when in DATA Diff mode Fixes: - Error Description: Must declare the variable '@CntNotInDb2' - Error Description: "Column 'AreInBoth'. Cannot create index on a column of bit data type" - Error Description: Invalid column name 'isremote' - Error Procedure: basMergeScript.ObjectLoop, Error Description: Object doesn't support this property or method - Error Procedure: basReport.ProcessReport, Error Description: Type mismatch - Contents of main structure and data grids were disappearing when toggling back and forth - In table merge apply script properly in case where column is tied to non-existant default -------------------------------------------------------------------------------------------------- RELEASE: 2.6.67 DATE: 15 Sep 2003 DESCRIPTION: Medium Feature, Major Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added Data Diff Merge - Added structure Difference report - Optimized linked server algorithm to allow users to create and test their own linked servers. Only if links do not exist will ApexSQL Diff create them - Improved comment header for Merge Script - Added option to Exclude GUID fields for Data Comparison - Option to "Ignore Names" now ingores FK names as well as Trigger, Default, Index and Check names - Added option to Ignore Regional Settings in Data Difference Merge so Dates will be scripted in Standard ISO format "YYYY.MM.DD" or "YYYY.MM.DD HH:MM:SS" for recognizing by MSSQL with any regional settings - Automatically exclude TimeStamp fields from Database comparison to avoid distorting comparison results - Table comparison is up to 3x faster Fixes: - This known issue has been fixed by excluding such tables from comparison. Databases with tables of combined column size greater than maximum allowable size of 8094 trips errors. SQL Server will raise errors on update, insert and sometimes select of tables built to exceed maximum allowed size. "Cannot sort a row of size ####, which is greater than the allowable maximum of 8094." Run this sql to detect such tables so their column size can be reduced to come in under the max size allowable by SQL Server SELECT '['+u.name+'].['+o.name+']' TableName FROM dbo.sysobjects o INNER JOIN dbo.sysusers u ON u.uid=o.uid WHERE o.xtype='U' AND (SELECT SUM(length) FROM dbo.syscolumns WHERE id=o.id)>8094 - Now supports objects with "?" in the object's name - Added owner name to object Merge Scripts. Owner name was missing - Added database permissions to object Merge Scripts. Permission was missing. - Timestamp fields are excluded for purposes of moving data in Structure Merge - Improved the format of float, decimal and money values. The format is always with the dot as the decimal delimiter (independently of regional settings) because MSSQL doesn't recognize another format of float, decimal and money - One source of "string or binary data will be truncated" error has been eliminated - SQLDMO returns system named statistics "_WS_Sys_*" together with the true indexes. Now the module ignores these bogus characters while getting indexes. Changes: - Added style sheet styles.css to Installation for purpose of HTML reporting - Eliminated comparison for tables with no Unique Key - Changed option name of "Ignore Constraint Names" to "Ignore Names (triggers, checks, defaults, indexes and FKs)" to more accurrately reflect nature of this option. - No longer show rows in Data diff compare that are equal - only Master Only, Target Only and Different Rows. This will be added back in though as an option shortly. - Eliminated option WITH LOG from Structure Merge Error handling. - Always use transactions (BEGIN TRANSACTION, COMMIT TRANSACTION). Prior to this Transactions were used only when user indicated -------------------------------------------------------------------------------------------------- RELEASE: 2.5.65 DATE: 14 Aug 2003 DESCRIPTION: Minor Fix/Feature release -------------------------------------------------------------------------------------------------- Enhancements: - Automatically validate against invalid characters in Database and Server names including ".", "," and "'" - Much improved interface for Data Differences. Now each cell level difference is color coded and has appropriate icon Fixes: - Error: There is already an object named '#DiffPermissions' - Error: Must declare the variable '@len'. This occurred in case sensitive installations - Added option to "Chunk" table search - See Options - Configuratio to avoid "String or binary data truncated" this error is persisting. For comparisons of large numbers of tables it may result -------------------------------------------------------------------------------------------------- RELEASE: 2.4.63 DATE: 27 Jul 2003 DESCRIPTION: Minor Feature, Medium Feature Release -------------------------------------------------------------------------------------------------- Enhancements: - Added better diagnostic to determine problem when connection to linked target server fails - Addded support for FILL FACTORS in determining table differences. - Merge script can now be output directly to MS SQL Query Analyzer depending on Options selection - Added color coding to data differences grid Fixes: - Error Procedure: frmMain.grxTables_FetchIcon, Error Description: Invalid procedure call or argument - Error Procedure: frmMain.Process, Error Description: Invalid procedure call or argument - Error Procedure: frmDataDifferences.MasterOnly, Error Description: Object variable or With block variable not set (Second attempt at this error. Occurs when toggling back and forth between Data Diff window and Main form) - When creating a merge script for a trigger the code generated actual checks for the trigger as a procedure, and tries to drop it as a procedure not a trigger - Master and Target reversed on Data Differences form - Some tables with different structures were showing up as comparable for data comparison and results were unpredictable. Now such tables no longer show up as comparable for data -------------------------------------------------------------------------------------------------- RELEASE: 2.3.61 DATE: 03 Jul 2003 DESCRIPTION: Minor Fix Release -------------------------------------------------------------------------------------------------- Fixes: - The previous version gave false warning for bad server connection in some configurations but the linked server was accessible - Attempted to - Process 67 generated fatal exception c0000005 EXCEPTION ACCESS VIOLATION - Attempted to fix: Error Procedure: frmDataDifferences.MasterOnly Error Line: 12 Error Description: Object variable or With block variable not set -------------------------------------------------------------------------------------------------- RELEASE: 2.2.59 DATE: 25 Jun 2003 DESCRIPTION: Minor Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Faster struture and data comparison by up to 20% for smaller databases Fixes: - Fixed problem on login screen where "Windows Authentication" vs "SQL Server Authentication" value wasn't being saved properly - Fixed problems with linked servers and improved linking algorithm to avoid such errors as "Login failed for user 'sa'" -------------------------------------------------------------------------------------------------- RELEASE: 2.1.57 DATE: 18 Jun 2003 DESCRIPTION: Minor Feature, Medium Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Expanded the algorithm of determination changes in columns. The algorithm is more intellectual now. So if you rename a column from "max_lvl" to "SMax_lvl33" and also change the type from "tinyint" to "smallint" and also change the order of the column, the procedure will detect such big changes and will produce the script: sp_rename .... (renaming column) alter table ... alter column (changing the type). The previous version in similar situation produced dropping and creating columns - Merge options - added option to always drop and recreate data in merged tables in order to preserver Ordinal Position Fixes: - Master and Target are reversed in Data Diff line view for Not Equal lines; target is on left and Master is on right - = and <> icons were refersed in Data difference row analysis - Fixed error "Invalid object name 'Master..spt_values'." for users without sysadmin permissions - Fixed error producing strange results in proc, trigger, view and udf compare (i.e. proc missing in target was showing as existing) Changes: - Merge options - added option to Include/Suppress Error handling in merge script to Merge node. It used to be called "Handle Transaction" -------------------------------------------------------------------------------------------------- RELEASE: 2.0.55 DATE: 29 May 2003 DESCRIPTION: Medium Feature Release -------------------------------------------------------------------------------------------------- Enhancements: - Enhanced Table Merge algorithm to only ALTER tables if only change is DEFAULTS - Added Data diff technology - Merge script now displayed in a more advanced editor - Eliminated dtproperties from table - Added Print and Print Preview to Structure and Data compare grids (table level) -------------------------------------------------------------------------------------------------- RELEASE: 1.19.52 DATE: 16 May 2003 DESCRIPTION: Medium Feature, Minor Fix Release -------------------------------------------------------------------------------------------------- Enhancements: - Added a trap for required pre-requisites to alert user when such prerequisites such as ADO and SQLDMO are missing - Added "Check for Updates" feature in Help submenu that will validate current version against any new versions of software on the website and alert user if newer version of software exists and direct them to download link - Altering indexes can be done in merge without dropping/recreating table - Updated transaction handling algorithm for Merge script - Added option to suppress transaction handling in Merge script - Made server labels and database picklists wider - Enforced against using (local) as target server if Master is not (local). In this case target server must be name explicitly Fixes: - Updated problem with ALTER column statement in merge script for Column Adds - Square brackets was omitted in column and check names in prev version - Help file for ApexSQL Diff was not being included in SQL Dev Pack installation - "String or binary data would be truncated" Error is fixed ---------------------------------------------------------------------------------- RELEASE: 1.18.50 DATE: 23 Apr 2003 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Improved table merge algorithm - more improvements to come in later versions - System views removed from comparison Fixes: - Eliminated final source of GPF error on app. close - Various fixes related to chars in database name - Fixed a mousepointer problem when double-clicking main grid to show script differences - Right and Left buttons on toolbar for "Object not in Master" "Objet not in Target" were reversed ---------------------------------------------------------------------------------- RELEASE: 1.17.48 DATE: 18 Apr 2003 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Allow comparison to proceed if an error occured on comparison of one object type i.e. tables - More troubleshooting items added to Help file Fixes: - Fixed this error: "This key is already associated with an element of this collection" - Eliminated another source of GPF error on application close ---------------------------------------------------------------------------------- RELEASE: 1.16.45 DATE: 15 Apr 2003 DESCRIPTION: Minor Feature, Medium Fix Release ---------------------------------------------------------------------------------- Enhancements: - Added Body And ANSI options as diff codes for triggers - Added option to Ignore ANSI Options - Applied Case Sensitive, Ingore Permissions, Ignore Case, Ignore Comments, Ignore White Spc to Views, Functions and Triggers in addition to Procedures - Added "Reset Defaults" button to Options form and highlighted all default controls BLUE Fixes: - Fixed General Protection Fault error that occurred on some OS versions when cancel was clicked on Login Dialog - Eliminated Permissions as a diff code for Triggers as it is not applicable - Fixed various comparison/database errors - Fixed error "SELECT permission denied on object 'sysxlogins', database 'master', owner 'dbo'." - For triggers the Body Diff code was not displaying - When showing script differences scripts were being processed twice taking twice as long as they should have ---------------------------------------------------------------------------------- RELEASE: 1.15.43 DATE: 19 Mar 2003 DESCRIPTION: Medium Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Appended scripting related rules and defaults to the merge-function. The rules and defaults are created only if they don't exist inside target DB avoiding error where default is applied if it doesn't exist in target DB - Added Difference reasons to Functions, Stored Procedures and Views For Functions: Body/Script, ANSIOptions For Procedures: Parameters, Body/Script, ANSIOptions, Parameters For Views: Body/Script, ANSIOptions - Performance improvement for object comparisons if Permissions are included - Major performance improvement for Procedures when Ignoring Comments - Added support for Text comparison option: Ignore White Space - Added option to Ignore Case in Procedures - Remembers last selected panel in options form Fixes: - Table merge wasn't working on case sensitive databases. Error was "[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Id'" - Attempted to fix login errors some users were experienced on remote servers - Arrow keys up and down weren't working ---------------------------------------------------------------------------------- RELEASE: 1.14.40 DATE: 05 Mar 2003 DESCRIPTION: Medium Feature Release ---------------------------------------------------------------------------------- Enhancements: - Added help file ---------------------------------------------------------------------------------- RELEASE: 1.13.39 BETA DATE: 03 Mar 2003 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Automatically disable constraints and triggers when running merge script. This avoids RI issues during data transfer in Merge - Automatically drop all Foreign Key references to a table prior to dropping it in Merge. Then we add them back Fixes: - Error handling code was not being added in Merge script after DROP of non-identical objects - Updated merge script - eliminated many problems - Triggers that were compared in script mode were sometimes not the same trigger ---------------------------------------------------------------------------------- RELEASE: 1.12.37 BETA DATE: 25 Feb 2003 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Added diff codes - cardview control to right of main form Fixes: - Suppressed local server as option for Target Server. ApexSQL Diff won't recognize "local" as legitimate server for purpses of running scripts ---------------------------------------------------------------------------------- RELEASE: 1.11.35 BETA DATE: 20 Feb 2003 DESCRIPTION: Minor Feature, Medium Fix Release ---------------------------------------------------------------------------------- Enhancements: - Added Trigger object to "SQL Objects to Load" form to allow control of whether Triggers are compared or not - Added ability to ignore Constraint Names and included this in options form Fixes: - Fixed right click issue with Diff screen. Copy, Select All and Copy to Clipboard were not working properly. - Fixed collation problem in Table Diff Script - SQL7 Scripts weren't being processed correctly - Tables/Objects names were not being included in DDL and Diff scripts. They were being shown as numbers (i.e. 0) Changes: - Switched Left and Right pointing arrow graphics to make more sense to users in relation to action in merge ---------------------------------------------------------------------------------- RELEASE: 1.10.33 BETA DATE: 17 Feb 2003 DESCRIPTION: Minor Feature, Major Fix Release ---------------------------------------------------------------------------------- Enhancements: - Introduced option for SQL 7 compatible scripts - Added support for trigger comparison. - Added option to Ignore Triggers in Table comparison - Added option to include/ignore permissions on all revevant objects not just tables Fixes: - Table Merge script now includes Keys, Indexes, Checks, Triggers etc. Before it just scripted primary object - Fixed some more issues with the Mousepointer and hourglass on long script comparisons - Fixed Error: "Must declare the variable '@List'." in Role Diff - Attempted to fix error: Could not find server '(local)' in sysservers. Execute sp_addlinkedserver to add the server to sysservers. - Fixed skin - removed lines from skin panel - Fixed Error when object "Ignore Permissions" was checked. "Warning: The query processor could not produce a query plan from the optimizer because the total length of all the columns in the GROUP BY or ORDER BY clause exceeds 8000 bytes. Resubmit your query without the ROBUST PLAN hint." - Fixed various problems with merge script for tables and databases with spaces in the names - Fixed loading of METADATA to refresh sql server connection to pick up any added/deleted/changed objects since last compare. - Some objects were not responding to check box options on script diff form - DDL scripts of tables were not reflecting full Keys, Indexes, Checks etc ---------------------------------------------------------------------------------- RELEASE: 1.9.30 BETA DATE: 12 Feb 2003 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Introduced Merge Script - Changed some connection parameters to avoid some potential problems - Added option to automatically compare databases when database both picklists are selected - Added sorting on diff graphic Fixes: - Attempted to fix Error "Could not insert a row larger than the page size into a hash table. Resubmit the query with the ROBUSTPLAN hint." Which only seems to occur on sql7 vs sql7 - Fixed some issues with the Mousepointer and hourglass on long script comparisons ---------------------------------------------------------------------------------- RELEASE: 1.8.27 BETA DATE: 31 Jan 2002 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Reorganized and added graphics to "Select SQL Objects to Load" form Changes: - Automatically link non-linked servers from crossed server comparison ---------------------------------------------------------------------------------- RELEASE: 1.7.25 BETA DATE: 24 Jan 2002 DESCRIPTION: Minor Feature, Medium Fix Release ---------------------------------------------------------------------------------- Enhancements: - Updated interface - moved form buttons to toolbar for expand, collapse, group, ungroup - Resized grid column widths Fixes: - Fixed linked server problem if user indicates "No" or "Cancel" to link server at first prompt but "Yes" at second prompt - Fixed a General Protection Fault error that occurred on some OS versions when the main form (via File Menu) or login form was closed - Fixed problem where Procedures and Views were reversed in Object Startup form - Fixed collation (case sensitive) problems between Case Sensitive and Non Case Sensitive databases ---------------------------------------------------------------------------------- RELEASE: 1.6.21 BETA DATE: 06 Jan 2002 DESCRIPTION: Minor Fix Release ---------------------------------------------------------------------------------- Fixes: - Fixed "Path not found" error ---------------------------------------------------------------------------------- RELEASE: 1.5.20 BETA DATE: 05 Jan 2002 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Interface improvements (updated toolbar, outlook bar and skin) Fixes: - Improved error handling to eliminate some secondary error messages - Updated login screen to eliminate (local) as a choice in list of servers for Second (or target) SQL Server - Prevented linked server operation if database comparison is on same server ---------------------------------------------------------------------------------- RELEASE: 1.4.17 BETA DATE: 02 Jan 2002 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Added ability to select which object types (i.e. tables) to do a comparison on - Remember the grid filter button selections for objects and difference types - Added both database names to main form caption - Cleaned up some validation for ensuring both databases are select before doing comparison Fixes: - Eliminated extraneous file menu - Updated procedure comparison code to attempt to fix SQL ServerException errors that occur on some SQL2K to SQL7 comparisons with servers located on same computer - Worked on Procedure Difference scripts to try to eliminate a SQL Server Exception Error that occurs on Database comparisons from MSSQL2000 > MSSQL7 on same computer - Fixed skin on registration form ---------------------------------------------------------------------------------- RELEASE: 1.3.15 BETA DATE: 28 Dec 2002 DESCRIPTION: Minor Feature, Minor Fix Release ---------------------------------------------------------------------------------- Enhancements: - Much faster grid/presentation loading - Cleared grid before reloading new one - Sorted grid automatically by Name Asc in addition to Type when Grouped - Enhanced right click menu Fixes: - Updated Icon - Added RichText control to install which was missing - SQL Server Elipse button was not working properly - ApexSQL Diff was not working with servers with names that contained special characters like "-" or "." ---------------------------------------------------------------------------------- RELEASE: 1.2.11 BETA DATE: 21 Dec 2002 DESCRIPTION: Minor Fix Release ---------------------------------------------------------------------------------- Fixes: - Addressed issue with error