Компонент TDataDriverEh. - раздел Программирование, Библиотека компонент EhLib - Руководство разработчика Tdatadrivereh - Это Поставщик Данных В Tmemtableeh И Обработчик Изменений От ...
TDataDriverEh - это поставщик данных в TMemTableEh и обработчик изменений от TMemTableEh. TDataDriverEh это простейший поставщик данных, он является посредником между TMemTableEh и другим DataSet’ом, который умеет работать с базой данных. Хотя многие датасеты могут быть подключены к DBGrid’ напрямую, минуя TMemTableEh, связку (DBGridEh-DataSource-MemTableEh-DataDriverEh-DataSet), данную связку можно использовать если вы хоти иметь преимущества работы DBGridEh в связки с MemTableEh такие как ViewScroll режим, древовидные отображение данных, использование общих данных несколькими компонентами MemTableEh.
В режиме поставщика TDataDriverEh берет данные DataSet'а, определенного свойством ProviderDataSet и копирует их в TMemTableEh. Перед получением первой записи MemTableEh запрашивает у TDataDriverEh структуру полей таблицы и на основе их создает структуру внутреннего массива записей. TDataDriverEh формирует структуру полей на основе списка полей ProviderDataSet’а. Далее по мере требования TDataDriverEh берет значения текущей записи, записывает их TMemTableEh и переходит к следующей записи. Кроме того, TDataDriverEh может обновить значения уже записанной в TMemTableEh записи из ProviderDataSet’а (TMemTableEh.RefreshRecord). TDataDriverEh находит запись в ProviderDataSet'е, используя свойство KeyFields, и переписывает значения полей в запись TMemTableEh. В режиме обработчика изменений, он принимает измененную запись от TMemTableEh, используя свойство KeyFields, находит ее положение в ProviderDataSet, обновляет запись в ProviderDataSet'е, повторно запрашивает ее из ProviderDataSet'а и возвращает запрошенную запись обратно в TMemTableEh.
Используя события TDataDriverEh'а можно контролировать пересылаемые данные между TDataDriverEh'ом и TMemTableEh'ом, а также передавать и обрабатывать изменения из любого другого источника данных отличного от ProviderDataSet'а.
TDataDriverEh содержит следующие события:
OnBuildDataStruct – пишите обработчик этого события, чтобы создать структуру создаваемых данных в TMemTableEh перед принятием первых записей. В событии можно вызвать процедуру TDataDriverEh.DafaultBuildDataStruct для создания структуры по умолчанию.
OnProduceDataReader - пишите обработчик этого события, чтобы переопределить датасет-поставщик данных. Если это событие не присвоено, то поставщиком данных станет ProviderDataSet. В событии можно вызвать процедуру TDataDriverEh.DefaultProduceDataReader чтобы определить датасет-поставщик по умолчанию.
OnReadRecord - пишите обработчик этого события, чтобы присвоить значения полей новой поставляемой TMemTableEh'у записи или указать, что данных больше нет. В событии можно вызвать процедуру TDataDriverEh.DefaultReadRecord чтобы присвоить значения полей по умолчанию.
OnAssignFieldValue - пишите обработчик этого события, чтобы присвоить значение конкретного поля новой поставляемой TMemTableEh'у записи или для обновления записи. Используйте DataValueVersion для определения режима запрашиваемой записи: dvvValueEh – при присваивании новой записи, dvvRefreshValue – при обновлении значений существующей. В событии можно вызвать процедуру TDataDriverEh.DefaultAssignFieldValue чтобы присвоить значение поля по умолчанию.
OnRefreshRecord - пишите обработчик этого события, чтобы присвоить свежие значения полей при обновлении записи с сервера. В событии можно вызвать процедуру TDataDriverEh.DefaultRefreshRecord чтобы присвоить свежие значения по умолчанию.
OnUpdateRecord - пишите обработчик этого события, чтобы обработать измененную в TMemTableEh'е запись. Используйте MemRec.UpdateStatus для определения типа изменения: Изменение, Удаление или Добавление. В событии можно вызвать процедуру TDataDriverEh.DefaultUpdateRecord для обработки измененной записи по умолчанию. По умолчанию DataDriver проводит изменения в ProviderDataSet.
OnUpdateError - пишите обработчик этого события, чтобы выполнить определенные действия при возникновении ошибки обработки измененной записи. При возникновении ошибки возможна следующая реакция:
ueaBreakAbortEh Прервать эту и все последующие операции изменения, исключение не вызывать.
ueaBreakRaiseEh Прервать эту и все последующие операции изменения, откатить транзакцию, вызвать исключение об ошибке.
ueaCountinueEh Игнорировать ошибку, не менять статус изменения записи и продолжить выполнение остальных изменений.
ueaRetryEh Повторить операцию (Вы должны предпринять какие либо действия для предотвращения этой ошибки при повторной операции).
ueaCountinueSkip Игнорировать ошибку, выставить у записи статус Unchanged или удалить в случае статуса usDelete и продолжить выполнение остальных изменений.
В событии можно вызвать процедуру TDataDriverEh.DefaultUpdateError чтобы выполнить действия по умолчанию.
На сайте allrefs.net читайте: "Библиотека компонент EhLib - Руководство разработчика"
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
Компонент TDataDriverEh.
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Редакция: 1.52
(Изменения и дополнения по сравнению с редакцией 1.5 отчечена красным цветом)
Оглавление
Введение. 4
Установка. 8
Распаков
Объект TPrinterPreview
Объект TPrinterPreview (невизуальный) позволяет записывать данные для печати в буфер для последующего вывода их на экран либо на принтер. TPrinterPreview имеет все функции и свойства объекта TPrint
Использование компоненты TDBGridEh
Общие понятия о TDBGridEh, TDataLink и TDataSet.
Следующий раздел распространяется как на компонент TDBGridEh так и на TDBGrid.
Компонент TDBGrid
Published
Active: Boolean; позволяет активизоровать панель детальной информации. При активизации панели, напротив каждой записи появляется значок '+', нажимая на которую можно раскрывать/скрывать панель дета
Режим RowPanel
Грид поддерживает режим, когда ячейки записи грида могут быть расположены друг под другом и иметь индивиду
TDBGridEh и вертикальный scrollbar.
При работе разными типами dataset'ов можно обратить внимание, что для одних типов dataset'ов DBGrid отображает вертикальный scrollbar правильно, а для других имеет только 3 позиции независимо от чи
Комплексные заголовки.
TDBGridEh позволяет создавать заголововок над несколькими столбцами.
See Figure:
Для этого надо установить свойство DBGridEh.UseMultiTitle в True и заполнить заголовки полей (TFie
Колонтитулы и итоговые значения.
TDBGridEh позволяет отображать специальную строку (колонтитул) либо строки в нижней части grid'а. Используйте свойство FooterRowCount для определения числа строк колонтитулов в grid'е и свойства Fo
Индивидуальная высота каждой записи.
TDBGridEh может работать в режиме, когда он автоматически выставляет высоту каждой строки в зависимости от количества текста в ячейке или размера графического изображения (Если включен режим DrawGr
Значения по умолчанию для свойств столбцов.
Для установки значений по умолчанию для свойств столбцов используйте свойство TDBGridEh.ColumnDefValues. Вновь создаваемые столбцы получат свойства из ColumnDefValues и будут хранить их до первого
Столбец с простыми lookup-значениями.
Вы можете отображать в столбце другой текст, зависящий от значения поля. Используйте свойства KeyList и PickList. KeyList содержит значения, которые сохраняются в поле, а PickList - в соответствующ
Цвет и фонт текстового редактора по месту.
Редактор получает цвет и фонт из цвета и фонта ячейки. Ячейка получает цвет и фонт из столбца и в событии OnGetCellParams. Редактор автоматически устанавливает многострочный режим если высота строк
Инкрементный поиск
TDBGridEh позволяет пользователям совершать специальный "инкрементный" поиск в столбце grid'а. Когда пользователь входит в режим инкрементного поиска, он может набирать символы и grid буд
Множественный выбор.
TDBGridEh позволяет выбирать записи, столбцы и прямоугольные области для последующих операций над выделенной областью. Для включения возможности множественного выбора установите следующие свойства:
Мастер/дитэил отношения.
Мастер/дитэил отношение – это режим работы двух датасетов при котором все видимые записи одного датасета (DetailDataSet) всегда соответствуют одной записи другого датасета (MasterDataSet). При движ
Режим хранения записей в виде дерева (TreeView).
В режиме дерева TMemTableEh создает объекты-узлы (типа TMemRecViewEh) для каждой записи внутреннего массива записей. Объект-узел имеет ссылку на запись (свойство Rec) и ссылку на список подузлов (N
Работа с полями типа AutoIncrement
TMemTableEh имеет объект AutoIncrement со свойствами InitValue и Step для работы с полями у которых значения генерируется автоматической последовательностью чисел. У таких полей свойство TFIeld. Au
Использование общих данных несколькими датасетами.
TMemTableEh позволяет использовать общий табличный массив записей несколькими компонентами TMemTableEh. При этом один из компонентов TMemTableEh является владельцем массива, а другие подключаются к
Сортировка данных.
TMemTableEh имеет два метода сортировки данных: Сортировка с динамической поддержкой изменений, когда добавляемая запись автоматически вставляется в нужную позицию чтобы сохранить порядок сортировк
Создание/удаление таблиц в памяти в режиме ‘stand-alone’.
MemTableEh позволяет создавать внутренний массив записей в режиме Design-time и в режиме Run-time. Прежде, чем создавать массив, Вы должны задать свойства компонента, для определения структуры поле
Работа с компонентом в режиме ‘with datadriver’.
Режим ‘with datadriver’ работает, когда присвоено свойство TMemTableEh.DataDriver. При активизации датасета внутренний массив данных создается автоматически при активизации MemTableEh’а. Структура
Отложенные обновления (CachedUpdates).
TMemTableEh может работать в режиме оперативных или отложенных обновлений. Режим обновления определяет, когда будет посылаться информация об измененных записях в компонент TDataDriverEh (при этом T
Поиск в TMemTableEh
Вы можете осуществлять поиск в TMemTableEh используя следующие методы:
Locate Метод locate перемещает курсор на первую строку, удовлетв
With CustTable do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver','P']), loPartialKey);
Locate использует самый быстрый из возможных методов поиска. Если столбцы в поиске проиндекс
Быстрый доступ к значениям записи.
Для доступа к значениям полей конкретной записи в стандартном DataSet’е необходимо вначале перейти на нужную запись. Это не всегда удобно т.к. переход на запись методами MoveBy, RecNo, Bookmark акт
Внутренние объекты компонента TMemTableEh.
В большинстве случаев для работы с данными вам TMemTableEh вам будет достаточно свойств и методов самого компонента. Однако в некоторых случаях необходимо иметь возможность обработки данных на боле
Работа с TMemTableEh в период разработки.
В период разработки двойной щелчок на компоненте открывает окно управлением компонентом – TMemTableFieldsEditor. В нем можно:
Создавать поля (компоненты TField) для TMemTableEh.
З
Компонент TSQLDataDriverEh.
TSQLDataDriverEh это универсальный драйвер обработки данных, взаимодействующих с сервером посредствам языка SQL. TSQLDataDriverEh содержит пять объектов типа TSQLCommandEh: SelectCommand, DeleteCom
Свойство TXXXDataDriverEh.SpecParams.
Cвойство SpecParams содержит список параметров и значений. TXXXDataDriverEh используют их при выполнении SQL выражений. Значение каждого параметра должно храниться в отдельной строке в формате ‘ИМЯ
Динамическое формирование SQL выражений при обновлении данных.
TSQLDataDriverEh позволяет формировать Insert, Update и Delete выражения динамически перед посылкой запроса на сервер. Это полезно когда таблица содержит много записей а изменения были только в нес
TSQLDataDriverEh или TXXXDataDriverEh, что выбрать для работы.
Как TSQLDataDriverEh так и один из компонентов TBDEDataDriverEh, TIBXDataDriverEh, TDBXDataDriverEh и TADODataDriverEh (будем в дальнейшем называть их TXXXDataDriverEh) позволяют работать с БД без
Работа с TSQLDataDriverEh и TXXXDataDriverEh в период разработки.
Двойной щелчок на компоненте TSQLDataDriverEh и TXXXDataDriverEh открывает окно диалога редактирования TSQLDataEditWin. В период разработки TSQLDataDriverEh или TXXXDataDriverEh независимо от того
Хотите получать на электронную почту самые свежие новости?
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Новости и инфо для студентов