Программирование >>  Программный интерфейс приложений 

1 ... 237 238 239 [ 240 ] 241 242 243 ... 264


ременную, а не собственно переменную. Имя переменной, заканчивающееся суффиксом ref , показывает, что значением переменной является ссылка.

В последующем материале некоторые переменные имеют специальное значение. Все они описаны в табл. Ж 1.

Таблица Ж.1. Специальные имена переменных Perl DBI

Имя Значение

$drh Дескриптор объекта драйвера

$dbh Дескриптор объекта базы данных

#sth Дескриптор объекта оператора (запроса)

$f h Дескриптор открытого файла

$h Общий дескриптор (значение зависит от контекста задания)

$гс Код возврата операций, возвращающих значение True или False

$rv Возвращаемое значение выполнения операций, являющееся целым числом

$rows Возвращаемое значение операций, представляющее количество строк

@агу Массив (список), представляющий возвращенную запросом строку значений

Многие описанные далее методы успешно считывают аргумент %attr с атрибутами, воздействующими на работу метода. Задавать этот аргумент необходимо посредством ссылки, что можно реализовать двумя способами. Первый способ - сначала определить содержимое атрибутов %attr, а затем задать его методу:

ту (%attr) = (AttrNamel => valuel, AttrName2 => value2); Sret val = Sh-method (..., \%attr);

Второй способ заключается в задании хэща непосредственно при вызове метода:<4

$ret val = $h->m8thod (..., {Attrnamel => valuel, AttrName2 => value2});

Необязательная информация задается в квадратных скобках ([]). Способ использования метода или функции определяется последовательностью вызова. Так, последовательность DBl-> отражает метод класса интерфейса DBI, DBI: : - функцию DBI, а $DBI:: - переменную DBI. Если метод вызывается с помощью дескриптора, имя этого дескриптора отражает область применения метода. Например, дескриптор $dbh-> указывает на метод дескриптора базы данных, $sth-> - метод дескриптора оператора, а $h-> - метод, который можно вызывать



с разными дескрипторами. Рассмотрим, например, последовательность вызова:

@row ary = $dbh->selectrow array (Sstatement, [\%attr [, @bind values]]);

Как видно, метод selectrow array () определяется как метод дескриптора базы данных, поскольку вызывается с помощью дескриптора $dbh-> . В качестве параметров его вызова выступают аргументы $statement (скалярное значение), %attr (хэщ, который необходимо задавать как ссылку, что определяется первым символом \ ) и @bind values. Второй и третий параметры являются необязательными. В качестве возвращаемого значения выступает массив.

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

например, DESCRIBE. EXPLAIN ИЛИ SHOW.

Методы класса DBI

Для описанных в этом разделе методов атрибут %attr может исполюо-ваться с целью определения атрибутов обработки методов. Для MySQL наиболее важными являются атрибуты PrintError и RaiseError. Например, чтобы, определить автоматическое завершение сценария в случае возникновения ошибки DBL достаточно акгивизировать атрибут RaiseError:

$dbh = DBI->connect ($data source, $user name, Spassword, {RaiseError => 1}) ;

Атрибуты PrintError и RaiseError рассматриваются в разделе Атрибуты интерфейса DBI далее в этой главе.

@агу = DBl->available drivers ([$quiet]); Возвращает список доступных драйверов интерфейса DBI. Если этот метод находит несколько драйверов с одинаковыми именами, то выводит на экран предупреждение. Для отмены вывода предупреждения установите значение параметра $ quiet равным 1.

$dbh = DBI->connect ($data source, $user namem $password [, \%attr]); Метод connect 0 устанавливает соединение с сервером и возвращает дескриптор базы данных. Если попьпка установления соединения не была успешной, возвращается значение undef. Для заверщения установленного ранее соединения необходимо вызвать метод disconnect {) с дескриптором, возвращенным ранее методом connect().



Все заданные параметром %attr атрибуты метода connect О глобально воздействуют на обработку интерфейса DBI.

Источник данных можно задать в нескольких формах. Первая часть его всегда задается как DBI:mysql , где имя интерфейса DB1 можно определять символами любого регистра, а имя драйвера mysql обязательно должно вводиться строчными буквами. Остальная часть имени источника данных преобразуется драйвером, поэтому представленный в последующем описании синтаксис применять для всех драйверов необязательно.

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

$data source = DBI:mysql:dbjiame ;

$data source = DBI-.mysql: rf6 name:/ios? name ;

Базу данных можно задать с помощью параметра dbname или предложения database=rf/) /7ame. Перед каждой опцией необходимо ставить точку с запятой. Драйвер MySQL распознает следующие опции.

host=host name. Компьютер, с которым устанавливается соединение. С помощью формата host пате:port пате можно также определить номер порта.

port=port num. Номер порта, через который устанавливается соединение.

mysql compression=l. Эта ОПЦИЯ активизирует средства сжатия при взаимодействии между клиентом и сервером MySQL.

Опция mysqlcompression работает только в версиях MySQL, начиная с 3.22.3 и более поздних и версиях DBD: :mysql версии L19.20 и выще.

mysql read default file=.fiie name. По умолчанию сценарий DBI не считывает конфигурационные файлы MySQL и не использует записанные в них значения параметров MySQL. Используя эту опцию, можно задать подобное считывание параметров и определить считываемый конфигурационный файл. Имя файла должно содержать полный путь к файлу. (Иначе его путь будет рассматриваться относительно каталога, в котором запускается сценарий, что может привести к довольно неожиданным результатам.)

Чтобы определить считывание файла . ту. cnf из корневого каталога при каждом запуске сценария, задайте имя файла $ENV{HOME}/.my.cnf. Эта возможность оказывается исключительно эффективной, если ожидается, что сценарий будет использоваться несколькими пользователями, каждый из которых будет устанавливать соединение от своего, а не от общего имени.



1 ... 237 238 239 [ 240 ] 241 242 243 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика