Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Без малого месяц назад я затронул тему обращения к полям DataSet. К своему удивлению, обнаружил, что, казалось бы, такая банальная тема получила “живой отклик”. Так же меня озадачил тот факт, что большинство комментаторов вполне готовы пожертвовать удобствами Code Insight и обращаться к полям с помощью FieldByName. Был высказан ряд аргументов разной степени убедительности. В свою очередь я постарался привести собственные контраргументы. Собственно, сам я почти всегда создаю поля в режиме редактирования проекта и обращаюсь к ним по имени. За исключением тех случаев, когда запрос формируется динамически в коде. Но тем не менее, вопрос того, как упростить вызов значения поля с помощью FieldByName – актуален.

Давным -давно я писал менеджер буфера обмена. Это было одним из первых моих приложений, но используемая там идея всплыла сейчас в контексте вышеописанной задачи. На досуге я набросал небольшую утилиту.

В чем суть…

Итак, на экране висит StayOnTop форма в левой части которой находится список таблиц (представлений, запросов и т.д.), а справа – набор кнопок, каждая из которых соответствует полю в таблице. При перемещении по списку таблиц набор кнопок автоматически обновляется. При нажатии на кнопку имя поля попадает в буфер обмена и вставляется в активное окно редактирования (например, редактор кода Delphi).

mbs

Таким образом, утилита избавляет разработчика от необходимости постоянно обращаться к СУБД при необходимости найти названия поля в определенной таблице. Более того,  набирать название поля так же не нужно, оно может быть вставлено в код приложения буквально с помощью одного нажатия кнопки мыши. При этом, в качестве редактора кода может быть использован не только Delphi, а любая среда разработки.

Приведенное ниже приложение является не более чем прототипом, в котором пока реализовано подключение только с помощью dbGo.

После запуска приложения следует создать новое подключение к БД. В диалоге сохранения файла определить его имя (от фонаря). При этом будет создан файл с расширением .udl и на экране появится диалог подключения. Именно здесь вы можете настроить подключение к существующей БД. Сохранять и открывать, соответственно, вы можете не  БД, а именно файлы подключения. После того, как вы закроете диалог программа попытается получить структуру БД. Вот, собственно, пока и все.

Что я планирую сделать.

  • Добавить возможность подключения остальных СУБД (Oracle, IB, FB, MySQL и т.д.);
  • Добавить возможность получения полей по пользовательским запросам;
  • Добавить возможность вставки в текст данных по шаблону (например, FieldByName(‘%Field Name%’).as%Filed Type%).

Интересно ваше мнение относительно того, имеет ли подобная утилита право на существование (в качестве инструмента разработчика)?

Утилита (скачать).


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

3 комментария: Снова о FieldByName

  • > имеет ли подобная утилита право на существование
    Думаю, что вполне имеет. Только Вы сами ей пользуйтесь, чтобы понять, на сколько оно удобно.
    На вскидку: не хватает строки поиска/фильтра над списком таблиц (представьте что таблиц _очень_ много).
    Мне кажется, что было бы удобно её встроить в IDE виде визарда и запускать по какому-нибудь сочетанию клавиш (мне очень нравится F6 в новых версиях Delphi).

  • Годная идея. Буду ждать ФБ.

  • Отличная идея, великолепно примиряющая защитников “провалов в памяти” (CodeInsight) и “поименщиков” (FieldByName).
    Конечно, самому помнить поля таблицы несложно, поэтому FieldByName чаще всего рулит. Но! А если имена полей в таблицы придумывал другой человек? С отличными от вас лингвистическими предпочтениями?
    Имхо: ждём-не дождёмся, будем пробовать!

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика