Здавалка
Главная | Обратная связь

RETURNS DOUBLE PRECISION BY VALUE



ENTRY_POINT 'ROUNDFLOAT' MODULE_NAME 'LIBUDF';

-- функция определение длины строкового поля с

-- отбрасыванием конечных пробелов:

DECLARE EXTERNAL FUNCTIONSTRING_LENGTH

CSTRING(100) -- в функцию передается указатель на

-- строку, заканчивающуюся нулевым

-- символом (#0) и длина здесь должна

-- быть не меньше, чем длина поля CHAR

-- или VARCHAR

RETURNS INTEGER BY VALUE–- возврат по значению ENTRY_POINT 'LENGTH_CHAR_FIELD'

MODULE_NAME 'EducatorUDF';


 

Использование UDF в базе данных

Объявленную в базе данных функцию пользователя можно использовать при создании доменов и таблиц в вычислимых полях, значениях по умолчанию и контрольных ограничениях. Их можно использовать в операторах изменения данных, триггерах, хранимых процедурах и просто в запросах.

Приведем пример запроса с созданными и объявленными выше функциями пользователя:

 

 

это запрос для базы данных Employee.fdb:

SELECTSALARY, HIRE_DATE, ROUNDFLOAT(SALARY, 2), IBDateToStr(HIRE_DATE),

IsDate(HIRE_DATE),

CAST(SALARY AS INTEGER)

FROMEMPLOYEE;


 

 

Задание

Лабораторную работу №10 следует выполнять в следующем порядке:

1. Создать аналогично предыдущим лабораторным работам рабочую папку и назвать ее "ЛР10".

2. Разработать для своей базы данных не менее трех функций пользователя.

3. Создать любым текстовым редактором файл, содержащий текст на языке Pascal с этими функциями. Назвать этот файл таким же именем, как базу данных. Дать ему расширение '.dpr'.

4. Откомпилировать его либо с помощью Delphi 7.0, либо с помощью ком-пилятора командной строки 'dcc32.exe'.

5. Поместить исходный файл проекта и откомпилированную библиотеку в рабочую папку "ЛР10" на сервере для копирования в папку 'UDF'.

6. Скопировать в эту папку файл сценария, созданный при выполнении пре-дыдущей лабораторной работы.

7. Открыть в приложении "IB Expert" этот сценарий.

8. Исправить текст комментариев и сделать, чтобы база данных теперь соз-давалась в папке "ЛР10".

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

10. Выполнить сценарий и сохранить его в папке "ЛР10".

11. Зарегистрировать созданную базу данных в программе "IB Expert" и под-ключиться к ней.

12. Выполнить в окне "SQL Editor" по одному запросу с каждой созданной функцией пользователя. Описать результаты этих запросов в отчете.

13. Создать в папке "ЛР10" резервную копию базы данных.

14. Создать и сохранить в папке "ЛР10" файл с отчетом о выполнении лабо-раторной работы, который должен называться "Отчет.doc".

Ход работы

Для создания файла проекта Delphi с исходным текстом библиотеки можно использовать либо среду программирования Delphi 7.0, либо любой текстовый редактор. Процесс получения откомпилированной библиотеки (файла с расширением '*.DLL') описан в разделе "Создание динамической библиотеки с UDF".

После помещения команд объявления функций пользователя в сцена-рий, его надо выполнить с помощью программы "IB Expert" аналогично пре-дыдущим лабораторным работам.


 

10.7. Отчет о выполнении работы

Отчет о выполнении лабораторной работы №10 необходимо оформить на листах формата A4. Отчет должен содержать описание и результаты рабо-ты, представляемые в следующей последовательности:

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

2. Распечатка исходного текста проекта с функциями пользователя. Обяза-тельно должны присутствовать комментарии ко всему проекту со сведе-ниями о назначении файла и его авторе, а также комментарии к создан-ным функциям пользователя.

3. Текст операторов объявления UDF в базе данных.

4. Операторы, использующие созданные и объявленные в базе данных функции пользователя.

5. Примеры запросов с использованием разработанных функций и описание результата их выполнения.

6. Перечень файлов, полученных при выполнении лабораторной работы с указанием их имен, места расположения, даты изменения и размеров (сценарий, база данных, резервная копия базы данных, исходный текст проекта с функциями пользователя, откомпилированная библиотека с функциями пользователя, файл с отчетом).

10.8. Контрольные вопросы

1. Что такое функция пользователя?

2. Как расшифровывается UDF?

3. Как расшифровывается DLL?

4. Где должна располагаться библиотека, чтобы ее могла использовать СУБД Firebird 1.5?

5. Что означают в исходных текстах на Pascal: cdecl, stdcall, exports, external, Result, PChar?

6. Какие существуют способы передачи параметров в функцию?

7. Какой способ передачи параметров используется для UDF в InterBase?


 








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.