# SQL Server Data Access Components ## History | sdac@devart.com

7.1.6 14-Jul-15

- Critical bug with data encryption is fixed
- Bug in IProviderSupport.PSExecuteStatement with parsing a SQL query is fixed
- Bug with missing IdeVer.inc in Trial version is fixed
- Bug in TMSScript.Execute with script parsing is fixed
- Bug with the stored procedures executing in the Direct mode is fixed
- 'Catastrophic failure' on data fetching is fixed

7.1.5 30-Jun-15

- Critical bug when parsing SQL query with parameters is fixed
- Bug with the Refresh method in the SmartFetch mode is fixed
- Bug with getting stored procedure list is fixed
- Bug in TMSScript.Execute with script parsing is fixed

7.1.4 17-Jun-15

- Now parameter type is set automatically if it is explicitly declared
- Bug with using bookmarks in a filtered dataset is fixed
- Bug with restoring the original order of records after clearing IndexFieldNames is fixed
- Bug with refreshing DbLookupComboBox of the detail dataset when Master-Detail relationship is used is fixed
- Bug with SQL Monitor freezing when using in a DLL is fixed
- Bug with TMSQuery.RefreshRecord when the table name contains the database name or the schema name is fixed
- Bug with unnecessary update of all fields when a server cursor is used is fixed
- Bug with the 'Out of memory' error on opening a big table when ReadOnly = True is fixed
- Bug in TMSScript with parsing script is fixed
- Bug in TMSChangeNotification for SQL Server 2012 and higher is fixed
- Bug in TMSConnection.OpenDatasets with setting macro values is fixed

7.1.3 14-Apr-15

- RAD Studio XE8 is supported
- AppMethod is supported
- Direct mode in Lazarus is supported
- Now the Direct mode is supplied as source code
- Performance of connection establishing in the Direct mode is improved
- Bug with invalid names of Master-Detail parameters is fixed
- Bug with the 'Cannot convert type' error in the TDADataSet.RefreshRecord method when data type mapping is used is fixed
- Bug with AV failure in the SmartFetch mode is fixed
- Bug with AV on calling GetVersion() in C++Builder is fixed
- Bug with the 'TableName cannot be empty' assertion failure on query opening is fixed
- Bug with processing LongWord parameters is fixed
- Bug with the 'DateTime type 40' error on query opening is fixed
- Bug with an Abstract error on TMSChangeNotification freeing is fixed
- Bug with AV failure in the TMSConnection.Ping method is fixed

7.0.2 14-Jan-15

- Lazarus 1.2.6 is supported
- Several bugs in the Direct mode are fixed
- Bug with the "Input\Output error(5)" error on Connect for non-Windows platforms is fixed
- Bug with losing data after VirtualTable closing on SaveToStream is fixed
- Bug with RestoreUpdates in CachedUpdates mode is fixed
- Bug with processing a query containing a 'UNION' clause is fixed
- Bug with editing DateTime fields when string-to-datetime data type mapping is used is fixed
- Bug with loading datetime2 fields via TMSLoader by OLEDB Provider is fixed

7.0.1 25-Nov-14

- Direct mode is supported
- Mac OS X is supported
- iOS is supported
- Android is supported
- Bug when using table aliases in the DetailFields name is fixed
- Bug with using UPPER and LOWER functions in filter is fixed
- Bug with setting TParam.Value = for a parameter with the ftDate data type is fixed
- Bug with TCustomDADataSet.FindKey is fixed
- Bug with editing DateTime fields when data type mapping from string to DateTime is used is fixed
- Bug with refreshing record if the key field has the TSQLTimeStamp data type is fixed
- Bug with using view in SQL query in the SmartFetch mode is fixed
- Bug with record editing in the SmartFetch mode when RefreshOptions.roBeforeEdit is set is fixed
- Bug with processing TMSTransaction events by DBMonitor is fixed

6.11.23 29-Sep-14

- Bug with RecNo in the UniDirectional mode is fixed
- Bug with setting SQL query when ParamCheck = False is fixed
- Bug with AV failure on getting metadata by TCustomDADataSet is fixed
- Bug with AV failure under Mobile when DacFMX is used is fixed
- Bug with incorrect data loading by TMSLoader is fixed

6.11.22 15-Sep-14

- RAD Studio XE7 is supported
- Lazarus 1.2.4 is supported
- The TCustomDADataSet.GetKeyFieldNames method is added
- The TCustomDAConnection.GetKeyFieldNames method is added
- The ConstraintColumns metadata kind for the TMSMetadata component is added
- Demo projects for FastReport 5 are added
- Several bugs in the SmartFetch mode are fixed
- Bug with quoting names in the EmptyTable method is fixed
- Bug with calling the Refresh method after executing the EmptyTable method is fixed
- Bug with setting calculated field values using the AsExtened property is fixed
- Bug with re-calling the AfterExecute event is fixed
- Bug with re-calling the BeforeExecute event is fixed
- Bug with detecting hidden fields is fixed

6.10.21 31-Jul-14

- The SQL property is added to TMSConnection
- Support for the Upper and Lower statements in TDADataSet.Filter is added
- Bug with reopening TDADataSet after BreakExec is fixed
- Several bugs in the SmartFetch mode are fixed
- Bug with processing calculated and lookup fields in the SmartFetch mode is fixed
- Bug with getting RecordCount when QueryRecordCount is True is fixed
- Bug with AV failure on opening TCustomDADataSet when Range was set is fixed
- Bug with "Invalid field size" in TVirtualTable is fixed
- Bug with AV failure on freeing objects on mobile platforms is fixed
- Bug with opening a query with too long columns is fixed
- Bug with cutting an input-output parameter value is fixed
- Bug with processing identity field is fixed
- Bug with processing tinyint fields is fixed
- Bug with processing tinyint and bigint parameters in SQL Server Compact Edition is fixed
- Bug with the Integer Overflow error on query preparation when DescribeParams is True is fixed
- Bug with getting metadata in MS SQL Server 64 bit is fixed
- Bug with 'Unspecified error' in TMSLoader is fixed

6.10.20 27-May-14

- Bug with AV failure on fetching records in the UniDirectional mode is fixed
- Bug with finding master parameters by original name on refreshing record when using master/detail relationship by parameters is fixed
- Bug with compilation in C++Builder is fixed
- Bug with setting boolean parameters in a non-English IDE at design-time is fixed
- Bug with unnecessary updating all fields when server cursor used is fixed
- Bug with detecting slash as a delimiter in TMSScript is fixed
- Bug with AV failure on appending new records when server cursor is used and CursorUpdate = False is fixed
- Bug with hanging application on closing dataset with non-fetched records is fixed
- Bug with excess memory allotment on recordset opening is fixed

6.10.19 29-Apr-14

- RAD Studio XE6 is supported
- Lazarus 1.2.2 and FPC 2.6.4 is supported
- SQL Server 2014 is supported
- SmartFetch mode for TDataSet descendants is added
- The TMSDataSetOptions.MasterFieldsNullable property is added
- Now update queries inside TDataSet descendants have correct owner
- The SetOrderBy method behavior is fixed
- The GetOrderBy method behavior is fixed
- Bug with displaying already installed DAC version in setup messages is fixed
- Bug with the Filter behavior in the Metadata component is fixed
- Bug with AV on modify table with one only Object field is fixed
- Bug with Locate when a NULL value is present in the index field is fixed
- Bug with IndexFieldNames when DataTypeMapping is enabled is fixed
- Bug with freeing memory in the TDADataSet.Lookup method is fixed
- Bug with processing widestring parameters is fixed
- Bug with generating SQL queries for a query with a few keys is fixed
- Bug with processing tinyint and single parameters in SQL Server Compact Edition is fixed
- Bug with setting the TField.Required property for SQL Server Compact Edition is fixed

6.9.18 19-Feb-14

- Possibility to use MAS_ prefix for parameters when using master/detail relationship is added
- Bug with post data when LockMode=lmOptimistic and Data Type Mapping is applied is fixed
- Bug with opening dataset when persistent fields were created in dataset is fixed
- Bug with parameter name quoting on assigning field value to parameter is fixed
- Bug with deleting a record inserted earlier in CachedUpdates mode is fixed
- Bug on sorting BLOB fields is fixed
- Bug with percentage count in the OnRestoreProgress event of the TDADump class is fixed
- Bug with changing TParam.ParamType when preparing parameters of stored procedure when DescribeParams is True is fixed
- Bug with deleting other services on closing TMSChangeNotification is fixed
- Bug with not displaying data in visual controls in the NonBlocking mode is fixed
- Bug with generating SQL queries by "SQL Generator" in design-time is fixed
- Bug with "SQL editor" in design-time is fixed

6.9.17 25-Dec-13

- RAD Studio XE5 Update 2 is now required
- Now .obj and .o files are supplied for C++Builder
- Compatibility of migrating floating-point fields from other components is improved
- The TMSConnection.AutoCommit property is added
- Default values of UNIQUEIDENTIFIER fields without curly brackets are supported
- RefreshQuick, RefreshRecord and ReadOnly are now set to True by default
- Bug with data loss when updating records in the CachedUpdates mode is fixed
- Bug with RefreshRecord in the CachedUpdates mode is fixed
- Bug with mapping to BCD and FmtBCD types is fixed
- Bug with mapping single types to float types is fixed
- Bug with data display in Detail Dataset when master field is Null is fixed
- Bug with mapping to BCD fields when using TClientDataSet is fixed
- Bug with incorrect parameter sizes when re-opening a query is fixed
- Bug with filtering boolean fields is fixed
- Bug with freeing complex fields after refreshing before editing is fixed
- Bug with Locate by fields where Data Type Mapping is applied is fixed
- Bug with RefreshQuick when IndexFieldNames is set is fixed
- Bug with incorrect committing of data by the Loader component on errors is fixed
- Bug with using LongWord parameters is fixed
- Bug with using TMSDataSetOptions.NonBlocking is fixed
- Bug with processing varbinary(max) output parameters in stored procedure is fixed
- Bug with the "Bookmark is invalid" error when using the ctKeyset cursor is fixed

6.8.16 23-Sep-13

- Critical bug with parsing unicode SQL queries is fixed

#### 6.8.15 18-Sep-13

- RAD Studio XE5 is supported
- Lazarus 1.0.12 is supported
- Performance is improved
- Automatic checking for new versions is added
- Flexible management of conditions in the WHERE clause is added
- Support of the IN keyword in the TDataSet.Filter property is added
- Like operator behaviour when used in the Filter property is now similar to TClientDataSet
- The possibility to use ranges is added
- The Ping method for the TMSConnection component is added
- The AllowImplicitConnect option for the TMSConnection component is added
- The ForceCreateDatabase option for the TMSConnection is added
- The ApplicationIntent option for the TMSConnection is added
- The SQLRecCount property for the TMSQuery and TMSStoredProc components is added
- The ScanParams property for the TMSScript component is added
- The RowsAffected property for the TMSScript component is added
- Bug in TDALoader with data loading from Dataset when the FetchAll option is set to False is fixed
- Bug with TDALoader.LoadFromDataSet is fixed
- Bug with storing the dbMonitor active state to DFM is fixed
- Bug with setting ConnectionTimeout for Unix, Mac OS and iOS platforms is fixed
- Bug with incorrect displaying of long names of parameters and macros in design-time is fixed
- Bug with processing cached data when UpdateRecordTypes is not default is fixed
- Bug with moving data from WideMemo to String fields by TCRBatchMove is fixed
- Bug in TCRBatchMove when destination dataset has no key fields is fixed
- Bug with TCRBatchMove and DataSets in the UniDirectional mode is fixed
- Bug with showing a connection dialog in design-time when LoginPrompt is set to False is fixed
- Bug with setting the connection string containing inline comments is fixed
- Bug with unnecessary unlock calling after an update error is fixed
- Bug with not setting all properties when assigning TMSSQL is fixed
- Bug with using ptResult parameters is fixed
- Bug with calling RefreshRecord when FullRefresh is set to True is fixed
- Bug with assertion failure when using notifications is fixed
- Bug with using notifications for long queries is fixed
- Bug causing different errors when using notifications is fixed
- Bug with "Multiple-Step OLE DB Operation generated errors" is fixed
- Bug with processing DateTime fields when using Table-Valued Parameter type is fixed

#### 6.7.14 15-Jul-13

- Connection dialog is improved
- Incorrect XE4 behaviour when re-opening a dataset under iOS is fixed
- Now schema name is used when filling default values if DefaultValues = True
- Bug in the alerter when DisconnectedMode is set to True for a connection is fixed
- Bug with the connection OnLogin event is fixed
- Bug with incorrect counting of connections in pool is fixed
- Bug with time fields in Lazarus is fixed
- Bug with varbinary fields in Lazarus is fixed
- Bug with using case-insensitive filter is fixed
- Bug with getting and setting the SQL property of FastReport datasets is fixed
- Bug with positioning of Fields Editor is fixed
- Bug with not using index fields on locating records is fixed
- Bug with processing the cached data when UpdateRecordTypes is not default is fixed
- Bug with processing persistent fields in TVirtualTable is fixed
- Bug with processing parameters of stored procedures is fixed
- Bug with the QueryRecCount option queries containing the 'GROUP BY' clause is fixed
- Bug with processing changed Blob fields is fixed
- Bug with "Multiple-Step OLE DB Operation generated errors" is fixed
- Bug with truncating strings containing #0 characters is fixed
- Bug with the 'Invalid floating point operation' error on dataset opening is fixed
- Bug with memory leak when using connection pooling is fixed
- Bug with adding #0 characters when dumping blob fields is fixed

#### 6.7.13 25-Apr-13

- Rad Studio XE4 is supported
- Connection string support is added
- Now the TCustomMSDataSet.Options.UniqueRecords property is set to True by default
- The TCustomMSDataSet.Options.HideSystemUniqueFields property is added
- Possibility to encrypt entire tables and datasets is added
- Possibility to determine if data in a field is encrypted is added
- Support of TimeStamp, Single and Extended fields in VirtualTable is added
- Bug with Master-Detail for TClientDataSet in Rad Studio XE3 is fixed
- Bug with Master-Detail by non-English fields is fixed
- Bug with IndexFieldNames by non-English fields is fixed
- Bug with incorrect RecordCount result when a query contains both ORDER BY and LIMIT is fixed
- Bug with calling Cancel in the BeforePost event is fixed
- Bug when setting the TDataSet.Filter property for empty dataset is fixed
- Bug with incorrect TVirtualTable version displaying in the About box is fixed
- Thread handle leak when using pooling is fixed
- Bug with 'Unspecified error' when using TMSLoader for UNIQUEIDENTIFIER fields is fixed
- Bug with TMSLoader.LoadFromDataSet when UniDirectional = True and FetchRows = 1 is fixed
- Bug when opening table for SQL Server Compact Edition 4.0 for 64-bit Windows is fixed
- Now the TCustomDASQLMonitor.Options.moDBMonitor property is set to False by default

#### 6.6.12 14-Feb-13

- Rad Studio XE3 Update 2 is now required
- Bug with AV on adding TFieldDef items to FieldDefs for Delphi 2009 and higher is fixed
- Bug with incorrect detection of the numeric parameter type in ExecSQL is fixed
- Bug with assigning data to blob fields when using Data Type Mapping is fixed
- Bug with inserting a new record into TStringGrid in FMX is fixed
- Bug with unlocking a record after constraint violation is fixed
- Bug with quoting index field names in TCRDBGrid is fixed
- Bug with Master-Detail link by fields with non-English names is fixed
- Bug with saving Date fields in XML is fixed
- Bug with data type mapping of nvarchar(max) field is fixed
- Bug with the 'List index out of bounds' error on refresh of detail table is fixed
- Bug with AV failure on repeated execution of a prepared stored procedure is fixed
- Bug with AV failure on filling default field values is fixed
- Bug with using the TVP parameter not belonging to dbo schema is fixed
- Bug with dumping data from view is fixed
- Bug with dumping data from tables of not a standard dbo schema is fixed
- 'Overflow check error' when using TMSDump is fixed
- Bug with 'Unspecified error' in TMSLoader is fixed
- 'Invalid column name 'message_id'' when using notifications in SQL Server 2012 is fixed

#### 6.6.11 12-Dec-12

- Rad Studio XE3 Update 1 is now required
- C++Builder 64-bit for Windows is supported
- TMSConnection.Port property that allows specifying the port number for connection is added
- Bug with using quoted field names in the IndexFieldNames property is fixed
- Bug in TMSStoredProc with closing dataset when the Disconnected property is True is fixed
- Bug with processing macros named in Cyrillic is fixed
- Bug with getting default field values when using not the default dbo schema is fixed
- Bug with getting default values for fields with aliases is fixed
- Bug with filtering XML fields is fixed
- 'Required provider is not installed' error when working with FILESTREAM data is fixed

#### 6.5.10 07-Nov-12

