Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Другие возможности полиморфизма

Возможность в классах-потомках перегрузить методы базового класса была описана в примере выше. Основной конструкцией для использования других возможностей полиморфизма является конструкция instanceof для проверки принадлежности объекта заданному классу. Конструкция instanceof позволяет для объекта класса-потомка определить его принадлежность базовому классу.

Использование данной конструкции поясняет пример:

<?php abstract class Base_Class {   public function method1( $p1="", $p2="" )   {     echo "Вызвали method1 базового класса<br />";   } } class Child_Class1 extends Base_Class {   // этот метод перегружает метод базового класса   public function method1( $p1="" )   {     echo "Вызвали method1 класса потомка 1<br />";   } } class Child_Class2 extends Base_Class {   // этот метод перегружает метод базового класса   public function method1( $p1="" )   {     echo "Вызвали method1 класса потомка 2<br />";   } } // создадим массив из двух классов - потомков, классы различны $arr = array( new Child_Class1(), new Child_Class2() ); // этот фрагмент кода использует только базовый класс, но может // применяться с потомками foreach( $arr as $v ) {   // убеждаемся, что работаем с Base_Class или его потомками   if( $v instanceof Base_Class )   {     // работаем с Base_Class, стало быть, можем вызывать method1()     // реально будут вызваны методы потомков     $v->method1();   } } ?>

6.4.5 Исключения Исключения

В PHP имеются конструкции для структурированной обработки исключений. Эти конструкции задаются парами ключевых слов try, catch. Использование try, catch аналогично другим распространенным языкам программирования (например, Java или C#). Для информации об ошибке при возникновении исключения используется объект класса Exception. Для генерации исключения используется конструкция throw.

Пример:

<?php function divide($x,$y) {   // выполняем генерацию исключения   if($y==0)   {     throw new Exception("деление на ноль недопустимо");   }   return $x/$y; } // открываем блок в котором может быть отловлено исключение try {   // исключение возникнет при делении на 0   divide(3,0); } catch (Exception $e) {   // обрабатываем ошибку   // выведем сообщение о том что на 0 делить нельзя   echo $e->getMessage(); } ?>

7. Совместное использование языка PHP и СУБД HyTech

Дается описание функций расширения PHP для СУБД HyTech. Рассматривается комплексный пример работы приложения с использованием PHP и СУБД HyTech.

7.1 API HyTech в среде PHP

Основные функции API HyTech в среде PHP

Рассмотрим основные функции API HyTech в среде PHP. Эти функции следует разбить на следующие группы:

  • Функции для соединения и отключения от сервера HyTech;

  • Функции для выполнения SQL-запросов;

  • Функции для работы с результатами SQL-запросов;

  • Функции для работы с типами DATE и ARRAY в HyTech;

  • Функции для пакетного ввода данных;

  • Функции диагностики ошибок.

7.1.1 Функции для соединения и отключения от сервера HyTech

Соединение с сервером HyTech, функция hytech_connect

Соединение с сервером HyTech выполняется при помощи функций hytech_connect и hytech_pconnect.

Функция hytech_connect предназначена для временного подключения к серверу. Временное подключение – это такое подключение, которое существует в течение обработки одного запроса от клиента к серверу. Каждый раз, при вызове hytech_connect устанавливается новое соединение с сервером. Это соединение может быть закрыто при помощи вызова функции hytech_close или будет закрыто автоматически перед передачей ответа клиенту.

Формат вызова:

ConnId = hytech_connect ( host, user_name, password, charset );

Аргументы:

Аргумент

Тип

Значение

host

String

Адрес для доступа к серверу HyTech (используется стандартная нотация HyTech), например: tcpip:/localhost:13000.

user_name

String

Имя пользователя.

password

String

Пароль.

charset

Integer

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

  • HYTECH_CHAR_WIN – результаты в кодировке Windows;

  • HYTECH_CHAR_DOS – результаты в кодировке Dos.

Результат:

Тип

Значение

Resource

Идентификатор соединения, а случае неуспешного соединения возвращается NULL.

При вызове hytech_connect допускаются следующие комбинации параметров:

host, charset user_name, password host, user_name, password host, password, charset host, user_name, password, charset

Функция hytech_connect распознает, что именно указали в параметрах, по количеству параметров и их типам. Кроме того, параметры  для вызова hytech_connect могут быть заданы по умолчанию в файле настроек PHP php.ini. Могут быть заданы следующие параметры: hytech.default_host, hytech.default_user, hytech.default_password (адрес сервера, пользователь по умолчанию, пароль по умолчанию). Все параметры, связанные с HyTech, задаются в секции [Hytech] файла настроек.

Пример:

[Hytech] hytech.default_host = "tcpip:/localhost:13000" hytech.default_user = "HTADMIN" hytech.default_password = "PASSWORD"

Успешность соединения можно проверить при помощи функции hytech_errno. Эта функция возвращает код последней ошибки HyTech. Если функция выполнена успешно, то hytech_errno вернет 0.