Вы находитесь на страницах старой версии сайта.
Переходите на новую версию Interface.Ru

Предыдущая часть

Изучаем программирование в TD/GUPTA:

Шаг 5 – Работа с БД

Часть 1

Большаков Сергей Алексеевич, к.т.н., доц.,
технический консультант Interface Ltd.
©2002

Данная статья является пятой в цикле статей под общим названием "Изучаем программирование в TD/GUPTA", в котором мы постараемся дать начинающему пользователю программных продуктов ГУПТА всю необходимую информацию для изучения программирования и получения навыков создания информационных систем. В ней мы рассмотрим работу c БД и средствами их построения. Для успешного усвоения материала читателю желательно познакомиться с предыдущими статьями из этого цикла, которые размещены на нашем сайте.

Введение

Несомненно, программный продукт TD можно использовать для широкого класса задач в области информационных технологий, и это, возможно, читателю уже понятно из предыдущих статей, однако наиболее эффективно применение этих средств разработки для приложений, работающих с базами данных (БД). Именно для этих задач данные средства разработки и были созданы. Для удобства в среду TD встроено очень удобное средство для интерактивной работы с БД - DataBase Explorer. Эта компонента позволяет создавать БД и таблицы, формировать выходные документы (Reports), заносить новые данные и выполнять SQL запросы и даже скрипты запросов. Существуют и другие возможности у этой компоненты, например, для создания хранимых процедур, но мы будем эти возможности рассматривать позднее в следующих статьях.

Для полноценной работы по созданию информационных систем, их разработки и отладки в пакет TD включен однопользовательский сервер SQLBase. Этот СУБД полностью совместим по всем характеристикам с многопользовательским сервером SQLBase, поэтому и БД и приложения, работающие с ними, без проблем переносятся в сетевую среду клиент-сервер. Кроме того, для выполнения удобной отладки из среды обеспечивается два подключения (connect), что позволяет одновременно отлаживать запросы в интерактивной среде DataBase Explorer и тестировать приложения.

И, наконец, читатель в данной статье увидит и, несомненно, положительно оценит простоту и наглядность работы с БД с помощью специальных функций, в которых можно явно указывать настраиваемые SQL запросы. Для первоначального знакомства с данными возможностями предназначается данная статья.
Для успешного и самостоятельного освоения материала данной статьи, который, мы очень надеемся, может служить своеобразным самоучителем программирования на Centura TD, желательно познакомиться и выполнить задания статей "Шаг 1-4".

Встроенное средство DataBase Explorer

Познакомимся первоначально с DataBase Explorer. И с его помощью создадим БД для построения приложения. Для его вызова, после запуска TD, нужно в пункте главного меню Tools выбрать позицию DataBase Explorer …. После это в правой части экрана вы получите перечень серверов БД, к которым у вас было настроено подключение при инсталляции TD. Выберете SQLBase в списке серверов, для чего дважды щелкните мышкой и получите список доступных БД для работы, эти БД уже созданы. Выберем БД ISLAND (это стандартная БД, которая разворачивается при инсталляции TD для поддержки примеров) и в специальном окне подключения (см. рисунок ниже) нажмем на кнопку "Connect", вводить имя пользователя и пароль для этого не нужно. В результате, после последовательного открытия дерева в правой части: БД ISLAND->Tables-> BUDGET, мы получим окно представленное на рисунке 1a, расположенном ниже. На рис. 1b показано окно, которое мы получим после выполнения операций создания новой БД COMPANY и ее таблиц (в процессе обучения). Перейдем теперь к действиям по созданию новой БД.

(а)

(b)

Рис. 1 Окно встроенной компоненты DataBase Explorer в TD. Начальное положение для стандартной БД ISLAND (a) и окно с создаваемой БД COMPANY (b)

Создание БД

Для создания новой БД, работающей под управлением SQLBase (в нашем случае локального сервера), необходимо в дереве DataBase Explorer выделить SQLBase и вызвать пользовательское меню правой кнопкой. В этом меню нужно выбрать позицию “New Database…” после этого на экране появиться окно, представленное на рисунке 2.

