Как стать автором
Обновить

DigestSDK — автоматизация работы с MSSQL на Delphi

Время на прочтение 3 мин
Количество просмотров 5.6K

Вступление


Несколько лет назад мне пришлось реализовать работу с таблицами базы данных MSSQL сервера. После написания некоторого количества, фактически однотипного кода, пришла мысль автоматизировать эти «рутинные» действия.
Согласитесь, что написание одного и того же кода, отличающегося только структурой таблиц БД, не может никого вдохновить. К тому же, если кол-во таблиц, с которыми приходиться работать переваливает за десяток, то занятие из разряда скучное — переходит в разряд трудоемкое.
Поиск в интернете на тот момент не дал результатов, поэтому реализацию пришлось взять на себя. .
В результате был создан набор модулей (в дальнейшем DigestSDK) на языке Delphi, позволяющих избавить программиста от написания «стандартного» кода по работе с БД и сосредоточиться на логике самого приложения. .
Демонстрационные примеры, исходные коды и видео по работе с DigestSDK выложил на SourceForge (авось еще кому да и пригодится, заодно и хабр эффект проверим в очередной раз:-))..

Итак, 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;


Результат выполнения:
DigestSDKDemo

Небольшой ролик по созданию справочника


Пример как подключить файлы к проекту и написать простейший код для отображения содержимого БД cars (находится в папке Demos\Cars\DataBase")


Ролик, демонстрирующий основные возможности DigestSDK


Показано использование различных операций (добавление, удаление, поиск, сортировка, сохранение последнего состояния ну и т.д.)


Исходные коды. примеры и демонстрационную БД (cars) можно скачать тут

Остальные видео-примеры по работе тут

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

DigestSDK поддерживает с MSSQL 2005, 2008, 2008 R2.
Работостпосбность проверена для Delphi 7, 2007, XE2
Более подробное ознакомление: http://sourceforge.net/projects/digestsdk/
Теги:
Хабы:
+13
Комментарии 29
Комментарии Комментарии 29

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн