Категории раздела
J2me|java [29]
Basic [6]
Delphix [21]
C+|C++|C# [3]
Pascal [10]
Другие [0]
языки которые не войшли в верхние разделы
Главная » Статьи » Программирования » Delphix

Автоматизая работы с БД - DigestSDK

Некоторое время назад мне пришлось реализовать работу с таблицами базы данных 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;

Достаточно просто создать нужный и работа всех функций, а также перевод наименований таблиц и полей, будет производен автоматически. 

В данной статье продемонстрированы лишь минимальные возможности. Расширенное описание, а также исходные тексты DigestSDK доступны на сайте www.digestsdk.nsknet.ru.

Категория: Delphix | Добавил: graimp (21.12.2011)
Просмотров: 365 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Наш опрос
На каком языке лучше программировать
Всего ответов: 38
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0