DigestSDK система автоматизации разработки приложений по работе с БД MSSQL.
DigestSDK - набор модулей на Delphi,которые избавляют программиста от написания
рутинного кода по обслуживанию БД MSSQL и позволяют сосредоточиться на логике
приложения - а не на написании различных сервисных функций: доступа, изменения,
сортировки и т.д. На сайте
http://www.digestsdk.nsknet.ru можно скачать исходные тексты,
демонстрационное видео и примеры.
Некоторое время назад мне пришлось реализовать работу с таблицами базы данных
MSSQL сервера. После написания некоторого количества, фактически однотипного
кода пришла мысль автоматизировать эти «рутинные» действия. Согласитесь, что
написание одного и того же кода, отличающегося фактически только структурой
таблиц БД, не может никого вдохновить. К тому же, если кол-во таблиц, с которыми
приходиться работать переваливает за десяток, то занятие из разряда скучное
переходит в разряд трудоемкое. Поиск в интернете не привел ни к чему, поэтому
реализацию пришлось взять на себя. В результате был создан набор модулей (в
дальнейшем DigestSDK) на языке Delphi, позволяющих избавить программиста от
написания «стандартного» кода по работе с БД и сосредоточиться на логике самого
приложения. DigestSDK позволяет отобразить содержимое таблиц MSSQL сервера (в
дальнейшем планируется реализация для остальных популярных БД) и автоматически
предоставляет следующие возможности: Перечень стандартных функций После создания
справочник автоматически содержит следующие функции: - добавление; - удаление (в
том числе групповое); - редактирование (в том числе групповое); - поиск (с
возможностью частичного соответствия); - сортировка (при нажатии на заголовке
DBGrid) - сортировка (с указанием множества полей и порядка сортировки); -
выделение записей; - подсчет кол-ва записей для текущей выборки и выделенных
записей; - быстрый переход на указанную запись; - задание максимального кол-ва
отображаемых записей; - сохранение последнего состояния справочника в БД или в
файле (настройки колонок, последний запрос, условия отбора и сортировки,
положение формы); - настройка отображаемых колонок (видимость, ширина,
положение); - автоматический перевод английских наименований в соответствии с
пользовательским справочником. Дополнительные возможности Перечисленные выше
возможности могут расширены программистом следующими возможностями: - изменение
любого набора полей (с указанием собственных функций отображения, проверки и
т.д.) - переопределение стандартных процедур добавления, удаления,
редактирования; - добавление в справочник собственных процедур, не входящих в
список, поддерживаемых справочником; - задание списка полей запрещенных для
редактирования и удаления; - задание внешнего вида справочника (цвет выделенных
записей, набор отображаемых кнопок, добавление собственных кнопок и панелей и
т.д.); - задание начальных поисковых значений. Представленный перечень функций и
возможностей далеко не полный и может быть расширен программистом за счет
переопределения и/или написания собственных дополнительных функций. Чтобы не
быть голословным приведу фрагмент кода по созданию справочника с выборкой данных
из таблицы Production.Product (из демонстрационной БД AdventureWorks к MSSQL
2005). В данном примере вызывается конструктор класса TSimpleDigest, которому
передается: sql запрос, имя таблицы в БД (к которой будут применяться операции
добавления, изменения и удаления), обычная строка подключения ADO, указание где
создавать справочник (TWinControl или nil, если на новой форме) и идентификатор
оператора – некоторое целое число – код, под которым справочник будет сохранять
свое последнее состояние. Пример использования с демонстрацией результатов.
Пример программы создания:
//создаем основой справочник
DigestProducts := TSimpleDigestR.Create(
'select top 10 * from Production.Product', //запрос в произвольной форме
'Production.Product', //Имя таблицы для изменения
ConnectionString, //Строка подключения
nil, //Где создавать справочник
0 //Идентификатор оператора (для сохранения настроек)
);
//открываем справочник
DigestProducts.Open();
DigestProducts.ShowModal;
Достаточно просто создать нужный и работа всех функций, а также перевод
наименований таблиц и полей, будет производен автоматически. В данной статье
продемонстрированы лишь минимальные возможности.
Автор: Дмитрий Гацура
|