ДонНУ, кафедра КТ, проф. В. К. Толстых Технологии разработки Internet- приложений Среда Delphi: CGI, ISAPI приложения Базы данных Из цикла лекций «Технологии.

Презентация:



Advertisements
Похожие презентации
ДонНУ, кафедра КТ, проф. В. К. Толстых Технологии разработки Internet- приложений Среда Delphi: CGI, ISAPI приложения (В Visual Studio нет прямых и простых.
Advertisements

Проф. В.К.Толстых, Технологии разработки Internet- приложений Delphi for.NET примеры: работа с файлами Из цикла лекций «Технологии разработки.
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: динамические таблицы, привязка данных к выпадающему списку.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: обработка данных форм. работа с формами работа с формами.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – пользовательские элементы управления Из цикла лекций.
ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – валидация, валидационные элементы управления Из цикла.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET примеры: HtmlControls Из цикла лекций «Технологии разработки Internet-приложений»
Проф. В.К.Толстых, Выполнил студент: Тышлек С.В., 2009 Технологии разработки Internet- приложений Из цикла лекций «Технологии разработки.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – класс Control Из цикла лекций «Технологии разработки.
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – локализация ресурсов приложения Из цикла лекций «Технологии.
Проф. В.К.Толстых, Пример Web-службы Калькулятор с валидацией Из цикла лекций «Internet-технологии разработки приложений» для студентов.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Эталонные страницы – Master pages Из цикла лекций «Технологии разработки.
Трехуровневые приложения. Принципы построения трехуровневых приложений.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Основы SQL Запросы к базе данных. Что такое база данных SQL? SQL (Structured Query Language - «Структурированный язык запросов») - универсальный компьютерный.
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Транксрипт:

ДонНУ, кафедра КТ, проф. В. К. Толстых Технологии разработки Internet- приложений Среда Delphi: CGI, ISAPI приложения Базы данных Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета

Работа с базами данных (реляционные, навигационные) Реляционные БД. Примеры SQL-запросов Select * From Shope.dbf выбрать все поля из таблицы Shope.dbf Select Product,Price From Shope выбрать поля Product и Price из Shope.dbf Select Product,Price From Shope выбрать поле Product, где данные начинаются where Product like CPU||% на CPU (|| - объединить, % - любые символы) Update Shope записать в таблицу Shope.dbf Set name = unknown unknown в поле name salary = 0 и 0 – в salary, where number Between -1 and 1 если поле number содержит данные от -1 до +1 Insert Into Shope добавить в таблицу Shope.dbf (code, date) поля code, date Values (1, ) и заполнить их значениями 1 и

Table доступ к данным навигационной БД Основные свойства Table: DataBaseName – псевдоним БД TableName :String – файл таблицы БД Active :Boolean – открыть, связаться с таблицей Основные методы Table: Open – открыть, связаться с таблицей (Active:=True;) Close – разорвать связь с таблицей (Active:=False;)

Query доступ к данным реляционной БД Основные свойства Query: DataBaseName – псевдоним БД Active :Boolean – открыть, связаться с таблицей SQL :TStrings – SQL-запрос, его методы – Clear, Add(строка SQL) RequestLive :Boolean – разрешение на перезапись в БД Text :PChar – текст запроса Основные методы Query: Open – связаться, согласно SQL (Select), с таблицей (Active:=True;) Close – разорвать связь с таблицей (Active:=False;) ExecSQL – сформировать, проверить и выполнить SQL-запрос для изменений БД (вместо Open)

Query – Пример Query1.Close; – отключить БД (на всякий случай) Query1.SQL.Clear; – очистить запрос (на всякий случай) Query1.SQL.Add(Select * from test) – составить запрос Select Query1.Open – подключить БД, выполнить SQL-запрос Вместо метода Query1.Close можно использовать свойство Query1.Active:=False Вместо метода Query1.Open можно использовать свойство Query1.Active:=True

DataSource посредник доступа к БД для других компонент Основное свойство: DataSet – псевдоним БД Например, DBGrid1.DataSource:=DataSource1; Session Создает отдельные потоки доступа к БД для каждого запроса клиента (актуально для ISAPI) Основное свойство Session: AutoSessionName :Boolean – разрешение разным клиентам на одновременный доступ к БД (True)

QueryTableProducer генератор HTML-таблиц на основе SQL-запросов Основной метод: Content – распознает POST/GET-запрос, выделяет из него параметры, инициализирует компонент Query, подставляет полученные параметры в SQL-контейнер Query, подключает БД, создает HTML-таблицу Количество параметров в SQL-запросе должно точно совпадать с количеством параметров в Web-запросе. Параметры SQL-запроса - : параметр Например, Select Product, Price From Shope where Product like :CPU || %

QueryTableProducer Основные свойства: Query – имя компонента Query, содержащего SQL-запрос Caption :String – HTML-код заголовка таблицы Header :TStrings – HTML-код страницы перед таблицей (м.б. PageProducer) Footer :TStrings – HTML-код страницы после таблицы (м.б. PageProducer Columns – массив колонок: Count, Columns[i].BgColor='Gray… визуаль- RowAttributes – свойства строк (атрибуты ): Align, BgColor, VAlign ные TableAttributes – свойства таблицы (атрибуты ): Align, BgColor, Border… Переменные BgColor, Align… описаны в модуле HTTPProd

QueryTableProducer: Header: Ответ Web-сервера Электронный магазин Footer: Спасибо за интерес!

Визуальная настройка HTML-таблицы 2 click Свойство Active:=True Если нет параметров в свойстве SQL

QueryTableProducer Основные события: onCreateContent – перед генерацией HTMLкода, параметр Continue:=False – отмена генерации onGetTableCaption – перед генерацией заголовка таблицы, параметр Caption:=HTML string onFormatCell – перед генерацией каждой ячейки, параметр CellColumn :Integer – номер колонки параметр CellRow :Integer – номер строки параметры форматирования BgColor, Align, VAlign параметр CellData :string – HTML содержимое ячейки

Рекомендации для начального тестирования Web-приложения 1.Создать Web-модуль, поместить Query1, QueryTableProducer1, Session1 2.В Session1 установить AutoSesionName:=True; В QueryTableProducer1 заполнить DataBaseName и Query:=Query1; В Query1 заполнить SQL-контейнер (для тестирования – Select *… без параметров) и установить Active:=True; 3.2 click на QueryTableProducer1 и настроить визуально HTML-таблицу; 4.Далее можно программировать передачу и прием Web-параметров, усложнять вид HTML-таблицы, записывать данные в БД (разрешить NTFS запись в фалы БД) и т.п.

Пример работы с БД Shope.dbf Запрос клиента

Пример работы с БД Ответ сервера

Настройка компонент - БД (Таблица) – создать Alias ShopeCPU, разрешить NTFS запись в фалы БД Свойства Query1 – DatabaseName:ShopeCPU SQL: Select Product,Price From Shope.dbf - простой запрос для тестирования Аctive:True (подключение БД согласно SQL) Свойства QueryTableProducer1 – Query:Query1 Caption: Таблица процессоров серии Header: Ответ Web-сервера Электронный магазин Footer: Спасибо за интерес! Columns: … (визуально) Свойства Session1 – АutoSessionName: True

Запрос клиента Электронный магазин Показать таблицу процессоров серии Celeron Показать таблицу процессоров серии P-2 Показать таблицу процессоров серии P-3 Показать таблицу процессоров серии P-4

Простые примеры ответа сервера, обработчик события onAction Пример простого обработчика onAction : procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin Response.Content:=QueryTableProducer1.Content; end; Пример SQL запроса без параметров (тестирование связи): Query1.SQL: Select Product,Price,Demand From Shope.dbf where Product like P-2" || "%" Пример SQL запроса с параметром: Query1.SQL: Select Product,Price,Demand From Shope.dbf where Product like :CPU || "%" Ответ – только процессоры P-2… Ответ – процессоры в соответствие с одним параметром CPU в запросе

Усложненные примеры (чтение/запись в БД) procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin // сформировать Web-клиенту требуемую (параметр :CPU) таблицу: Response.Content:=QueryTableProducer1.Content; Response.SendResponse; // отправить таблицу Web-клиенту // занести в базу данные об этом запросе: With Query1 Do begin Close; SQL.Clear; SQL.Add('Update Shope.dbf'); SQL.Add('Set Demand=Demand+1'); // статистика запросов SQL.Add('where Product'); SQL.Add(' like "'+Request.ContentFields.Values['CPU']+'" || "%"'); ExecSQL; // составить, проверить и выполнить SQL-запрос Close; end;

Обработчик события onGetTableCaption // Оформление заголовка таблицы procedure TWebModule1.QueryTableProducer1GetTableCaption(Sender: TObject; var Caption: String; var Alignment: THTMLCaptionAlignment); begin Caption:=' Таблица процессоров серии '+ Request.ContentFields.Values['CPU']+' '; end; Обработчик события onFormatCell procedure TWebModule1.QueryTableProducer1FormatCell(Sender: TObject; CellRow, CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign; var VAlign: THTMLVAlign; var CustomAttrs, CellData: String); begin if (CellRow>0)and(CellColumn=0) Then // в первом столбце, кроме заголовка - CellData:=' '+CellData+' - заказать '; end;