Яндекс.Метрика
    Поиск по тегу

    MSSQL


    Найдено: 1 запись

    Песочница

    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;
    


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

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


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


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


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


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

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

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

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