Компоненты IBX
версия 2.0.2
Исправлен не работающий TIBDatabase.CreateDatabase
Исправлена работа с TIBBlobStream.
+ function TIBCustomDataSet.FN(FieldName): TField; для упрощения доступа к полю
по имени.
версия 2.0.1
TIBCustomDataSet
+property AutoErrorEvent: Boolean. Если True, то в при открытии набора данных,
на события OnPostError и OnDeleteError
(если обработчики у них отсутствуют) назначаются обработчики событий, которые в
случае ошибки автоматически для
UpdateTransaction выполняют RollBack.
Исправления в TIBStringField.
Исправлена ошибка в TIBDatabase.SetDefaultTransaction которая могла приводить к
краху на 64 битных системах.
версия 2.0
Изменения в организации доступа к API FireBird. В предыдущей версии, независимо
от того какое количество компонентов
TIBDataBase используется в программе, существовал единый метод загрузки
клиентской библиотеки, а это значит, что
работа из программы была возможна только с серверами одной и той же версии,
нельзя было загрузить 2 разные
клиентские библиотеки. Работа с компонентами была возможна, только если
предварительно удалось загрузить клиентскую
библиотеку. В версии 2.0 каждый компонент TIBDatabase получил персональный
механизм манипулирования и доступа к
клиентской библиотеке, загрузка библиотеки происходит при установке соединения с
базой, при разрыве соединения,
библиотека освобождается.
В компонент TIBDatabase добавлено свойство LibraryName - в котором указывкается
имя библиотеки. Поиск и загрузка
библиотеки происходит исключительно по указанному имени. Имя может быть указано
с полным путем и без. Если
путь не указан, поиск библиотеки происходит в папке с выполняемой программой. В
свойстве LibraryName
по умолчанию присутствует строка: Для windows - 'fbclient.dll', для Linux - 'fbclient.so'.
Переделан метод получения значения генератора в TIBGenerator. Добавлено свойство
GenerateFor_0: Boolean по умолчанию
True. Это позволяет генерить значение не только когда в поле пусто, но и когда
там 0.
Исправлена сортировка в TIBCustomDataSet. Если в
запросе присутствовали русские буквы запрос для сортировки модифицировался не
правильно.
версия 1.0.13
Изменения в TIBCustomDataSet. изменен метод InternalPost, в случае, если после
выполнения модифицирующего
запроса требуется Refresh текущей записи, то он выполняется после Commit пишущей
транзакции. Учитывая то, что
QRefresh сам выбирает себе транзакцию (если активна UpdateTransaction то
используется она, иначе используется Transaction),
то в случае с Autocommit, все вызовы Refresh пойдут через читающую транзакцию.
версия 1.0.12
Изменения в TIBCustomDataSet. Изменен метод FullRefresh.
Изменения TIBXSQLVAR. Изменен метод SetAsVariant
версия 1.0.11
Изменения в TIBCustomDataSet. Методы Prepare всех SQL запросов проходят через
читающую транзакцию, не
зависимо от UpdateTransaction.
версия 1.0.10
улучшен/исправлен метод TIBDataSet.RefreshAll
Исправлен баг в TIBDataSet с назначением EditFormat для TNumericField и его
производных, если отсутствует
дробная часть (поле для целого числа).
версия 1.0.9
В TIBCustomDataSet добавлено свойство AutoFetchAll: Boolean; Если свойство
установлено в True, то после открытия
набора данных автоматически вызывается FetchAll. Это особенно актуально, если
используется AutoSort,
который вызывает переоткрытие набора данных, и каждый раз требуется получить все
записи с сервера.
Версия 1.0.8.
Исправлены ошибки.
Добавлено свойство OrderFields, с помощью которого можно упорядочить данные по
любому полю.
Внимание! Этот метод не производит локальную сортировку данных в буфере, а
изменяет SQL запрос
в QSelect, добавляя или изменяя инструкцию ORDER BY.
изменен метод Locate, в нем UpperCase заменены на UTF8UpperCase, найденная
строка центрируется.
версия 1.0.7
Изменения в этой версии
Компонент TIBDatabase:
Добавлено свойство DefaultUpdTransaction: TIBTransaction
Компонент TIBCustomDataSet:
При установке поля Database, свойство UpdateTransaction устанавливается
автоматически как из Database.DefaultUpdTransaction
версия 1.0.6
Изменения в этой версии:
Компонент TIBCustomDataSet:
Добавлено свойство UpdateTransaction, с помощью которого работа с базой
происходит в рамках 2х транзакций. SelectSQL будет использовать
Transaction, у этой транзакции рекомендуется назначить следующие параметры:
read
read_committed
rec_version
nowait
С этими параметрами транзакция стартует в режиме только чтение и фактически в
состоянии Commit,
поэтому может жить сколь угодно долго, не оказывая ни какого влияния на работу
базы.
Короткие "пишущие" запросы из InsertSQL, ModifySQL, DeleteSQL будут использовать
UpdateTransaction, для неё
рекомендуется назначить следующие параметры:
write
wait
no_rec_version
read_committed
Это наиболее оптимальный вариант чтобы избежать DeadLock.
RefreshSQL использует транзакции по следующему
алгоритму: Если (UpdateTranscation.InTransacton = True) то
используется UdateTransaction иначе используется Transaction.
После выполнения запроса из InsertSQL, ModifySQL, DeleteSQL, до завершения
транзакции данные текущей записи
автоматически перечитываются с помощью RefreshSQL, поэтому в UpdateTransaction
добавлен параметр read_commited.
Изменен редактор компонента TIBTransaction, в нем вариант Read Commited
вписывает первый набор параметров для чтения,
добавлен вариант Read-write, который вписывает второй набор параметров для
пишущих запросов.
Добавлены свойства AutoStartTransaction и AutoCommit
Добавлена эмуляция Boolean полей и автотримирование строковых полей (TIBCustomDataSet.AutTrim)
Добавлена поддержка выражений RETURNING FIELD в Insert и Update запросах,
поддержка возвращаемых значений
из EXECUTE PROCEDURE, поддержка выражения EXECUTE BLOCK.
В TIBCustomDataSet вложен класс DefFormats для управления форматами
TDateTimeField и TNumericField (и от них производных),
для задания определенного формата конкретного поля (TBooleanField, TNumericField)
добавлено свойство
FieldsFormats: TStings, в нем для задания формата
для поля MYFIELD нужно указать:
MYFIELD=# ### ##0.0000
Добавлено свойство EditFormats которое задает для конкретных полей: EditFormat
для TNumericField и EditMask для остальных.
Пример:
MYDATEFIELD=00.00.0000
Автор изменений Копнин Юрий.
http://www.visual-t.ru