Perl для системного администрирования



              

Использование ODBC


Основные шаги при использовании ODBC похожи на только что рассмотренные действия с DBI.

Шаг 1: Загрузите нужный модуль Perl

use Win32::ODBC;

Шаг 2: Соединитесь с базой данных и получите дескриптор соединения

Перед тем как установить соединение в ODBC, следует выполнить один дополнительный шаг. Нужно создать имя источника данных (Data Source Name, DSN). DSN - это именованная ссылка, в которой хранится конфигурационная информация (например, имя сервера и базы данных), необходимая для доступа к источнику информации, такому как SQL-сервер. Имена источников данных бывают двух типов:

пользовательские (user) и системные (system), различающиеся тем, будет ли соединение доступно одному пользователю на машине либо любому пользователю или службе.

DSN можно создать либо из панели управления ODBC в Windows NT/2000, либо программным образом из Perl. Мы пойдем вторым путем, хотя бы для того, чтобы не вызывать насмешек со стороны пользователей Unix. Вот как можно поступить для создания пользовательского имени источника данных на сервере MS-SQL:

и создаем пользовательское имя источника данных на Microsoft-SQL-сервере

# Замечание: чтобы создать системное имя источника данных,

 замените ODBC_ADD_DSN на ODBC_ADD_SYS,DSN

if (Win32::ODBC::ConfigDSN(

ODBC_ADD_DSN,

"SOL Server",

("DSN=PerlSysAdfr-", "DESCRIPTION=DSN for PerlSysAdm"

"SERVER=mssql.happy.edu".

 имя сервера

"ADDRESS=192.168, 1. 4".

it IP-адрес сервера

"DATABASE=sysadm",

"NETWORK=DBMSSOCN".

print "DSN создам--} else {

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

соединяемся с DSN, возвращаем дескриптор базы данных

$dbh=new Win32::ODBC("DSN=PeriSysAdm;UID=$username; PWD=$pw; ");

die "Невозможно соединиться с DSN PerlSysAdm:" . Win32::ODBC::Erroi() "\n"

unless (defined $dbh);

Шаг З: Отправьте команды SQL на сервер

ODBC-эквивалент DBI-командам do(), prepare() и execute() немного проще, потому что модуль Win32: :ODBC имеет один метод Sql() для отправки команды на сервер. Хотя в ODBC теоретически упоминается о подготовке команды и заполнителях, это не реализовано в текущей версии модуля Win32: : ODBC. В Win32: : ODBC также не используются дескрипторы команд; взаимодействие происходит через дескриптор базы данных, открытый ранее при помощи метода new. Так что нам остается команда с простейшей структурой:




Содержание  Назад  Вперед