ЛР 01-1 1620 (студ) (1018814), страница 5
Текст из файла (страница 5)
Tov
Sd
Обратите внимание, что тип поля Long Integer !!!
Для каждой таблицы выбираем подходящий языковый драйвер
Заполняем таблицы данными
Таблицу Sd не заполняем
Открываем ее выбираем
Table - Restructure
Выбираем таблицу из которой будем вводить данные и соответствующее поле
Just current field – берутся значения только для выбранного поля
Если включен Lookup access - Help and Fill , то при вводе при нажатии Ctrl+Space Можно будет выбрать значение
Заполним значениями данную таблицу
Определим ссылочную целостность
Так для поля CodPok
Долее определим имя ссылки
В дальнейшем модно модифицировать так Код товара
В Corel Paradox 9
можно запустить Visual DataBase Disigner
Для формирования запросов выберем File - New – QBE Query, Выберем все наши таблицы
Запрос Список менеджеров
нажмем на кнопку быстрого доступа Run Query
Для создания сложных запросов предварительно связываем таблицы
Нажимаем на кнопку , расположенную рядом с Run Query
Вопрос 2 Работа с БД на Delphi
Компоненты, используемые для работы с БД, находятся на страницах Data Access, Data Controls, Midas, Decision Cube, QReport и InterBase Палитры компонентов. Некоторые компоненты предназначены специально для работы с удаленными БД в архитектуре "клиент-сервер".
Наиболее часто используемые для работы с базами данных компоненты, , расположены в библиотеке компонентов на страницах Data Access (доступ к данным) и Data Control (управление данными).
Каждое приложение, использующее базы данных, обычно имеет по крайней мере по одному компоненту следующих трех типов:
-
Компоненты — наборы данных (Data Set), непосредственно связывающиеся с базой данных. Это такие компоненты, как Table, Query, StoredProc.
-
Компонент — источник данных (Data Source), осуществляющий обмен информацией между компонентами первого типа и компонентами визуализации и управления данными. Таким компонентом является DataSource.
-
Компоненты визуализации и управления данными, такие, как DBGrid, DBText, DBEdit и множество других. Связь этих компонентов друг с другом и с базой данных можно представить схемой:
При работе в архитектуре "клиент-сервер" псевдоним БД часто записывается в свойство AliasName компонента TDatabase, отвечающего за связь с ком удаленной БД. База данных получает новый псевдоним (свойство DataBaseName компонента TDatabase). В этом случае компоненты типа "набор данных" в свойстве DataBaseName хранят значение из свойства DataBaseName компонента TDatabase.
Компонент Database целесообразно вводить в приложение только в сравнительно редких случаях. Если он не введен явно, Delphi автоматически создает его для каждой используемой в приложении базы данных.
Установка связей между компонентами и базой данных, навигация по таблице
На странице Data Access находятся невизуальные компоненты, предназначенные для организации доступа к данным
|
|
|
|
На странице Data Controls находятся визуальные компоненты, предназначенные для управления данными:
|
|
|
|
| DBChart — диаграмма; |
Построим простейшее приложение, работающее с нашей базой данных. В нем мы будем в качестве набора данных использовать компонент Table.
Откройте новое приложение и перенесите на форму компонент Table со страницы Data Access. Перенесите также на форму с той же страницы библиотеки компонент DataSource, который будет являться источником данных. Оба эти компоненты невизуальные, пользователю они будут не видны, так что их можно разместить в любом месте формы. В качестве компонента визуализации данных возьмите компонент DBGrid со страницы Data Control. Это визуальный компонент, в котором будут отображаться данные. Поэтому растяните его пошире, или можете в его свойстве Align установить alClient.
Выделите на форме компонент DBGridl и щелкните на его свойстве DataSource в Инспекторе Объектов. Вы увидите выпадающий список, в котором перечислены все имеющиеся на форме источники данных. В нашем случае имеется только один источник данных — DataSourcel. Установите его в качестве значения свойства DataSource.
Далее надо установить связь между источником данных и набором данных. Выделите компонент DataSourcel и найдите в Инспекторе Объектов его главное свойство — DataSet. Щелкните на этом свойстве и из выпадающего списка выберите Tablel (если бы у вас было несколько компонентов — наборов данных, то все они были бы в этом списке).
Теперь осталось связать компонент Tablel с необходимой таблицей базы данных. Для этого служат два свойства компонента Table: DatabaseName и TableName. Прежде всего, надо установить свойство DatabaseName. В выпадающем списке этого свойства в Инспекторе Объектов вы можете видеть все доступные BDE псевдонимы баз данных. Выберите из этого списка псевдоним MelkOpt, который мы ввели ранее
| |
После этого можно устанавливать значение свойства TableName. В выпадающем списке этого свойства перечислены таблицы, доступные в выбранной базе данных. Выберите таблицу Men.db.
После установки свойства Active таблицы в True произойдет соединение с базой и можно увидеть живые данные.
Откомпилируйте проект сохраните в папку – Просмотр одной таблицы.
Выполните программу После появления формы нажмите клавишу Insert и введите три фамилии новых менеджеров.
Измените в Delphi название формы на Менеджеры.
Навигация по таблице.
Снимем признак Align - alClient , установим None, уменьшим размер DBGrid. Установим на форму компонент DBNavigator, установим его свойсво Align в alBottom, вернем DBGrid - alClient/
Компонент DBNavigator имеет ряд кнопок, служащих для управления данными. Перечислим их названия и назначение, начиная с левой кнопки:
nbFirst | перемещение к первой записи | nbDelete | удалить текущую запись |
nbPrior | перемещение к предыдущей записи | nbEdit | редактировать текущую запись |
nbNext | перемещение к следующей записи | nbPost | послать отредактированную информацию в базу данных |
nbLast | перемещение к последней записи | nbCancel | отменить результаты редактирования или добавления новой записи |
nblnsert | вставить новую запись перед текущей | nbRefresh | очистить буфер, связанный с набором данных |
Установим свойство DataSource DBNavigator – DataSource1.
Откомпилируем проект, попробуем редактирование и перемещение по таблице. Установим свойство ShowHint – True, Flat – True.
В Object Inspector выберем Form1 , вкладку Events и запишем обработчик OnCreate
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Table1.Active:=true;
end;
а после – OnDestriy
procedure TForm1.FormDestroy(Sender: TObject);
begin
Form1.Tablel.Active:=false;
end;
Теперь в момент создания формы ваше приложение будет соединяться с базой данных, а в момент разрушения формы соединение будет прерываться. В компоненте Tablel следует установить свойство Active в false, чтобы не занимать базу данных в процессе проектирования. Правда, если вы работаете не в сети или если вы единственный пользователь этой базы данных, то это не имеет особого значения.
Откомпилируем и вновь сохраним проект в папке Работа с DBNavigator.
Две связанные таблицы.
Измените название формы на Сделки менеджеров.
Установите на форме второй набор Table , DataSource, DBGrid
Установите TableName – Sd.Dbи у обоих Ефиду – Active – True.
Затем вновь снимите Activ на False