- Some improvements for NEXTGEN support are added
- Support for ftGraphic and ftFmtMemo parameter data types is added
- Informativity of messages about errors in connection is improved
- Dependency of design-time packages on FMX packages is removed
- TMSConnectionOptions.NativeClientVersion property to set the version of SQL Native Client provider is added
- The possibility of choosing the Authentication mode in TfrxSDACDatabase is added
- Bug with data loss in pessimistic lock mode is fixed
- Bug with AV failure in RefreshQuick method is fixed
- Bug with renaming of fields with the same names is fixed
- Bug with dependency parameters count in macros on delimeter is fixed
- Bug with storing the LoginPrompt connection property is fixed
- Bug with dump data from VIEW is fixed
- Bug with creating columns on setting the TableName property in TDALoader is fixed
- Bug with using TVP parameters in queries is fixed
- Bug with AV failure on TMSTable.Open is fixed
- Bug with using the '|' symbol in the connection string is fixed
- Bug with using the NEWSEQUENTIALID() default expression is fixed
- Bug with inserting float values to real fields is fixed
- 'Range check error' when working with varbinary(max) or varchar(max) is fixed
- Bug with errors on starting BDS 2006 is fixed
- Bug with compilation of FireMonkey Application on C++Builder is fixed
- Bug with invalid class type cast exception when processing parameters in Trial Edition is fixed

#### 6.5.9 05-Sep-12

- Rad Studio XE3 is supported
- Windows 8 is supported
- Bug with storing empty MapRules collection in DFM is fixed
- Bug with AV failure at freeing connection, for which AssignConnect was executed, is fixed
- Bug with inserting strings and widestrings via TMSLoader is fixed

#### 6.2.8 24-Jul-12

- Bug with Data Type Mapping and persistent fields is fixed
- Bug with Data Type Mapping to Bytes and VarBytes is fixed
- Bug with decryption of binary fields is fixed
- Bug with editing calculated fields is fixed
- Connection dialog is now open in the screen center instead of the desktop center
- Several bugs with compilation on Delphi XE2 from Source code are fixed

#### 6.2.7 21-Jun-12

- Update 4 Hotfix 1 for RAD Studio XE2, Delphi XE2, and C++Builder XE2 is now required
- Data Type Mapping support is added
- Data encryption in a client application is added
- The TMSEncryptor component for data encryption is added
- SQL Server Native Client 11 (SQL Server 2012) support in the TMSConnection.ConnectString property (Provider=SQLNCLI11.1) is added
- Calling of the TCustomDASQL.BeforeExecute event is added
- Bug with executing a script that ends with a commented line is fixed
- Bug with assigning outsize data to TWideStringField is fixed
- Bug with AV failure at calling the SetRecNo method when using local sorting is fixed
- Bug in design time editor of the TVirtualTable component with master-detail relationship is fixed
- Bug with getting stored procedures list for SQL Server 2000 is fixed
- Bug in design time editor of the TMSStoredProc component is fixed

#### 6.1.6 02-Apr-12

- Bug with SQL Generator in the design-time is fixed
- Bug with generating Update SQL with fields that have aliases is fixed
- Bug with saving BCD fields from TVirtualTable to a Stream is fixed
- Bug with LocalMasterDetail is fixed
- Bug with pdInputOutput parameters is fixed

#### 6.1.5 01-Mar-12

- Update 4 for RAD Studio XE2, Delphi XE2, and C++Builder XE2 is now required
- Bug with AV failure at executing ApplyUpdates is fixed
- Bug with hanging RAD Studio XE2 when opening ConnectDialog is fixed
- Several bugs in design-time editors are fixed
- Bug with the query that is generated for the QueryRecCount option is fixed
- Bug with processing TMSCompactConnectionOptions.LocaleIdentifier is fixed
- Bug with processing data for SQL Server Compact Edition when using the BaseTable cursor is fixed

#### 6.1.4 28-Dec-11

- The UniqueFieldIndexSeparator global variable is added
- Bug with assertion failure at proccesing the cached data is fixed
- Bug with Delphi IDE hanging at closing in case of using DBMonitor is fixed
- Bug with freeing memory in Lazarus is fixed
- Bug with executing the queries with parameters in Delphi 5 is fixed
- Several bugs with 64-bit application development are fixed
- Several bugs in design-time editors are fixed
- Bug with generation the SQL query for data refresh, while FullRefresh is True and the macros is used, is fixed
- Bug with the stored procedures executing in SQL Azure is fixed
- Bug with GetProcedureList is fixed

#### 6.1.3 23-Nov-11

- Update 2 for RAD Studio XE2, Delphi XE2, and C++Builder XE2 is now required
- FireMonkey support is improved
- Lazarus 0.9.30.2 and FPC 2.4.4 are supported
- SQL Azure support is improved
- Bug with query containing 'WITH' clause that is generated for the QueryRecCount option is fixed
- Bug with processing parameters values of which are set to the SqlTimestamp type is fixed
- Bug with memory leak in TDALoader is fixed
- Problem with receiving DateTime parameter for DBMonitor in Delphi 2009 and higher is fixed

#### 6.0.2 10-Oct-11

- Bug with processing identity fields in Table-valued parameters is fixed

#### 6.0.1 15-Sep-11

- Embarcadero RAD Studio XE2 is supported
- Application development for 64-bit Windows is supported
- FireMonkey application development platform is supported
- Support of master/detail relationship for TVirtualTable is added
- OnProgress event in TVirtualTable is added
- TDADataSetOptions.SetEmptyStrToNull property that allows inserting NULL value instead of empty string is added
- Bug with excess memory allotment on recordset opening for SQL Server Compact Edition is fixed

#### 5.10.0.8 19-Jul-11

- Bug with assertion failure on using master/detail relationship with TClientDataset is fixed
- Bug in TCustomDADataSet.PSGetKeyFields method when in dataset persistent fields was created is fixed
- Bug with crashing application when preparing parameters for SQL Server Compact Edition is fixed

#### 5.10.0.7 15-Jun-11

- Possibility to load data in TVirtualTable without recreating persistent fields is added
- Working in design time editor of the TVirtualTable component is improved
- Loading files opened by other applications is improved
- Bug with processing key fields on record posting is fixed
- Several bugs with design-time editors for Lazarus are fixed
- Bug with specifying schema name on getting table names list in design time editor when not default schema name is used is fixed

#### 5.10.0.6 28-Apr-11

- Lazarus 0.9.30 and FPC 2.4.2 is supported
- Support for Table-Valued Parameters is added
- TMSTableData component for storing data of Table-Valued Parameter type is added
- Support of API interface for managing FILESTREAM data is added
- Support for SQL Server Compact Edition 4.0 is added
- Bug in bookmark validity check is fixed
- Bug with processing varchar(max) output parameters in stored procedure is fixed
- Bug with using empty string in the Filter property is fixed

#### 5.00.0.5 10-Mar-11

- Delphi & C++Builder XE Starter Edition supported
- Fixed registration procedure of Borland SQL Monitor when TMSSQLMonitor is created at runtime
- Fixed bug with using the TrustServerCertificate value in connection pool

#### 5.00.0.4 26-Jan-11

- Fixed bug with SQL Generator in design time

#### 5.00.0.3 08-Dec-10

- Added calling the BeforeExecute event for the Open and Refresh dataset operations
- Fixed bug in the Refresh method when connection is lost
- Fixed bug with refreshing record for Master-Detail datasets
- Fixed bug with processing varchar(max) parameters in stored procedure
- Fixed bug with AV failure when non-string value is set to string parameter
- Fixed bug with setting parameter values when ParamStringAsAnsiString is set to True

#### 5.00.0.2 04-Nov-10

- Added checking that dataset is open on calling the TDataSet.Locate method
- Improved performance of working with UDT fields
- Fixed bug with decoding data on loading XML
- Fixed bug in Migration Wizard with adding unnecessary spaces
- Fixed bug with processing large GEOMETRY and GEOGRAPHY fields
- Fixed bug with processing time parameters for SQL Server 2005
- Fixed bug in the Migration wizard with migrating parameters in the date format
- Fixed bug with processing parameters when query is executed with error

#### 5.00.0.1 13-Sep-10

- Embarcadero RAD Studio XE suppored
- Fixed bug with the LIKE keyword in the TDataSet.Filter property
- Fixed bug with filling default expression for fields in the design mode for inactive dataset
- Fixed bug with processing large Geometry fields
- Fixed bug with inserting autoincrement fields through TMSLoader

#### 4.80.0.60 13-Aug-10

- Changed the LocateEx method behavior: now LocateEx centers records equal to Locate
- Added the OnBeforeExecute event
- Fixed bug in Migration Wizard with converting units in the UTF8 and UTF16 encoding
- Fixed bug with RefreshRecord and numbers with floating point
- Fixed bug with truncation of large Geometry field

#### 4.80.0.59 24-Jun-10

- Added ability to lock records in the CachedUpdate mode
- Added the UniqueFieldNamePrefix variable to specify prefix to create unique field names when used server cursor
- Added overloaded declaration of the ApplyUpdates method to choose update kind
- Fixed bug with quote that first character inside quoted string for the Filter property
- Fixed bug in TCRBatchMove with processing RecordCount
- Fixed bug with LockTable
- Fixed bug with changing IndexFieldNames if AutoPrepare = True

#### 4.80.0.58 26-May-10

