Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laboratornye_raboty.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

Вопросы для контроля

  1. Напишите синтаксис оператора Select.

  2. Что происходит при выполнении данного кода:

procedure TForm_general.N9Click(Sender: TObject); begin f:=0; if ActiveMDIChild.Caption<>'Остатки на складе' then begin for i:=0 to form_general.MDIChildCount-1 do if form_general.MDIChildren[i].Caption='Остатки на складе' then begin MDIChildren[i].Show;f:=1;end; end                                                else f:=1; if f<>1 then Tform_ostatki.Create(Application); end;

  1. Что происходит при выполнении данного кода:

procedure TForm_ostatki.FormClose(Sender: TObject; var Action: TCloseAction); begin dm.ADOQuery_ostatki.Active:=false; Action:=cafree; end;

  1. Что происходит в данном запросе:

SELECT products.product_name, ADOQuery_prihod.id_product, [ADOQuery_prihod].[Sum-quantity]-IIf([ADOQuery_rashod].[Sum-quantity]>0,[ADOQuery_rashod].[Sum-quantity],0) AS ostatok, [ADOQuery_prihod].[sum_price]-IIf([ADOQuery_rashod].[sum_price]>0,[ADOQuery_rashod].[sum_price],0) AS summa, ADOQuery_prihod.id_ed_izmer, products.id_product_group, ed_izmer.ed_name FROM ((ADOQuery_prihod LEFT JOIN ADOQuery_rashod ON ADOQuery_prihod.id_product = ADOQuery_rashod.id_product) LEFT JOIN ed_izmer ON ADOQuery_prihod.id_ed_izmer = ed_izmer.id) LEFT JOIN products ON ADOQuery_prihod.id_product = products.id;

  1. Что происходит в запросе:

SELECT storage.id_product, Sum([storage].[price]*[storage].[quantity]) AS sum_price, Sum(storage.quantity) AS [Sum-quantity], storage.id_ed_izmer FROM storage GROUP BY storage.id_product, storage.id_ed_izmer;

Литература

  1. Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. -СПб.: Питер, 2003.

  2. Бобровский С.И. Delphi 7. Учебный курс. - СПб.: Питер, 2005.

  3. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi. - СПб.: БХВ - Петербург, 2005.

Лабораторная работа № 12

Тема: Создание формы для учета расхода продуктов на складе

Цель: Научиться работать с TQuery

Оборудование и/или программное обеспечение: ПК, Delphi

Теоретическая часть

Связь компонентов с базами данных

Компоненты, используемые для работы с базами данных через BDE, расположены в библиотеке компонентов на страницах Data Access (доступ к данным) и Data Control (управление данными).

Каждое приложение, использующее базы данных, обычно имеет по крайней мере по одному компоненту следующих трех типов:

■ Компоненты — наборы данных (data set), непосредственно связывающиеся с базой данных. Это такие компоненты, как Table, Query, StoredProc.

■ Компонент — источник данных (data source), осуществляющий обмен информацией между компонентами первого типа и компонентами визуализации и управления данными. Таким компонентом является DataSource.

■ Компоненты визуализации и управления данными, такие, как DBGrid, DBText, DBEdit и множество других.

Связь этих компонентов друг с другом и с базой данных можно представить схемой, приведенной на рис. 3.1.

Рис. 3.1

Схема взаимодействия компонентов Delphi с базой данных

Помимо указанных компонентов в приложении может размещаться компонент Database. Этот компонент в основном используется в приложениях, работающих на платформе клиент/сер-вер. Его задачи связаны с общением с удаленным сервером, реализацией транзакций, работой с паролями. Если компонент Database не введен в приложение явно, Delphi автоматически создает его для каждой используемой в приложении базы данных.

Еще один компонент, который тоже автоматически создается Delphi — компонент Session. Это главный компонент любого приложения, работающего с базами данных. Но в явном виде эти компоненты имеет смысл вводить только в многозадачные приложения, в которых параллельно обрабатывается несколько потоков информации. Компонент Session был подробно рассмотрен в книге «Работа с локальными базами данных в Delphi 5» серии «Все о Delphi» и в данной книге этот материал не дублируется.

Возможности приложения, работающего с базами данных, определяются прежде всего тем, какой компонент используется для создания набора данных — Table или Query. Компонент Table не использует в явном виде запросов SQL. Точнее он их использует, но они остаются для пользователя за кадром. Компонент Query специально предназначен для работы с запросами SQL.

Если запрос SQL сводится к просмотру таблицы (запрос Select), то результаты этого запроса (а не сама исходная таблица) помещается во временном файле на компьютере пользователя. Правда, в отличие от набора данных, создаваемого Table, это таблица только для чтения и не допускает каких-то изменений. Впрочем, это ограничение можно обойти, и в дальнейшем будет показано, как это можно делать. Если же запрос SQL связан с какими-то изменениями содержания таблицы, то никаких временных таблиц не создается. BDE передает запрос на сервер, там он обрабатывается и в приложение возвращается информация о том, успешно ли завершена соответствующая операция. Благодаря такой организации работы эффективность Query при работе в сети становится много выше, чем эффективность Table. К тому же язык SQL, рассмотренный в главе 2, позволяет формулировать сложные запросы, которые не всегда можно реализовать в Table.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]