DBGrid является одним из наиболее разработанных модулей DBRex. Вместе с Редактором кода он определяет качество всего DBRex. Оно и понятно: - невозможно представить себе работу с реляционными БД без табличного представления данных.

Компонент DBGrid возник в результате скрещивания слабенького DataGrid от MicroSoft и мощного текстового редактора. Решение так себе, но если учесть, что перед тем как смотреть результат запроса в GRID надо вначале этот запрос к БД написать, то станет ясно, что редактор DBRex выполняет эту часть работы с блеском и уже одним этим оправдывает создание описываемого мутанта.

Возможно это покажется странным, что за основу был выбран DataGrid от MicroSoft. Конечно это не идеальное решение, но и не слишком большая беда. По большому счету, все необходимое для хорошего старта у этого компонента есть. Если прижать его в темном углу к стенке, то из него много чего можно выжать.

Именно этим DBRex в лице DBGrid и занимается. К сожалению родовые пятна DataGrid не дают в полной мере получить максимум комфорта в работе. Я как мог пытался заглушить его генетические недостатки новыми мощными функциями, чтобы за их широкой спиной не бросалась в глаза дешевизна исходного материала.



Работа с DBGrid

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

1. Управление видимостью колонок.

После получения данных в DBGrid вы можете выбрать из ListBox список колонок, которые желаете видеть на экране. Атрибуты видимости у колонок запоминаются и в дальнейшем можно вызывать нужные для просмотра колонки по нажатию горячей клавиши.

У DBGrid имеются многочисленные функции, которые используют только видимые колонки. Поэтому очень важно уметь управлять их видимостью. Отсутствие на экране лишних колонок помогает анализировать результаты выборки, вам не придется слоняться по длинному списку полученных в RecordSet колонок, раскаляя полосу прокрутки и сделанную в Китае мышь.



Перечислю функции, которые учитывают видимость колонок в выборке:

- передача данных из GRID в Excel
- распечатка данных GRID на принтере
- сохранение данных из GRID в ClipBoard или внутренний буфер
- Создание текста операторов INSERT или UPDATE на основе данных из выборки.
- при сравнении двух выборок из разных GRID на разных базах или из и той же БД.

При создании текста операторов INSERT, UPDATE и др. есть три режима:
- использовать данные из всех записей
- использовать данные, видимые на экране
- использовать только отмеченные (BookMarked) записи

Таким образом, например для создания операторов переноса\обновления справочных данных из одной БД в другую достаточно выбрать нужный режим и нажать кнопку “OK”.

2. Использование имен колонок.

Перво-наперво DBGrid обеспечивает программиста именами колонок, которые легко и в любых количествах копируются в ClipBoard. Для работы с содержимиым ClipBoard разработан специальный Мастер, который из отобранных имен столбцов легко получит необходимый вам текст запроса (на любом языке).

3. Полезный Double_Click.

Если на экране колонка выглядит уже, чем значение, которое в ней расположено, дайте по колонке Double_Click и она расширится ровно настолько, чтобы значение колонки стало полностью видимо на экране. Но и это делать не обязательно, если вам надо только посмотреть содержимое данного поля. Кликните один раз по колонке, и над колонкой начнет появляться ToolTip, в котором находится значение поля.

4. Просмотр длинных GRIDов.

Таскать горизонтальную полосу прокрутки является универсальным, но не самым удобным решением. Кликните по заголовку любой колонки мышкой, и у вас на экране выскочит ListBox c именами колонок. Выберите в нем имя требуемой колонки и дайте Double_Click. Выбранная колонка окажется крайней слева на экране. Т.е. в DBRex реализован вертикальный способ выбора колонки, что значительно удобнее, чем мармезонский мышиный балет с полосой прокрутки. К тому же в ListBox колонка ищется мгновенно.

Для просмотра длинных GRIDов можно использовать также SPLIT-функцию. В результате вы получите два синхронизированных отображения данных из одной выборки.

5. Поиск значения в GRID.

Если в вашей выборке более 100 записей, искать глазами ту, которая вас интересует, напрасная трата времени и здоровья. Встаньте на запись и колонку, с которой начать поиск, и выполните поиск по GRIDу. Как только значение будет найдено, курсор в GRIDe будет стоять на требуемой записи.

6. Анализ результатов нескольких выборок.

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

7. Занесение данных в GRID.

Довольно часто бывает нужно выполнить INSERT в БД на основе текста из таких программ как MS Word, Excel и т.п. Чтобы выполнить это DBrex предлагает следующую последовательность действий:
- сначала занести эти данные в GRID
- затем создать на основе данных в GRID операторы INSERT или все что угодно.

Для занесения данных в GRID на основе данных например из MS Word делается промежуточный оператор SELECT с большим количеством UNION ( число строк минус 1). Далее SELECT исполняется и данные попадают в GRID. Изготовлением SELECT занимается DBRex, для этого надо выделить строки, которые являются данными для столбцов таблицы и нажать кнопку Make SELECT From text.

8. Изготовление текста запросов на основе данных из GRID.

Идея состоит в том, чтобы в любой текст уметь вставлять данные из колонок GRID.
Пример: Select * From AnyTable Where id=[idGrid]

В данном примере будет сформировано множество строк, в которых вместо [idGrid] будут стоять реальные значения из GRIDa, из колонки с именем idGRid.

9. Сравнение двух выборок.

Иногда бывает необходимо выровнять данные в двух таблицах, т.е. перенести данные из эталонной таблицы в рабочую. Для автоматизации этого процесса предназначена функция Compare Grid1 and Grid2. Данные эталонной таблицы всегда должны быть в GRIDe. Данные рабочей таблицы могут быть либо в другом GRIDe, либо в ClipBoard. В результате работы функции формируется текст запроса, состоящий из операторов INSERT, DELETE, UPDATE, который приводит данные рабочей таблицы к данным эталонной.

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

Мой е-майл.

Fresh news

 

Home...

 

Hosted by uCoz