- Added support of GEOMETRY, GEOGRAPHY, HIERARCHYID field types for SQL Server 2008
- Added DescribeParams option that provides automatic parameters describing when a statement is prepared
- Fixed bug with cascade deleting records for SQL Server Compact Edition
- Fixed bug with generating system field names when static cursor is used
- Fixed problem with static cursor usage in transactions
- Fixed problem with inserting empty value in blob field

#### 4.80.0.57 09-Apr-10

- Fixed bug with comparing Date field values on optimistic locking
- Fixed bug in the AddWhere, DeleteWhere, SetOrderBy, and GetOrderBy methods for Tables
- Fixed bug with calculating RecNo in CachedUpdates mode
- Fixed bug with AV failure on connection closing under CLR
- User_name in metadata changed to schema_name

#### 4.80.0.56 04-Mar-10

- Added ability to send call stack information to dbMonitor component
- Fixed bug with refreshing record when using master/detail relationship
- Fixed bug with LocalUpdate in the CachedUpdates mode
- Fixed bug with DBMonitor for C++ Builder 6
- Fixed bug with processing DECIMAL fields when EnableBCD = False
- Fixed bug with the TMSSQL.NonBlocking property, that was set in design time

#### 4.80.0.55 26-Jan-10

- Added OnStart, OnCommit, OnRollback events to TDATransaction
- Fixed bug with refreshing record when RefreshOptions.roBeforeEdit is set and LockMode = lmPessimistic
- Fixed problem with using TLargeintField in master/detail
- Fixed bug with processing transaction when connection is lost
- Fixed bug with processing TIME fields for SQL Server 2008
- Fixed bug with processing Widememo fields for SQL Server Compact Edition
- Fixed bug with sending messages to different databases via TMSServiceBroker
- Fixed bug with TMSDump

#### 4.80.0.54 01-Dec-09

- Added support for dbMonitor 3
- Added support of DATETIMEOFFSET field type for SQL Server 2008
- Fixed bug with updating table, that has field name, representing a valid hexadecimal number
- Fixed bug with updating field value with preceding spaces when TrimFixedChar or TrimVarChar = True
- Fixed bug with executing large file in UTF-8 format
- Fixed bug with repeated executing TMSConnection.OpenDatasets
- Fixed bug with processing LargeInt parameters in Delphi 5

#### 4.80.0.53 12-Nov-09

- Added the TMSConnection.OpenDatasets method for opening several datasets as one batch
- Now Required flag is set for UpdatingTable fields only
- Now setting the SetFieldsReadOnly option to False makes all fields not read-only (default changed to True)
- Fixed bug with detecting parameter size for MBCS strings
- Fixed problem with detecting slash with text after it as a delimiter in TDAScript
- Fixed bug with SetOrderBy and SetWhere when there is no space before ORDER or WHERE
- Fixed bug with executing large file in Unicode format
- Fixed bug with setting right datatype for nvarchar parameter
- Fixed bug with getting all error messages, when multiple errors are generated

#### 4.80.0.52 13-Oct-09

- Added support of Base table cursor for SQL Server Compact Edition
- Now the AssignConnect method copies transaction state
- Now TFMTBcdField fields are trimmed if they are larger than MaxFMTBcdDigits
- Fixed problem with help registration under RAD Studio 2010
- Fixed problem with loading DataSet Manager under RAD Studio 2010
- Fixed bug with locating records using the LocateEx method and the lxNearest option
- Fixed bug with SQL Generator in design-time
- Fixed bug with AV failure in MemData
- Fixed bug with calculating count of using the sqlncli library
- Fixed bug with FieldTypesWithSize ambiguity under C++Builder

#### 4.80.0.51 10-Sep-09

- Embarcadero RAD Studio 2010 suppored
- Added the TCustomMSDataSet.HasNextResultSet method to check if the next recordset is available
- Now the subdetail is refreshed before the AfterRefresh event of the detail is called
- Fixed bug with processing DateTime fields on table locking

#### 4.70.0.50 01-Sep-09

- Added the TMSDataSetOptions.DisableMultipleResults property allowing to forbid using multiple results for quickly closing dataset
- Now the value from the master dataset has priority over the DefaultExpression value
- Fixed bug with parsing TDAScript.Statements
- Fixed bug with RefreshQuick for query with fields that have similar names in several tables
- Fixed bug with not unlocking record in the CachedUpdates mode if no fields were changed
- Fixed bug with GetServerList on getting local SQL Server name
- Fixed bug with inserting record when Pooling is enabled
- Fixed bug with calculating count of using the sqlncli library
- Fixed bug with correct settings of parameters for TMSCompactConnection
- Fixed bug with checking DB file version of SQL Server Compact Edition in multi thread application

#### 4.70.0.48 24-Jun-09

- Added the TMSDump.Options.DisableConstraints property to dump multiple tables with foreign keys
- Fixed bug with local sorting in CachedUpdates mode
- Fixed bug with raising exceptions on locating records when IndexFieldNames is set
- Fixed bug with calculating connection count in Disconnected mode
- Fixed bug with calling the OnError event on connection failure when Pooling is enabled
- Fixed bug with macros in TDAScript
- Fixed bug with getting field aliases for SQL Server Compact Edition
- Corrected packets for N++ Builder 6

#### 4.70.0.47 27-May-09

- Added the Disconnected property to TCustomDADataSet
- Added support for TQuery.DataSource property in BDE Migration Wizard
- Added distinction between empty string and null value when saving/loading string fields in TVirtualTable
- Improved work of SQL instance detection
- Fixed bug with the GotoCurrent method
- Fixed bug with LocalMasterDetail and Prepare method
- Fixed bug with FullRefresh and macros
- Fixed bug with processing NTEXT fields when using TDataSetProvider for Delphi 2009
- Fixed bug with processing Unicode symbols in TMSXMLField
- Fixed bug with calculating connection count on fetch
- Fixed bug with generating SQL queries by "Sql Generator" of TMSQuery component in design-time when Options.QuoteNames is set to True

#### 4.70.0.46 02-Apr-09

- Added NoPreconnect property to TMSScript for executing CONNECT and CREATE DATABASE commands
- Fixed bug with DetailDelay and refreshing closed dataset
- Fixed bug with not calling UnregisterClient for internal command of dataset
- Fixed bug with refreshing record when RefreshOptions.roBeforeEdit is set and LockMode = lmImmediate
- Fixed bug with detecting DBMonitor on 64-bit Windows
- Fixed bug with stored procedures the names of which contain dot character
- Fixed bug with executing ApplyUpdates when LockMode = lmOptimistic in the CachedUpdates mode

#### 4.70.0.45 26-Feb-09

- Added ability to backup user defined query to file or stream in TMSDump
- Fixed bug with not working CachedUpdates in TVirtualTable
- Fixed bug with suppressing errors in TVirtualTable.LoadFromFile
- Fixed problem with restoring current row after refresh
- Fixed bug when statements, executed on TClientDataSet.ApplyUpdates, were not shown in DBMonitor
- Fixed access violation on the TClientDataSet.ApplyUpdates call
- Fixed bug for Delphi 2009 with editing varchar fields which contain Unicode symbols
- Fixed bug with DMLRefresh when the Params count is more than zero
- Fixed bug with loading BLOB values through TMSLoader.LoadFromDataSet
- Fixed bug in TCustomDADataSet.PSGetKeyFields
- Bug in Delphi 2006 and above with the BcdCompare function avoided

#### 4.70.0.44 05-Jan-09

- Fixed bug with treating some string elements as equal by CompareString

#### 4.70.0.43 09-Dec-08

- Fixed bug for Delphi2009 with updating varchar fields which contain Unicode symbols
- Fixed bug with processing date/time fields in prepared stored procedures for SQL Server 2008

#### 4.70.0.42 19-Nov-08

- Added support of DATE and TIME field types for SQL Server 2008
- Added support of SQL Server NativeClient 2008 in the TMSConnection.ConnectString property (Provider=SQLNCLI10.1)
- Added the otConstraintColumnUsage option in the TMSObjectType enum of the TMSMetadata.ObjectType property
- Added calling the TfrxReport.OnBeforeConnect event when TfrxDACDatabase is connecting
- Fixed bug with AV failure when RetryMode is set to rmReconnectExecute in the OnConnectionLost event handler
- Fixed bug with field names containing '.'
- Fixed bug with name compatibility with ReportBuilder
- Fixed bug with assertion failure on editing components in design time for Delphi 5
- Fixed bug in Migration Wizard with converting binary forms in Delphi 2009
- Fixed several bugs in DataSet Manager
- Fixed bug with Fatal Error LA30 raising

#### 4.70.0.41 23-Oct-08

- Delphi 2009 and C++Builder 2009 supported
- Extended Unicode support for Delphi 2007 added (special Unicode build)
- Free Pascal 2.2 supported
- Powerful design-time editors implemented in Lazarus
- Completed with more comprehensive structured Help

#### 4.50.0.39 22-Sep-08

- Improved working with master/detail relationship when LocalMasterDetail=True
- Optimized working the TOLEDBConnection.AssignFieldDescs method
- Fixed bug with AV on getting OldValue for BLOB fields
- Fixed bug with processing parameter of XML type of StoredProcedure

#### 4.50.0.37 21-Aug-08

- Added support of MS SQL Server 2008 Native Client
- Fixed bug with stored procedures, whose result set depends on parameter values

#### 4.50.0.36 11-Jul-08

- Added ability to recognize unquoted True/False values in DefaultExpression
- Added support of NOT LIKE keyword in the TDataSet.Filter property
- Improved working with master/detail on inserting new records
- An event to handle exceptions on restoring added in TMSDump
- Improved generating scripts in TMSDump with the IdentityInsert option set to True
- Fixed several bugs when working with inactive datasets
- Fixed bug with filtering by TLargeIntField
- Bug with autocommit after deleting records fixed
- Fixing bug with calling the OnError event when LocalFailover is set to True
- Fixed bug with BlobType in TMSXMLField
- Fixed bug with posting some kinds of memo fields
- Fixed bug with executing SELECT queries for functions
- Fixed bug with loading empty BLOB values through TMSLoader
- Fixed bug with setting the AutoGenerateValue property of fields in TMSTable
- Fixed bug with multiple connections to databases of SQL Server Compact Edition 3.1
- Fixed bug with opening queries when the SQL property is not assigned
- Added ability to call Code Editor from component editors

#### 4.50.0.35 11-Jun-08

- Fixed bug with multiple order fields in TMSTable
- Bug with generating update SQL with IS NULL in the WHERE clause at design-time fixed
- Fixed bug with the SetOrderBy method
- Fixed bug with determining primary key fields
- Fixed bug with AV failure on assigning the OnFilterRecord event handler
- Fixed bug with KeepDesignConnected = False and TMSTable opened in design time
- Fixed bug with handling NCHAR fields in TMSSQLMonitor
- Fixed bug with breaking fetch in NonBlocking mode
- Fixed bug with installation on computers without .NET Framework

#### 4.50.0.34 23-May-08

- Added compatibility with UniDAC
- Improved support of default field values
- Added ability to specify key fields for a dataset
- Added support of automatic records locking
- Added an option for setting lock wait timeout
- Improved functionality of getting local SQL Server instance names
- Added ability to manage field types creation for the NTEXT data type in BDS 2006 and higher
- Fixed bug with change notifications for queries with macros
- Fixed bug with invalid class type cast in SDAC Trial Edition
- Fixed bug with multiple connections to SQL Server Compact Edition
- Fixed bug with compressing BLOB values

#### 4.35.1.16 04-Apr-08

- Added ability to determine version of SQL Server Compact Edition database file on connect
- Improved processing of default values
- Fixed bug with executing scripts from files larger than 2GB
- Fixed bug with locating records using the LocateEx method and the lxNext option
- Access violation on local sorting fixed
- Fixed bug with calling the OpenNext method in FetchAll=False mode
- Fixed access violation on RefreshQuick of detail dataset when the master dataset is closed
- Fixed bug with storing some settings of TMSConection.ConnectionString
- Fixed bug with change notifications for queries with parameters
- Fixed bug with truncation BLOB values loaded by TMSLoader
- Removed the "Wrong MDAC version." exception

#### 4.35.1.15 18-Feb-08

- Enhanced local sorting with new options (DefaultSortType option, BIN sort type in IndexFieldNames)
- Added support for SQLInsert, SQLUpdate, SQLDelete properties for updating with TDataSetProvider
- Improved bookmarks comparison
- Fixed bug with corrupting BLOB fields on CancelUpdates method call
- Fixed bug with accessing persistent BLOB fields in closed dataset
- Fixed bug with assigning string values with length that exceeds TMSParam.Size to parameter
- Fixed bug with determining default expressions for BIT fields defined as constants in SQL Server 2005
- Fixed bug in TMSTransaction with handling errors when starting transactions for multiple connections
- Fixed bug with header files for C++Builder 2006 and C++Builder 2007

#### 4.35.0.14 09-Jan-08

- SQL Server Compact Edition 3.5 supported
- Tested with SQL Server 2008 CTP 4
- Added support for output XML parameters
- Added ability to obtain extended error information for SQL Server Compact Edition
- Added ability to link TMSCompactConnection to TMSScript
- Fixed bug in master/detail for shifting columns count in the detail dataset
- Fixed several bugs with records location
- Fixed bug with TCRBatchMove whose source dataset does not reflect actual record count in the RecordCount property
- Fixed some bugs with TMSXMLField
- Fixed bug with setting TCustomMSConnection.ConnectString property
- Fixed bug with field names and SQL Server Compact Edition under Windows Vista
- Fixed bug with recognizing primary key fields for SQL Server Compact Edition
- Fixed bug with setting the Bound property for parameters
- Fixed bug with locking records in detail datasets
- Fixed bug with DMLRefresh on BLOB fields

#### 4.30.0.13 14-Nov-07

- Added support for TVariantField in VirtualTable
- Added ability to upgrade SDAC without uninstallation of previous SDAC builds
- Now an exception is raised when uaFail is assigned to UpdateAction in OnUpdateRecord event handler
- Optimized system resources usage for AutoRefresh
- Fixed bug with automatic quotation of field names containing spaces
- Fixed bug with the QuoteNames option in TMSTable
- Fixed bug with parameter data type after assigning its value using the AsWideString property
- Fixed bug with delayed disconnection under CLR
- Fixed bug when working with prepared stored procedures under CLR
- Fixed bug with Local Failover and the prSQL provider
- Fixed bug with using SDAC in DLL
- Fixed bug with determining read-only fields for SQL Server 7
- Fixed bug with second script execution after the first execution failed with an exception
- Fixed bug with parsing numbers followed by parameters whose names consist of digits
- Fixed bug with locating variant values in TVirtualTable
- Fixed bug with filtering in FetchAll=False mode

#### 4.30.0.12 27-Sep-07

- CodeGear RAD Studio 2007 supported
- Added enhanced support for User-defined Types of SQL Server
- Added support for distributed transactions with the new TMSTransaction component
- Added support for Query Notifications with the new TMSChangeNotification component
- Improved support for SQL Server Compact Edition with the new TMSCompactConnection component
- Added support for getting results from queries with the FOR XML clause in readable view
- Added ability to lock records and tables
- TMSMetaData is enhanced with more schema row sets
- Added support for connection encryption without certificate validation
- Added support for detailed error messages output to DBMonitor
- Added ability to force record fetch for datasets open in FetchAll=False mode
- Added ability to use the default login database if no database is assigned on connect
- Improved color schema of syntax higlighting with SynEdit
- Added the OnProgress event in TMSLoader
- Optimized memory utilization when loading XML files by the TVirtualTable.LoadFromFile method
- Added ability to send the DataSetChange event after dataset open
- Fixed bug with using the Filter property for FindFirst and similar methods when Filtered is False
- Fixed bug with calling First after changing UpdateRecordTypes in Edit mode
- Fixed bug with Disconnected Model and Pooling
- Fixed bug with commiting updates in CachedUpdates mode
- Fixed Assert with TCRBatchMove and BLOB fields
- Avoided design-time bug with UniSynEdit
- Bug with save/load data to/from XML fixed
- Fixed several bugs with NonBlocking
- Fixed bug with RefreshQuick and master/detail relationships

#### 4.10.0.10 02-Aug-07

- Added the XML data type to the parameters list in design-time parameters editor
- Fixed bug with PSGetDefaultOrder method freezing for queries with complicated ORDER BY clauses
- Fixed bug in TCRBatchMove with mapping fields by name when Fields count and FieldDefs count are not equal
- Fixed bug with adding fields in TVirtualTable
- Fixed bug with Pooling and Local Failover
- Fixed bug with "Invalid Variant Type" exception under Windows 2000 when TDataSet.Refresh is called
- Fixed bug with performance penalty when processing lookup and calculated fields
- Problem with DBMonitor integration under Windows Vista Ultimate fixed
- Bug with field names quotation in CRDBGrid fixed
- Fixed bug with freezing in NonBlocking mode
- Fixed bug with setting wrong parameter types for queries provided to SQLInsert, SQLUpdate, SQLDelete, SQLRefresh
- Fixed bug with setting the CanModify flag for computed fields
- Fixed bug with ReturnParams option and parameter types in Update SQLs
- Fixed bug with the RereshQuick method for queries with the WHERE clause
- Fixed bug with setting the Hidden flag for FieldDescs with SQL Server Compact Edition and Windows Vista
- Fixed bug in TMSStoredProc with Local Failover and Disconnected Model
- Fixed bug compound field names quotation
- Changed ancestor of TMSXMLField from TMemoField to TField due to Delphi field types limitation

#### 4.10.0.9 12-Jun-07

- C++Builder 2007 supported
- TMSConnection.Options.FailoverPartner property added
- Added ability to customize information view about fields in DataSetManager
- Replacement of the TwwDataSource with TMSDataSource in the BDE/ADO Migration Wizard added
- Performance of some operations in DataSet Manager improved
- Bug with the BaseSQL property set to an empty string after assigning macro values fixed
- Bug with incorrect registry key used by connect dialog to save/load the Server value fixed
- Bug with refreshing records in detail dataset fixed
- Fixed bug with lookup and data fields with the same name
- Fixed bug with reopening queries in NonBlocking mode
- Fixed bug with calling the RefreshQuick method for the detail DataSet
- Fixed bug with calculated fields with ftDate and ftTime data types
- Fixed bug with comparing string values during locate ans sort operations
- Fixed bug with prepared stored procedures, whose result set depends on parameter values
- Avoided Delphi 6 bug in the TryStrToBool function
- Fixed bug with retrieving stored procedure output parameters with DECIMAL data type
- Fixed bug with raising exceptions when locating records on filtered recordsets
- Removed restriction on datasets that TMSDataSource can be associated with
- Minor bugs in DataSet Manager fixed

#### 4.00.0.7 16-May-07

- Added ability to drag datasets between connections in group by connections mode in DataSet Manager
- Added ability to assign DataSource and DataField properties of DevExpress DB-aware controls automatically in DataSet Manager
- Extended abilities of assigning default controls for datasets and fields in DataSet Manager
- Fixed bug in the MSDataAdapter component with reading BLOB fields
- Fixed bug with AV failure after second call to CommitUpdates when there are skipped records in cache
- Bug with processing stored procedures with XML parameters fixed
- Fixed bug with retrieving information about foreign keys of a table using the TMSMetaData component
- Fixed AV bug with opening detail DataSet when master DataSet is not TCustomMSDataSet descendant
- Fixed bug with "DisposeBuf failed" exception on updating string fields in CachedUpdates mode
- Bug when UnPrepare is not called for TCustomDASQL on changing value of a macro fixed
- Fixed bug with loading DataSet Manager package in a localized IDE
- Fixed minor bugs in DataSet Manager
- Fixed Access Violation bug on Delphi 2006 exit on Windows Vista
- Fixed minor bugs in installation for C++Builder and Delphi 2007

#### 4.00.0.6 20-Apr-07

- Added support for DevExpress controls in DataSet Manager
- Added support for using TMemDataSet.IndexFieldNames with RefreshQuick
- FastScript v1.9 support added
- Fixed bug with SQL Generator in design time
- Fixed bug with trimming SQL texts in design-time editors
- Bug with setting RecNo property for filtered datasets fixed
- Bug with PSGetTableName returning incorrect value after changing the SQL property fixed
- Bug with calling TDataSet.Edit for master DataSet in CachedUpdates mode fixed
- Minor bugs in installation fixed
- Fixed bug in SQL Generator with generating REFRESH statements for detail DataSet
- Fixed AV failure with deleting records in CachedUpdates mode
- Fixed bug when detail DataSet is refreshed on switching master DataSet to Edit mode
- Fixed bug with loading files in TMSScript editor
- Fixed bug with calling design-time editors of TDADataSource descendants by double click
- Fixed access violation when loading DataSet Manager package under Delphi 2007 and Windows Vista
- Fixed bug with DataSet Manager when IDE freezes on loading a form with a large quantity of datasets
- Fixed bug with SQL Server Compact and databases with maximum database size greater than 128 MB
- Fixed bug with executing parametrized queries in Detail DataSet from design-time editor
- Fixed bug with the RefreshQuick method and SELECT statements containing column aliases
- Fixed bug in RefreshQuick method with semicolon at the end of the SELECT statement
- Fixed bug with displaying invalid object property type in object inspector
- Fixed bug with filter expression that contains several consecutive left brackets

#### 4.00.0.5 06-Apr-07

- TCustomMSDataSet.CreateProcCall and TMSSQL.CreateProcCall methods added
- DataSet Manager stability improved
- Fixed bug in SQL Generator with complex SELECT statements
- Bug with setting RecNo property for filtered datasets fixed
- Bug with Locate on ordered data fixed
- Fixed bug with XmlTextReader.Eof property under C++Builder
- Internal error in Delphi 5 fixed
- Fixed bug with calling RefreshQuick method for SDAC DataSet with parameters in query
- Fixed bug with identity columns in SQL generator

#### 4.00.0.4 20-Mar-07

New functionality:

- Delphi 2007 for Win32 supported
- Disconnected model for working offline and automatically connecting and disconnecting supported
- Local failover for detecting connection loss and implicitly reexecuting some operations supported
- Added DataSet Manager to control project datasets
- New TMSScript component for easy execution of multistatement scripts with the following features added:
  - Support for executing individual statements in scripts
  - Support for executing huge scripts stored in files with dynamic loading
  - Ability to use standard MS SQL client tool syntax
- New component for transferring data between all types of TDataSets descendants added
- New TMSServiceBroker component for SQL Server 2005 queuing and reliable messaging added
- New TMSLoader component for improving records insertion performance added
- New TMSDump component for loading data to and from the server added
- Data export and import to/from XML supported
- WideMemo field type in Delphi 2006 supported
- Support for sending messages to DBMonitor from any point of your program added
- Added asynchronous execute and fetch modes
- Compressed BLOBs supported

Support for more MS SQL server functionality:

- MS SQL Server Compact Edition supported
- Multiple Active Result Sets (MARS) supported
- Support for new data types, including XML, varchar(MAX), nvarchar(MAX), varbinary(MAX) added
- Support for a new level of transaction isolation added
- Support for more server objects in TMSMetaData added
- Stored procedure parameters with default values supported

Extensions and improvements to existing functionality:

- General performance improved
- Master/detail functionality extensions:
  - Local master/detail relationship support added
  - Master/detail relationship in CachedUpdates mode support added
- Working with calculated and lookup fields improvements:
  - Local sorting and filtering added
  - Record location speed increased
  - Improved working with lookup fields
- Greatly increased performance of applying updates in CachedUpdates mode
- Connection pool functionality improvements:
  - Efficiency significantly improved
  - API for draining the connection pool added
- Ability to customize update commands by attaching external components to TMSUpdateSQL objects added
- Support for DefaultValues on record insertion added
- Some performance improvements achieved:
  - NUMERIC fields fetching
  - Update commands execution while editing data set
  - DataSet refreshing
  - Records refreshing after updates and inserts
- Support for selecting database name in TMSConnectDialog added

Usability improvements:

- Syntax highlighting in design-time editors added
- Demo projects became better organized and clearer
- FAQ added

#### 3.80.0.34 05-Dec-06

- Fixed bug with TraceFlags in DASQLMonitor (D16224)
- Fixed bug with TDAParam.AsDate property (D16213)
- Fixed bug with wrong value of the StatementTypes variable in the BeforeUpdateExecute event
- Bug with AV failure when modifying VirtualTable data in design time fixed

#### 3.80.0.33 31-Oct-06

- Bug with ApplyUpdates and OnUpdateError in SDAC Trial fixed
- Bug with comparing Unicode strings fixed
- Bug with BeforeDisconnect event lost in design time fixed
- Bug with debug mode in design time fixed
- Bug with RefreshRecord in CachedUpdates mode fixed
- Bug with mouse wheeling in FilterBar and Search bar of CRDBGrid fixed (15675)

#### 3.80.0.32 29-Sep-06

- Limited support added for Windows Vista Beta 2
- Memory usage optimized for tables with many fields
- Fixed bug with SQLNCLI provider and server cursors
- Fixed bug with unquoted '@' symbol in connection string
- Design-time bug with IDE version in TMSConnectionEditor in Delphi 2005 fixed
- Fixed bug with macros and "&" operand

#### 3.80.0.31 28-Aug-06

- Support for Professional editions of Turbo Delphi, Turbo Delphi for .NET, Turbo C++ added
- Bug with automatic detail field value generation fixed (D12886)
- Fixed bug with TrimVarChar
- Fixed bug with FindKey method when the primary key has field of type Int64 (D12558)
- Added capability to use quoted field names in IndexFieldNames property (D10091)
- Bug with canceling edit on record with BLOB fields fixed
- Bug with WideString lookup fields size fixed
- Bug with loading wide strings in TVirtualTable fixed
- Added support for macros names in which first symbol is digit
- Bugs with parsing macros fixed
- Bug with filtering DateTime fields when filter expression format differs from one in local system fixed (D12823)

#### 3.70.3.30 07-Jul-06

