Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: InternalCalc поля
InternalCalc поля
Posted: 2007/05/22 03:18
 
Здравствуйте.

Во-первых большой респект за компоненты. Разбираюсь мене недели, но уже начинаю понимать, что в выборе не ошибся.

Перевел один проект с CDS на ADCDS, всё прошло вполне безболезненно
(CDS использовался как InMemory DS), кроме глюка EhLib с итогами в футерах (после Insert менял позицию, и сбрасывал состояние в dsBrowse, почему с CDS не гючил буду разбираться).

Есть несколько нюансов:

У ADClientDataSet почему-то не работают InternalCalc поля, т.е. в OnCalcFields
присвоение им значения вызывает DS not in edit mode.

Также при использовании агрегатных полей не действует TField.DisplayFormat. Также в режиме вставки агрегаты дают Null, хотя могли бы возвращать значение без учета этой новой строки.

Заранее спасибо.
Re:InternalCalc поля
Posted: 2007/05/23 01:43
 
Привет

Сппасибо за отчет.

У ADClientDataSet почему-то не работают InternalCalc поля, т.е. в OnCalcFields
Исправлено. В методе TADDataSet.SetFieldData замените:
if State = dsCalcFields then
NotEditingError;
на:
if (State = dsCalcFields) and (FieldKind <> fkInternalCalc) then
NotEditingError;

Также при использовании агрегатных полей не действует TField.DisplayFormat.
Исправлено. Изменения войдут в v 2.0. Как временное решение, устанавливайте в коде свойство ResultType для агрегатных полей.

Также в режиме вставки агрегаты дают Null, хотя могли бы возвращать значение без учета этой новой строки.
Исправлено. Изменения войдут в v 2.0.

Удачи,
Дмитрий
Re:InternalCalc поля
Posted: 2007/05/23 02:09
 
Спасибо.

А снапшоты 2-йки где-то выкладываются?

Хотелось бы посмотреть нововведения воочию.

Еще раз большое спасибо за AnyDAC и его поддержку.
Re:InternalCalc поля
Posted: 2007/05/23 02:15
 
Нет, пока не выкладываются. Могу только привести список изменения на данный момент:

- added: SQL script engine. Analogue of Oracle SQL*Plus with
extentions for other supported by AnyDAC DBMS's
- added: dataset persistence (XML, BIN). TADDataSet.LoadFromStream,
LoadFromFile, SaveToStream, SaveToFile methods.
ResourceOptions.Persistent, PersistentFileName, Backup,
etc options.
- added: connection sharing between application modules
See new demo DEMOComp LayerTADConnectionDLL_Sharing
- added: dataset disconnected mode (TADConnection.Offline, Online,
Offlined, ResourceOptions.AutoOnline)
- added: ResourceOptions.ServerOutput, ServerOutputSize.
These options are supported by Oracle and MSSQL.
- added: ResourceOptions.AutoConnect. If True, then connection
will automatically connect / disconnect, then it will be
rerquired. Otherwise exception will be raised.
- added: TADConnection.Execute for simple SQL commands execution
- added: BeforeExecute, AfterExecute, BeforeApplyUpdates,
AfterApplyUpdates, BeforeGetRecords, AfterGetRecords,
etc dataset events
- added: Oracle: support for TIMESTAMP data type
- added: C_AD_Version constant containing AnyDAC sources version
- added: TADDataSet.OpenOrExecute method
- changed: MIDAS / dbGo support improoved
- changed: Removed TADDataSet.FetchParams method
- changed: Renamed TADClientDataSet into TADMemTable
- changed: "AnyDAC Devs" is now hidden by installer
- fixed: Dont process escape sequences inside of string
constants in SQL
- fixed: "Range error" exception on TWideStringField.Value := ''
- fixed: TADParam.Clear(i) clears all
- fixed: ftWideMemo support for D2006/D2007 was broken
- fixed: != and &= was handling as macros
- fixed: Oracle: Instant Client support was broken
- fixed: Oracle: if exception happened at array DML execution,
then RowsAffected is not updated properly
- fixed: AV on IndexFieldNames has the field not in dataset
- fixed: MySQL: the datetime value was null if date and time
parts are zeros. But it is enough a date part to be zero.
- fixed: "DataSet not in edit mode" at assigning value to InternalCalc
field in OnCalcFields event handler
- fixed: DisplayFormat for aggregate fields is not used