7. DataSourceобеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент DataSource, хотя их может быть несколько. Компонент DataSourceдолжен быть связан с набором данных, значения полей которого требуется передать в параметры. Названия параметров должны соответствовать названиям полей этого набора данных, тогда свойство DataSourceначнет работать.
Еще одна функция компонента DataSourceзаключается в синхронизации поведения компонентов отображения данных с состоянием набора данных. Если набор данных работает в режиме "только для чтения", то компонент DataSourceобязан передать в компоненты отображения данных запрещение на изменение данных.
Компонент DataSourceорганизует передачу в компоненты отображения данных значений необходимых полей из текущей записи. При перемещении по записям набора данных текущие значения полей в компонентах отображения данных автоматически обновляются.
8. Компонент TDBNavigatorпри помощи свойства DataSourse связывается с компонентом TDataSourse и через него с набором данных. Такая схема позволяет обеспечить изменение текущих значений полей сразу во всех связанных с TDataSourse компонентах отображения данных. Таким образом TDBNavigatorтолько дает команду на выполнение перемещения по набору данных или другой управляющей операции, а всю реальную работу выполняет компонент набора данных и компонент TDataSourse. Компонентом отображения остается только применить данные от своих полей.
DBNavigatorсодержит следующие кнопки:
1. nbFirst - перемещение на первую запись набора данных
2. nbPrior - перемещение на предыдущую запись набора данных
3. nbNext - перемещение на следующую запись набора данных
4. nbLast - перемещение на последнюю запись набора данных
5. nbInsert - вставка новой записи в текущей позиции набора данных
6. nbDelete - удаление текущей записи, курсор перемещается на следующую запись
7. nbEdit - набор данных переводится в режим редактирования
8. nbPost - в базу данных переносятся все изменения в текущей записи
9. nbCancel - все изменения в текущей записи отменяются
10. nbRefresh - восстанавливаются первоначальные значения текущей записи, сделанные после последнего переноса изменений в базу данных.
9. DBGrid - этот компонент инкапсулирует двумерную таблицу, в которой сроки представляют собой записи, а столбцы поля.
Компонент DBGridявляется потомком классов TDBCustomGridи TCustomGridот TCustomGridнаследует все функции отображения и управления работой двумерной структуры данных. Класс TDBCustomGridобеспечивает визуализацию и редактирование полей из набора данных, причем TDBGridтолько публикует свойства и методы класса TDBCustomGrid, не добавляя собственных.
В компоненте TDBGridможно отображать произвольное множество полей использованного набора данных, но число записей ограничивать нельзя, в компоненте всегда присутствуют все записи связанного набора данных. Требуемый набор полей можно составить при двойном щелчке на компоненте, перемещенном на форму, или кнопкой свойства Colums в Инспекторе объектов.
Новая колонка добавляется при помощи кнопки Add New, после этого ее название появляется в списке колонок. Колонки в списке можно редактировать, удалять, менять местами. При помощи кнопки AddAllFieldsв сетку можно добавлять все поля набора данных.
Программирование работы приложения базы данных приведено в листинге (Приложение А).
Для фильтрации записей в наборах данных используются методы Filer, Filtered:
procedure TForm1. RadioGroup1Click (Sender: TObject);
begin
if RadioGroup1. ItemIndex=0 then Table3. Filtered: =false
else
begin
if RadioGroup1. ItemIndex=2 then
begin
table3. Filtered: =true;
Table3. Filter: ='Nomer_reisa='+ComboBox1. Text; end
else
begin
if RadioGroup1. ItemIndex=3 then
begin
table3. Filtered: =true;
Table3. Filter: ='Nomer_voditelya='+ComboBox2. Text; end
else
begin
if RadioGroup1. ItemIndex=4 then
begin
table3. Filtered: =true;
Table3. Filter: ='Nomer_avtobysa='+ComboBox3. Text; end
else
Table3. Filtered: =False;
end;
end; end;
end;
Для формирования поставленных в задании запросов воспользуемся языком запросов SQL.
1. Выдать информацию о наличии свободного билета на рейс.
select distinct nomer_reisa, kolichestvo_mest, prodannie_mesta
from reis, avtobys
where (avtobys. nomer_avtobysa=reis. nomer_avtobysa)
and (kolichestvo_mest-prodannie_mesta) >0
2. Вывести список рейсов в один и тот же город с указанием времени пути и стоимости билета.
select distinct nomer_reisa, pynkt_naznacheniya, stoimost, vremya_v_pyti
from reis, bilet
where (bilet. nomer_reisa=reis. nomer_reisa)
and pynkt_naznacheniya='+''''+Edit14. Text+''''
Во втором запросе я воспользовалась дополнительно компонентом Edit для того, чтобы пользователь мог выбрать необходимый пункт назначения и получить необходимую информацию об этом рейсе.
В данной курсовой работе была разработана база данных "Автостанция".
С помощью моей базы данных можно без затруднений и специальных знаний вести базу данных, которая позволяет делать все операции с рейсами, водителями рейсов и билетами на рейс. То есть добавлять, изменять, удалять и просматривать все имеющиеся и вводимые данные.
Кнопочная форма позволяет просматривать отчеты о наличии свободных билетов на рейс, информацию о рейсах в указанный город.
База данных содержит следующую информацию: данные о рейсе (дата, пункт отправления, пункт назначения, номер автобуса, номер водителя, время в пути), сведения о водителе (ФИО водителя, смена), данные о билетах (стоимость) и данные об автобусе (пункт отправления, назначения, количество мест).
Данная курсовая работа является актуальной и отвечает предъявленным к ней требованиям. Была разработана и написана на языке программирования высокого уровня Borland Delphi 7.0.
база программирование автовокзал информационный
1. Архангельский А.Я. Программирование в Delphi5. - М.: ЗАО “Издательство БИНОМ”, 2000. - 1070с.: ил. (ч/з ПаУ)
2. Фаронов В.В. Программирование баз данных в Delphi6. Учебный курс. - СПб.: Питер, 2002. - 352с.: ил.
3. Дарахвелидзе П.Г., Марков Е.П. Delphi - среда визуального программирования: - СПб.: BHV - Санкт-Петербург, 1996. - 352с.
4. Гофман В.Э., Хомоненко А.Д. Delphi. Быстрый старт. - СПб.: БХВ - Санкт-Петербург, 2002. - 208с.: ил. (ч/з ПаУ)
5. Фаронов В.В. Delphi4. Учебный курс. - М.: "Нолидж", 1999. - 464с.: ил. (ч/з ПаУ)
6. Фаронов В.В. Delphi 5 Учебный курс. - М.: "Нолидж", 2000. - 606с.: ил. (ч/з ПаУ)
7. Фаронов В.В. Delphi 6. Учебный курс. - М.: Издатель Молгачева С.В., 2002. - 672с. (ч/з ПаУ)
8. Фаронов В.В. Шумаков П.В. Delphi4. Руководство разработчика баз данных. - М.: “Нолидж”, 1999. - 560с.: ил.
9. Фаронов В.В. Шумаков П.В. Delphi5. Руководство разработчика баз данных. - М.: “Нолидж”, 2000. - 640с.: ил. (ч/з ПаУ)
10. Хендерсон К. Руководство разработчика баз данных в Delphi2/Пер. с англ. - К.: "Диалектика", 1996. - 544с.
11. Культин Н.Б. Delphi6. Программирование на ObjectPascal. Самоучитель. - СПб.: БХВ-Петербург, 2001. - 528с.: ил. (ч/з ПаУ)
12. Базы данных: интеллектуальная обработка информации В.В. Корнеев, А.Ф. Гареев, С.В. Васютин. - М.: Нолидж, 200. - 352с.: ил. (ч/з ПаУ)