- Fixed bug with wrong line number in DAScript.EndLine property (M12015)
- Fixed bug with filtering empty strings (S12329)
- Bug with using calculated and lookup fields in Master/Detail relationship fixed
- Fixed bug with design-time editor for Detail dataset in Master/Detail relationship (M12021, M11914)
- Bug with modifying FieldDefs in TVirtualTable fixed
- Performance of SaveToFile and LoadFromFile functions in TVirtualTable improved (D12435)
- Bug in TVirtualTable Editor fixed

#### 3.70.3.29 31-May-06

- New MS SQL Server 2005 data types supported
- TMSConnection.Options.InitialFileName property added
- Modifying FieldDefs in TVirtualTable component accelerated
- Fixed bug with memory leak in TCustomDADataSet (11636)
- Bug with calling Parameter Editor from Object Inspector fixed (11671)
- Bug with Master-Detail linked by parameters fixed

#### 3.70.2.28 18-May-06

- SDAC is now compatible with InterBase Data Access Components
- Bug with Prepare method in Delphi 5 fixed

#### 3.70.1.27 12-May-06

- Fixed bug with loosing connection for FetchAll=False datasets (M11398)
- Added support for MIDAS TDataSet.PSExecuteStatement ResultSet parameter (M11351)
- Fixed bug with AV failure in ApplyUpdates after CommitUpdates
- Bug with local filter under CLR fixed (11291)
- Bug with using alternative memory managers fixed

#### 3.70.1.26 14-Apr-06

- Fixed bug with positioning in grid after TCustomDADataSet.Locate (11256)
- Fixed bug with Master/Detail relations and local sorting and filtering (11254, 11255)
- TCustomDADataSet.Locate now centers position in DBGrid (10976)
- Bug with displaying query objects in objects tree in DBMonitor fixed
- Optimized using of system resources when opening query (O11270)
- Fixed bug with design-time SQL Generator
- Added OLE DB limitation workaround when preparing query with parameters in subquery

#### 3.70.1.25 10-Mar-06

- Ability of trimming (N)VARCHAR fields with CustomDADataSet.Options.TrimVarChar property added
- Added support for MIDAS master-detail relations
- Fixed bug with fetching (N)VARCHAR(4000) fields
- Fixed bug with erroneous exception on TDAParam.LoadFromStream
- Bug with AV failure when calling CommitUpdates method of inactive dataset fixed
- Bug with error failure when assigning empty dataset to VirtualTable under CLR fixed

#### 3.70.0.24 26-Jan-06

- Support for Delphi 2006 added
- Support for MS SQL Server 2005 added
- FastReport 3.20 support added
- Fixed bug with single MacroChar in string constants inside SQL
- Bug with invalid processing of SQL statements when using SQL keywords as macros name fixed
- Fixed MS SQL server bug with processing 'SET STATISTICS IO ON' statements
- Fixed bug with using CheckRowVersion property and RefreshRecord method

#### 3.55.2.22 19-Dec-05

- Fixed bug with trimming VARCHAR fields
- Bug with restoring BaseSQL property fixed

#### 3.55.2.21 07-Dec-05

- TMSConnection.Options.PersistSecurityInfo property added
- TCustomDADataSet.FindKey, TCustomDADataSet.FindNearest methods added for BDE compatibility
- Fixed bug with Locate by multiple fields
- Fixed bug with unchanging RecordCount value after CancelUpdates
- Bug with refreshing record after changing SQL property fixed
- Fixed SetWhere function bug
- Fixed bug with server cursors when RefreshOptions property contains roBeforeEdit flag

#### 3.55.1.20 24-Oct-05

- Fixed bug with open detail TMSTable when master is not opened
- Fixed bug with design-time SQL Generator
- Fixed bug with EOLEDBError.MessageWide
- Bug with updating FilterSQL fixed
- Bug with VirtualTable registration in CBuilder fixed
- Bug with VtReg.pas in Pro version fixed
- Bug with closing dataset (SQL contains macros) when the InsertSQL property changes fixed
- Bug with incorrect sequence of calling BeforeClose, BeforeDisconnect events fixed

#### 3.55.1.19 11-Oct-05

- Unicode error messages support added with EOLEDBError.MessageWide
- SQL Generator improved: now in design-time <FieldName> format is used instead of <FieldNo>
- Fixed some bugs in design-time SQL Generator
- Fixed bug with Master/Detail relations on string keys that differ in case only
- Bug with reexecution after SQL statement changed fixed
- Bug with assertion failure with OnNewRecord fixed
- Fixed bug with detail refresh when field referenced by MasterFields property is empty
- Fixed bug with extra detail record posts after master record changed
- Bug with firing AfterScroll Event after detail dataset refresh fixed
- Bug with simultaneous use of several DAC products fixed
- Bug with changing FilterSQL of inactive dataset fixed
- Bug with column sizing with CRDBGrid.OptionsEx.dgeStretch=True at design-time fixed
- Bug with TCRColumn.SummaryMode=smLabel for string and date fields fixed

#### 3.55.1.18 02-Sep-05

- Deferred detail dataset refresh feature with TCustomDADataSet.Options.DetailDelay property added
- Fixed bug with locating, filtering and local sorting of strings that contain '--'
- Fixed DisposeBuf bug

#### 3.55.0.17 02-Aug-05

- Optimized macros processing
- Fixed bug with using keywords as param name
- Fixed bug with local sorting in dsEdit state
- Fixed bug with getting Null for Blob fields
- Improved behavior on parsing inline comments

#### 3.55.0.16 05-Jul-05

- Fixed performance bug with calling Execute (ReadOnly = True)
- Fixed bug with sorting by GUID fields
- Bug with TDAParam.AsString with TDataTime parameters fixed
- Fixed bug with TMSConnection.ConnectioString design time editor

#### 3.55.0.15 30-May-05

- Ability of automatic preparing query with TCustomDADataSet.Options.AutoPrepare property added
- Ability to synchronize position at different DataSets with TCustomDADataSet.GotoCurrent method added
- Optimized MSSQLMonitor BLOB parameters processing
- Improved behavior on editing master key on Master/Detail relation
- Removed TMSStoredProc.ParamCheck property from design-time
- Fixed bug with ignoring MSConnection.Options.WorkstationID
- Fixed bug with DADataSet.CheckBookmark on filtered datasets
- Fixed bug with Transactions on connection lost
- Fixed bug with reconnect on connection lost

#### 3.50.0.14 29-Apr-05

- Update Pack 3 is required for Delphi 8
- Fixed bug with FetchAll = False and QueryRecCount = True for Detail queries (6759)
- MSQuery.AddWhere improved

#### 3.50.0.13 29-Mar-05

- Fixed bug with quoting fields in SQLRefresh
- Fixed bug with FieldDefs.Update and prepared TMSStoredProc (6147)
- Fixed bug with roAfterUpdate and changing primary key values (6389)

#### 3.50.0.12 24-Feb-05

- FastReport3 engine and demo added
- TCustomDADataSet.UpdateObject support for MIDAS added
- Fixed bug with CLR BLOB Locate
- Fixed bug with FmtBCD Locate

#### 3.50.0.11 24-Jan-05

- Support for Delphi 2005 added
- Support for MS SQL Server 2005 Beta 2 added
- Guid fields support for VirtualTable added
- Fixed some bugs with connection pooling
- Fixed bug MSParam.Size on CLR
- Fixed bug with KeepDesignConnected
- Fixed bug with design-time SQL generator and macros
- Fixed bug with design-time MSStoredProc SQL generator
- Fixed bug with IndexFieldNames on identical values
- Fixed infrequent bug with IndexFieldNames
- Fixed bug with params on MSQuery.Execute with SELECT
- Fixed bug with disconnect on fatal error

#### 3.00.2.9 23-Nov-04

- Fixed bug with IndexFieldNames and Locate
- Fixed bug with setting MinValue and MaxValue for tinyint fields
- Fixed bug with KeepDesignConnected

#### 3.00.2.8 28-Oct-04

- Fixed C++Builder hpp bug

#### 3.00.2.5 21-Oct-04

- lxPartialCompare option for DataSet.LocateEx added
- Fixed bug with OnFilterRecord and Blob fields (4962)
- Fixed bug with Reconnect and prepared statements (4910)
- Fixed bug with BlobField.SetAsString

#### 3.00.1.3 10-Sep-04

- Common class DADataAdapter isolated to CoreLab.Dac.AdoNet.dll library
- Fixed bugs with ctKeyset, ctDynamic and default values (4082)
- Fixed bug with evaluation period in Trial version
- Support for TDAConnectionOptions.AssignTo added
- Fixed bug with filtering NULL string values (4776)
- Fixed bug with large blobs in TVirtualTable (4769)

#### 3.00.0.2 20-Aug-04

- Fatal errors processing improved
- Delphi 7.1 bug fixed
- MDAC 2.8 Lost connection bug fixed
- Fixed bug with QueryIdentity and complex table names (4634)
- Fixed bug with quoting complex names