Рис. 2 Создание новой БД COMPANY в DataBase Explorer

В данном окне введем имя новой БД (DataBase Name), в нашем случае – COMPANY и нажмем кнопку "ОК". В результате будет создана и сконфигурирована новая БД для данного сервера – это Server1 (название сервера мы пока изменять не будем). Отметим, попутно, что в TD одновременно поддерживается работа с несколькими серверами БД, для чего имена серверов должны отличаться. Для подключения к новой БД выберем ее в дереве справа и с окне подключения нажмем кнопку "Connect" (Рис. 3). Пароль и пользователя в данном случае указывать не надо, так как по умолчанию задается SYSADM/SYSADM.

Рис. 3 Подключение к БД COMPANY в DataBase Explorer

Работа с БД в DataBase Explorer

После подключения к БД мы можем увидеть ее содержимое, которое разделено на четыре раздела: таблицы (Tables), отображения (Views), индексы (Indexes) и хранимые процедуры (Stored Procedures). В данной статье мы будем использовать пока только раздел таблиц.

Рис. 4 Просмотр дерева содержания БД в DataBase Explorer

Мы создадим БД, состоящую из 3-х таблиц:

Примечание: Для простоты БД и упрощения материала статьи, мы первоначально не будем задавать ключи (первичные и вторичные), индексы и включать другие возможности и механизмы СУБД, которые, несомненно, SQLBase поддерживает в полной мере.

Описание наших таблиц приведено ниже в формате языка SQL:

OTDEL: CREATE TABLE OTDEL

(CODE INTEGER, -- код отдела
NAME CHAR(40), -- название
SCOUNT INTEGER, -- число сотрудников
FONDZ FLOAT, -- фонд зарплаты отдела
FONDZN FLOAT, -- фонд надбавок к зарплате
CODEMAN INTEGER, -- код начальника
WORKOTD CHAR(140) ); -- описание функций отдела

EMPLOY: CREATE TABLE EMPLOY

( CODE INTEGER, -- код сотрудника
CODEOTD INTEGER, -- код отдела
NAME CHAR(20), -- имя
FAM CHAR(20), -- фамилия
OTCH CHAR(20), -- отчество
NADB FLOAT, - надбавка
OKLAD FLOAT, -- оклад
DATER DATETIME , -- дата рождения
CODEDOL INTEGER, -- код должности
WORK CHAR(80) ); -- характеристика работника

DOLG: CREATE TABLE DOLG

( CODEDOL INTEGER, -- код должности
NAMEDOL CHAR(20)); -- название должности

Текстовые пояснения в одной строке даны в скриптах для упрощения, при выполнении запросов их необходимо поместить в отдельной строке или опустить.

Создать БД можно: в интерактивном режиме, вводя описания полей вручную или выполнив скрипт загрузки БД (step5_DB.uld), который можно скачать здесь (для редактора: здесь нужно обеспечить скачивание скрипта - step5_DB.uld). Для автоматического создания таблиц и первоначальных данных нужно выполнить команду SQLBase:

LOAD SQL 'с:\ step5_DB.uld';

под управлением встроенного или автономного средства SQLTalk (см. ниже). Пути доступа к файлу загрузки, естественно, могут отличаться.

Рассмотрим процедуру создания таблицы в интерактивном режиме. Для этого нужно правой кнопкой на "Tables" вызвать пользовательское меню, в котором выбрать "New Table…". Далее нужно ввести информацию, показанную на рисунке 5. После ввода, используя пользовательского меню в зоне описания полей, нужно подтвердить изменения – "Apply Edits". Пустая таблица заданной структуры будет запомнена в БД. Обратите внимание, что мы автоматически использовали закладку "Definition" в правой части DB Explorer.

Рис. 5 Создание новой таблицы OTDEL в DataBase Explorer

Для ввода данных в таблицу необходимо выбрать закладку "Data". Окно DB Explorer в этом режиме показано на следующем рисунке (Рис. 6). В этом состоянии мы можем добавлять новые записи в таблицу, редактировать существующие и удалять ненужные. Для добавления записей посредством пользовательского меню (правая кнопка в таблице) нужно добавить строку – "New Row". Далее в нижней части экрана сформируется выделенная строка таблицы, в которую можно вводить новые данные (эта зона выделена разделительной линией). Вводить можно любое число строк, при этом для подтверждения окончательного ввода нужно выполнить операцию – "Apply Edits", а для отмены ввода – "Discard Edits". В нашем случае при вводе данных необходимо самостоятельно контролировать корректность кодов отделов – они не должны совпадать. Аналогичным образом вы можете создать и ввести данные в таблицы сотрудников (EMPLOY) и должностей (DOLG).

Примечание: Для выполнения операций можно использовать также и автоматически формируемый пункт меню в режиме DB Explorer – “Data Base Explorer“. В этом пункте доступны подменю для выполнения всех основных операций с БД и таблицами.

Рис. 6 Ввод новых данных в таблицу OTDEL в DataBase Explorer

СУБД SQLBase

Когда вы работаете с DB Explorer, то у вас обеспечивается автоматическое подключение к СУБД SQLBase. В нашем случае мы подключаемся к СУБД, рассчитанным на 5 пользователей, который установлен отдельно. Если вы используете СУБД, входящую в поставку TD, то у вас будет однопользовательский вариант, единственное отличие которого проявиться в заголовке (вместо 5 Client у вас будет 1 Client). Все функции СУБД и доступные действия будут аналогичны. Внешний вид консоли СУБД приведен на рисунке ниже (Рис. 7). Здесь мы дадим только краткую характеристику СУБД и его консоли. Подробное описание СУБД и его возможностей дано в статье на нашем сайте.

Для управления и контроля предусмотрено меню и четыре информационных окна:

Примечание: Оба этих окна могут показывать информацию с разными уровнями детализации (доступно 5 уровней детализации).

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

Рис. 7 Консоль СУБД SQLBase при подключении клиента WIN32CL2000

Консоль СУБД может быть эффективно использована для детального анализа запросов и разрешения внештатных ситуаций. Но дальнейшее ее рассмотрение выходить за рамки данной статьи, на дополнительных возможностях мы остановимся позже.

Компонента SQLTalk

При необходимости мы можем переключить DB Explorer в режим непосредственного выполнения SQL запросов и дополнительных команд, которые входят в расширение языка взаимодействия с СУБД как команды SQLTalk. Окно в режиме SQLTalk показано на рисунке 8. Для перехода в этот режим нужно при выбранной БД открыть закладку SQLTalk, которая разделена на две части: сверху расположено окно ввода SQL команд, а снизу результат их выполнения. На рисунке показаны результаты выполнения команд установки сервера, создания БД и подключения к ней. В нашем случае команды были выполнены в одиночном режиме, для чего после выделения строки с командой нужно нажать клавиши – Schift+F2. В этом режиме предусмотрена возможность выполнения целого скрипта SQL команд, для чего нужно нажать F5. Полный набор возможностей можно уточнить при использовании пользовательского меню, которое вызывается правой кнопкой мыши. Здесь доступно: открытие и сохранение скриптов, выполнение COMMIT и ROLLBACK, поиска и замены, а также управление выводом информации.

Рис. 8 DataBase Explorer в режиме ручного ввода запросов (SQL Talk)

Введите свои команды для создания таблицы DOLG (см. выше), а затем перейдите в режим ввода данных в таблицу (выбор таблицы DOLG и закладки Data) и введите набор должностей, как показано на рисунке 9.

Рис. 9 Данные, занесенные в таблицу DOLG

Следующая часть

За дополнительной информацией обращайтесь в компанию Interface Ltd.

Обсудить на форуме

Рекомендовать страницу

INTERFACE Ltd.
Телефон/Факс: +7 (495) 925-0049
Отправить E-Mail
http://www.interface.ru
Rambler's Top100
Ваши замечания и предложения отправляйте редактору
По техническим вопросам обращайтесь к вебмастеру
Дата публикации: 02.09.03