Изменения и улучшения
1. В TpFIBDatabase добавлено событие OnIdleConnect:
TOnIdleConnect = procedure (Sender: TFIBDatabase; IdleTicks: Cardinal; var Action: TActionOnIdle) of object;
где TActionOnIdle = (aiCloseConnect, aiKeepLiveConnect);
Событие возникает, если подключение не используется в течение периода, указанного в свойстве TimeOut. Задав значение параметра Action в обработчике события, вы можете либо закрыть подключение, либо оставить его активным.
2. В коде библиотеки заменено использование компонента TTimer на аналогичный. Стандартный класс TTimer оказался не безопасным при использовании в потоках.
3. В TpFIBDataSet добавлены новые события:
OnReadBlobField: TonBlobFieldProcessing и
OnWriteBlobField: TonBlobFieldProcessing,
где TonBlobFieldProcessing = procedure (Field: TblobField; BlobSize: integer; Progress: integer; var Stop: boolean);
Обработчик события вызывается при чтении блоб-поля из базы данных и при записи блоб-поля в базу. Параметр Progress показывает процент загрузки блоб-поля, BlobSize – размер данных в блоб-поле, а указав параметр Stop равным True, вы можете прервать процесс загрузки.
4. В компонент pFIBClientDataSet добавлены методы Commit и RollBack.
5. В компоненте TpFIBDataSet в свойство AutoUpdateOptions добавлена опция UseReturningFields. Если вы укажите ее равной True, то при генерации запросов UpdateSQL и InsertSQL будет использоваться конструкция RETURNING, что позволит получать измененную на сервере запись (сразу после вставки или обновлении) без вызова метода Refresh. Опция работает только начиная с Firebird 2.0 и принимает следующие значения:
rfAll - включать в секцию RETURNING все поля;
rfKeyFields - включать в секцию RETURNING только ключевые поля;
rfBlobFields - включать в секцию RETURNING блоб-поля.
6. Юникодные поля TpFIBDataSet стали совместимыми с компонентом TСlientDataSet.
Исправленные ошибки:
1. Не сохранялись опция poFreeHandlesAfterClose в свойстве TpFIBDataSet.Options и опция qoFreeHandleAfterExecute в свойстве TpFIBQuery.Options.
2. В Delphi/C++ Builder 2009 исправлена ошибка с неверным размером клиентских полей при работе с InterBase и Firebird версии младше 2. Проявлялась при директиве {$DEFINE UNICODE_TO_STRING_FIELDS}
3. Исправления в методе TpFIBScripter.ExecuteFromFile.
4. Исправлена ошибка в методе Locate в версии для Delphi/C++ Builder 2009. Проявлялась при опциях поиска [loCaseInsensitive, loPartialKey].
5. Исправлена ошибка при работе с блоб-полями, проявлявшаяся только с Firebird 2.5, в случае если заполненное блоб-поле сначала очищали и только после этого заполняли.
6. Исправлена ошибка «Malformed string» в версии для Delphi/C++ Builder 2009, возникавшая при попытке записать текстовое блоб-поле при юникодным подключением к базе данных.
7. В версии для Delphi/C++ Builder 2009 не выполнялся метод TpFIBTransaction.SetSavePoint. Исправлено.
8. Восстановлена совместимость GUID-полей с полями TСlientDataSet.
9. В версии для Delphi/C++ Builder 2009 исправлена ошибка в Locate по GUID-полям.
10. В версии для Delphi/C++ Builder 2009 исправлена ошибка при передаче параметров в MIDAS-приложениях.
Описание для анонса: Опубликована новая сборка FIBPlus 6.9.6 для Delphi 5-7, BDS 2005-2007, а также Rad Studio 2009.