#### 3.00.0.1 21-Jul-04

- Support for Delphi 8 added
- Local sorting ability with TMemDataSet.IndexFieldNames added
- Connection pooling support
- TCRDBGrid sources in Standard edition
- MSDataAdapter component added
- .NET Windows Forms demo project added
- ASP.NET demo project added
- TMSConnection.GetStoredProcNames, GetTableNames, GetDatabaseNames added
- TMSConnection.ClientVersion, ServerVersion added
- Milliseconds support added
- TCRColumn.TotalValue property added
- New time trial limitation
- Fixed StackOverflow bug with opening empty ctStatic cursors
- Fixed bug with Refresh server cursors (4478)
- Fixed bug with small memory leak on SQL error (DbxSda4344)
- RefreshRecord now updates timestamp field as default
- Fixed bug with updating non-dbo owned tables (4193)
- Fixed bug with CustomDADataSet.Options.ReturnParams (4159)
- Fixed bug with CRDBGrid
- Fixed bug with getting RecordCount if Filtered = True (4125)
- Fixed bug with getting OldValue after Insert
- Fixed bug with TrimFixedChar and dll

#### 2.45.2.25 15-Mar-04

- Mouse wheel support added to CRDBGrid
- Local constraints for ctKeyset, ctDynamic disabled (4082)
- Fixed bug with quote char in Filter property
- Fixed bug with assigning name with spaces to Database property
- Fixed bug with getting Identity value that exceeds MaxInt (4081)
- Fixed bug with RefreshRecord and binary key fields (4089)

#### 2.45.2.24 05-Feb-04

- Fixed bug with restoring position after Refresh (M3962)
- Fixed bug with TCustomMSDataSet.PSGetKeyFields (M4001)

#### 2.45.2.23 30-Dec-03

- Fixed bug with processing ftTime and ftDate parameters
- Fixed bug with setting Null value for string parameters
- Fixed bug with processing Blob and Memo parameters (3709, 3726)

#### 2.45.2.22 24-Nov-03

- Fixed bug with getting RecordCount (ParamCheck = False) (3524)

#### 2.45.2.21 02-Oct-03

- Methods TMSSQL.BreakExec and TCustomMSDataSet.BreakExec added
- Property TMSConnection.Options.AutoTranslate added
- Method ExecSQL in TMSConnection added
- Methods GetTableNames and GetDatabaseNames in TMSConnection added
- Unicode support for Locate on Win9x added
- Fixed bug with MSDataSet.BeforeUpdateExecute and AfterUpdateExecute (3347)
- Fixed bug with MSParam.Size (3345)
- Fixed bug with calling Refresh after RefreshRecord (M3269)
- Fixed bug with MSDataSet.UpdatingTable set at design-time (3164)
- Bug with opening queries (FilterSQL <> '', StreamedActive = True) fixed (M3497)

#### 2.45.1.20 02-Jul-03

- Fixed bug with possible AV on destroying DataSet in Delphi5 (3069)

#### 2.45.1.19 10-Jun-03

- Parameter processing for complex queries optimized (3058)
- Design-time bug occured in Delphi5 and CBuilder5 fixed

#### 2.45.1.18 05-Jun-03

- SQL Generator improved - support for complicated statements added (2993)
- SQL Generator improved - "Quote names" checkbox added
- Design-time SQL Generator was simplified
- TParam -> TDAParam
- Bug on Post (Insert/Append) when InsertSQL execution fails fixed
- Fixed bug with ApplyUpdates if Options.ReturnParams is False and Options.QueryIdentity is True
- Fixed bug on PSGetKeyFields after dataset is closed(3034)
- Fixed bug with wildcard Locate on WideString fields
- Fixed memory leak on posting BLOB data with ctKeyset, ctDynamic
- Fixed bug with trimming char fields having empty values (2987)
- Fixed bug with calling RefreshRecord on SELECT w/o data fields
- Fixed bug with calling RefreshRecord on ctDynamic (3053)
- Fixed bug with MultiSelect DBGrid for ctKeySet, ctStatic (3054)

#### 2.45.0.17 05-May-03

- property MSConnection.Options.WorkstationID added
- Performance to insert large BLOBs improved
- Fixed bug with using SDAC from dll (2963)
- Fixed bug with getting SharedObj-parameters from datasets with LookUp fields (2948)

#### 2.45.0.16 04-Apr-03

- Performance significantly improved
- event TMSConnection.OnInfoMessage added
- Multiple Errors support added
- EMSError now inherited from EOLEDBError
- property TBlob.AsWideString added
- property MSConnection.Options.ApplicationName added (2813)
- Parameters parsing improved. Symbol ':' in string literals is ignored (2836)
- Network error processing improved (2554, 2571)
- MSConnectDialog improved
- Performance demo added
- Bug with RefreshRecord fixed
- Small memory leak in RefreshRecord on ctKeyset, ctDynamic removed
- Fixed bug with storing unicode strings in Memo fields
- Fixed bug with processing 'Fail' parameter in TMSConnection.OnError (M2876)
- Fixed bug with password storing in MSConnection.ConnectString (2841)
- Fixed bug with design-time SQL Generator (2885)
- Bug with transaction control on ctKeyset, ctDynamic fixed (2885)
- Fixed bug with TMSMetaData.Refresh (2872)
- Fixed bug with changing TMSMetaData.ObjectType

#### 2.40.0.15 24-Feb-03

- WideString support added
- Refresh improved - current record is restored after Refresh call
- Supported types list for TVirtualTable extended. WideString, Smallint, Word, Boolean, Largeint, Currency, Date and Time field
- pes added (2779)
- Performance of VirtualTable.AssignDataSet improved
- Property MSDataSet.Options.QuoteNames added
- Property MSConnection.Options.KeepDesignConnected added
- Property MSConnectDialog.StoreLogInfo published
- Bug with SDAC and ADO incompatibility under CBuilder fixed (2751)
- Bug with clearing old value for Null output parameters fixed
- Bug with wrong setting parameter values in WHERE clause fixed
- Bug with processing empty param values in ConnectString fixed
- Bug in MSTable.Execute fixed
- Support for LIKE expressions in Filter property added(DAC-2706)
- Precision and Size property values setting bug for TBCDField and TFMTBCDField fixed(2723)
- Bug with getting field aliases on old clients fixed (2780)
- Bug with design-time created fields case sensitivity fixed (2663)
- Bug with some memory leak on each connection to server fixed (2679)

#### 2.35.0.14 30-Jan-03

- Improved performance for opening queries with lot of parameters
- Dataset 'with many fields' update performance improved
- 'Connection Lost' error processing improved
- MSDataSet.Locate improved (2589)
- Fixed bug with compiling applications on C++ Builder
- Fixed bug editing MSConnection.ConnectString property on DataModule (2586)
- Getting identity improved for MS SQL 2000 (SCOPE_IDENTITY() instead @@Identity)
- Fixed bug with getting Identity value after inserting to view (2567)

#### 2.35.0.13 04-Jan-03

- Bug with string quote in filter expression fixed (O2532)

#### 2.35.0.12 26-Dec-02

- Speed optimization for opening small queries (2378)
- MSConnection.Options added (2454)
- Limited MSConnection.ConnectString support added (2356)
- Output string and (var)bytes parameters are now obtained from the server
- with the maximum length not depending on set Param.Size (2355)
- DBMonitor client implementation moved to COM server
- Bug with complex table names fixed
- Fixed common bug with lost data in DT-editors(D2137)
- Bug with design-time MSConnection in DataModule fixed (O2290)
- Design-time editor for MSTable bug fixed (2433)
- BLOB fields post for Server Cursors optimized(2117)
- Bug with Master/Detail relation for ClientDataSet fixed (O2423)
- Fixed some bugs with OutOfMem (1979)

#### 2.30 30-Sep-02

- Delphi 7 support
- New memory management model for ftString and ftVarBytes types. Allows significantly decrease memory usage on large tables fetch. Controlled by FlatBuffers dataset option
- Support for blob fields in CachedUpdates mode

#### 2.05 09-Aug-02

- DBMonitor support

#### 2.00 18-Jul-02

- Server cursors supported
- Queries with Multiple Result Sets supported
- Performance improved
- Opening queries without fetching all rows to client (FetchAll = False) supported
- UniDirectional support added
- Quick getting Identity value
- Refresh supported for StoredProc
- FullRefresh supported
- Check for old row values while executing Update and Delete added
- Changed behavior on close connection with open transaction from Commit to Rollback

#### 1.30 21-Mar-02

- C++ Builder 6 is supported

#### 1.20 08-Nov-01

- Added TMSParam class to represent parameters
- Query Analyzer and Enterprise Manager integration added
- Accelerated getting identity value on refresh

#### 1.00 26-Aug-01

- First release of SDAC

© 1997-2015 Devart. All rights reserved.