Автоматизація роботи з БД, Різне, Програмування, статті

Деякий час тому мені довелося реалізувати роботу з таблицями бази даних 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 мовою Delphi

Набір модулів DigestSDK мовою Delphi

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

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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*