Песочница →
DigestSDK — автоматизация работы с MSSQL на Delphi
Вступление
Несколько лет назад мне пришлось реализовать работу с таблицами базы данных 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;
Результат выполнения:
Небольшой ролик по созданию справочника
Пример как подключить файлы к проекту и написать простейший код для отображения содержимого БД cars (находится в папке Demos\Cars\DataBase")
Ролик, демонстрирующий основные возможности DigestSDK
Показано использование различных операций (добавление, удаление, поиск, сортировка, сохранение последнего состояния ну и т.д.)
Исходные коды. примеры и демонстрационную БД (cars) можно скачать тут
Остальные видео-примеры по работе тут
Достаточно просто создать нужный и работа всех функций, а также перевод наименований таблиц и полей, будет производен автоматически.
DigestSDK поддерживает с MSSQL 2005, 2008, 2008 R2.
Работостпосбность проверена для Delphi 7, 2007, XE2
Более подробное ознакомление: http://sourceforge.net/projects/digestsdk/
20.12.2011 02:26+0400