|
Программирование >> Программный интерфейс приложений
ременную, а не собственно переменную. Имя переменной, заканчивающееся суффиксом 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. Эта возможность оказывается исключительно эффективной, если ожидается, что сценарий будет использоваться несколькими пользователями, каждый из которых будет устанавливать соединение от своего, а не от общего имени.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |