Проектирование информационных систем

Автор работы: Пользователь скрыл имя, 20 Октября 2009 в 15:59, Не определен

Описание работы

Загайнов И.А. Проектирование информационных систем: Конспект мультимедиа лекций для студентов специальностей 050704 – Вычислительная техника и программное обеспечение, 050703 – Информационные системы.

Файлы: 1 файл

kml_pis_2008.doc

— 2.82 Мб (Скачать файл)

    2. IBQuery и IBDatabase

    3. DataSource и IBQuery

    4. DBGrid и DataSource

Демонстрация проектирования приложения. 

      7.31 Параметры Query.

Для задания свойства SQL используется окно редактора запросов, вызов которого осуществляется нажатием поля этого свойства или выбором функции Edit SQL всплывающего меню компонента.

    SELECT * FROM FIND_DIV(:in_divis),

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

Свойство  Params позволяет задать в Инспекторе Объектов свойство нашего параметра in_divis:

    ParamType – ptInput,

    DataType – ftString.  

      7.32 Код вызова.

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

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    IBQuery1.Close;

    IBQuery1.ParamByName('in_divis').Value := StrToInt(Edit1.Text);

    IBQuery1.Open;

    end;

После выполнения всех действий проект компилируется  и в запущенном приложении проверяется  работа процедуры.  

      7.33 Ошибки.

Нет соединения с БД, не запущен сервер.

Не  преобразован тип данных параметров.

Превышение  лимита подключений клиентов.

Используется  не тот метод, или не в той последовательности.

Выбрана не та процедура.

Работа  не с тем файлом БД, копия файла  в другом каталоге. 

      7.34 Вызов ХП действия.

Для вызова хранимой процедуры действия из приложения клиента используется специальный класс компонентов TStoredProc.

Рассмотрим  последовательность действий для вызова процедуры INS_DIV, выполняющей добавление записи в таблицу DIVISION, содержащий код:

    BEGIN

    INSERT INTO DIVISION (NUM_DIV, NAME_DIV, "LEVEL", MAIL_DIV)

    VALUES (:NUM_D, :NAME_D, :LEVELS, :e_mail);

    END  

В процедуре  определяется четыре входных параметра

    NUM_D, :NAME_D, :LEVELS, :e_mail  

в соответствии с полями таблицы. 

      7.35 Проверка в Expert.

В среде  проверка работы процедуры производится двумя способами, выполнением SQL оператора и запуском с консоли:

 

      7.36 Приложение.

Добавляем в проект с вкладки InterBase поочередно следующие компоненты: IBTable; IBStoredProc. Для ввода значений параметров добавляем с вкладки Standard три компонента Edit. В результате форма примет вид:

 

      7.37 Связи компонентов.

    1. IBTransaction и IBDatabase 

    2. IBTable и IBDatabase, выбрать таблицу

    3. IBStoredProc и IBDatabase, выбрать процедуру

    4. DataSource и IBTable

    5. DBGrid и DataSource

Демонстрация. 

      7.38 Параметры StoredProc.

Настройка свойств компонента хранимой процедуры  заключается в выборе имени требуемой  процедуры, свойство StoredProcName. После чего можно просмотреть созданные параметры:

      0 – NUM_DIV;

      1 – NAME_DIV;

      2 – LEVELS;

      3 – E_MAIL.

Определение типа данных происходит автоматически, в соответствии с типами данных Delphi, как и индексация параметров. 

      7.39 Код вызова.

В обработчике  TForm1.Button1Click (Sender: TObject), сделаем следующие изменения:

    {IBQuery1.Close;

    IBQuery1.ParamByName('D_EMP').Value := StrToInt(Edit1.Text);

    IBQuery1.Open;}

    IBStoredProc1.ParamByName('NUM_DIV').Value:=StrToInt(Edit1.Text);

    IBStoredProc1.ParamByName('NAME_DIV').Value:=(Edit2.Text);

    IBStoredProc1.ParamByName('LEVELS').Value:=StrToInt(Edit3.Text);

    IBStoredProc1.ParamByName('E_MAIL').Value:=(Edit4.Text);

      IBStoredProc1.ExecProc;

    IBTable1.Refresh;

Обратить  внимание на отсутствие ограничений  полей. 

      7.40 Вопрос.

Сколько раз в разработанном приложении можно нажать на клавишу «Button1»  с введенным набором данных, без появления ошибки?

1. Один.

2. Любое  количество раз.

3. По  одному разу для каждого нового  набора данных.

4. По  одному разу для каждого наименования  подразделения.

5. Нет  правильного ответа. 

      7.41 Заключение.

Механизм  хранимых процедур, как самый универсальный и экономичный используется:

Для ведения данных серверных БД;

Для формирования наборов данных для  построения отчетов;

При реализации сложных алгоритмов бизнес-правил, обеспечивающих целостность БД;

При формировании результатов сложных  поисковых запросов. 

      7.42 Ограничения.

Механизм  ХМ не может управлять структурой данных.

В отличии  от компонента запроса (Query), в коде хранимой процедуры нельзя выполнять операторы управления структурой данных, таких как, CREATE … ,  ALTER… , DROP… и других.

Реализация функции управления зависит от программной реализации SQL – сервера. Например, MS SQL – сервер позволяет в хранимой процедуре выполнять оператор CREATE TABLE…

Вызов одной процедуры из нескольких приложений может привести к исключительной ситуации, вызванной нарушением ссылочной целостности данных, такие вопросы решаются на уровне управления транзакциями. 

      7.43 Вопрос.

Какой SQL – оператор создания хранимой процедуры не будет выполнен: 

A) CREATE PROCEDURE Name_SP ( EMP_NO SMALLINT,   PROJ_ID CHAR(5))

     AS BEGIN BEGIN

INSERT INTO "N_table" (emp_no, proj_id) VALUES (:emp_no, :proj_id);

WHEN SQLCODE -530 DO EXCEPTION unknown_emp_id;

END SUSPEND; END ^

B) CREATE PROCEDURE Name_SP (Var_I  INTEGER)

     AS BEGIN

     INSERT (Col_Value) INTO "N_table" VALUES (:Var_I);

     END^

C) CREATE PROCEDURE Name_SP

     RETURNS (CODE VARCHAR(5), COUNTRY VARCHAR(15), LANG VARCHAR(15))

    AS BEGIN

    FOR SELECT job_code, job_country FROM job INTO :code, :country DO

    BEGIN  FOR SELECT languages FROM show_langs  (:code, :country) INTO :lang DO

    SUSPEND; code = '====='; country = '==============='; lang = '==============';

    SUSPEND;  END  END ^

D) Все SQL – операторы будут выполнены. 

      7.44 Вопросы по 4 лабораторной.

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

Параметры хранимых процедур, определение параметров в теле процедуры.

Совместимость типов данных SQL – сервера и среды разработки приложений Delphi.

Операторы алгоритмического языка триггеров  и хранимых процедур.

Особенности использования оператора SELECT в теле хранимой процедуры.

Операторы организации циклов в процедурах.

Вызов процедур в среде управления SQL – сервера, параметры анализа выполнения процедур.

Вызов процедур из приложения клиента. Использование  процедур одновременно несколькими клиентскими приложениями.

Вызов процедур действия из приложения клиента, компонент TSTOREDPROC.

Вызов процедуры выбора, отображение набора данных, навигация по набору данных, изменение полученных данных.  

      7.45 Задания СРСП.

1. Выбор  и защита не менее четырех процессов, реализуемых ХП;

2. Ответить  на контрольные вопросы четвертого  модуля [1];

3. Провести  отладку SQL – кода спроектированных хранимых процедур;

4. Защитить  отчет по четвертой лабораторной  работе;

5. Защитить  отчет по разделу 3.3 курсовой работы [2];

6. Разработать  пример вопроса тестового задания  по теме раздела.  

      7.46 Задания СРС.

1. Изучить  методические указания к четвертой  лабораторной работе [1];

2. Ответить  на примеры тестовых заданий  к четвертому модулю [1];

3. Изучить код ХП, используемых в учебной БД (FONEBOOK.GDB);

4. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE, EXECUTE PROCEDURE, SELECT;

5. Изучить  конспект 7,8 лекций, агрегатные функции  SQL – сервера [3];

6. Проектирование  индивидуальной функции пользователя (UDF).  

      7.47  Демонстрация.

Создание  хранимой процедуры действия, выводящей  агрегированные значения.

Вызов ХП в редакторе SQL – запросов.

Порядок создания ХП выбора, метод от простого к сложному.

Вызов ХП выбора при помощи оператора SELECT.

Отладка процедуры средствами IBExpert.

Проектирование  приложения для вызова ХП выбора, связи  компонентов.

Проектирование  приложения для вызова ХП действия.

Изменение и удаление хранимых процедур. 

      7.48  Тренировочный тест, 10 вопросов. 

Ответы

1 2 3 4 5 6 7 8 9 10
                   

Информация о работе Проектирование информационных систем