Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

13.2 Объект ADO.Connection и коллекция Errors

Объект ADO.Connection, подключение к базе данных из VBScript, свойство ConnectionString, генерация строки подключения OLE DB при помощи файла UDL, обработка ошибок при подключении к базе данных, коллекция Errors

Создание объекта Connection производится очень просто. Например, чтобы подключиться к базе данных Northwind на сервере SQL Server с именем LONDON, можно использовать код вида

Dim cn

Set cn = CreateObject("ADODB.Connection")

cn.Provider = "SQLOLEDB"

cn.ConnectionString = "User ID=SA;Password=password;Data Source = LONDON1;" _

& "Initial Catalog = Northwind"

cn.Open

В принципе, этого вполне достаточно, чтобы создать работающий объект соединения (чтобы в этом убедиться, можно, например, выполнить команду Wscript.Echo cn.State до и после открытия). Однако есть смысл подробнее поговорить про различные свойства и методы этого объекта.

·        свойство Provider определяет драйвер, который будет использован для подключения к базе данных. Обычно используются два типа драйверов для подключения - драйверы OLE DB и ODBC. Если есть возможность, необходимо использовать подключение по OLE DB - более современный способ, который работает намного быстрее. Свойство Provider необходимо указывать только при подключении по OLE DB, при подключении по ODBC все необходимые параметры передаются при помощи свойства ConnectionString. Значения свойств Provider для подключения к разным источникам данных могут выглядеть так:

o       "Microsoft.Jet.OLEDB.4.0" - для подключений к файлам Access и Excel и другим источникам данных на основе Jet;

o       "SQLOLEDB" - для подключений к SQL Server (как в примере)

o       "MSDAORA.1" - для подключений к серверу Oracle;

o       "ADsDSOObject" - для подключения к базе данных службы каталогов Windows.

·        свойство ConnectionString - главное свойство объекта Connection. Оно определяет параметры подключения к источнику (его значение представляет из себя набор параметров, разделенных разделителем - точкой с запятой, порядок их значения не имеет). В нашем примере мы передали четыре значения параметра - User ID - идентификатор пользователя (это значит, что мы используем подключение SQL Server), Password - пароль password и Data Source - имя сервера баз данных, Initial Catalog - имя базы данных на этом сервере. Для передачи ConnectionString можно использовать и метод Open. Если бы использовали подключение Windows к SQL Server, код для подключения мог бы выглядеть так:

Dim cn

Set cn = CreateObject("ADODB.Connection")

cn.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=london1"

При подключении к файлу Access или Excel строка подключения могла бы выглядеть так:

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Борей.mdb"

Проще всего создать строку соединения при помощи файла UDL. Для этого нужно создать обычный текстовый файл, переименовать его так, чтобы его расширение выглядело как .udl (от user data link), щелкнуть два раза мышью и настроить параметры подключения. Потом можно открыть этот файл в блокноте и скопировать сгенерированную строку. Можно использовать в connection string и просто ссылку на созданный файл UDL:

cn.ConnectionString = "File Name = d:\mylink.udl"

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

Для подключения по ODBC рекомендуется вначале создать источник данных ODBC (через Панель управления -> Источники данных (ODBC), а затем точно так же сгенерировать строку подключения при помощи файла UDL, выбрав драйвер Microsoft OLE DB Provider for ODBC Drivers.

·        метод Open позволяет открыть соединение с базой данных (и проверить его работоспособность). В качестве параметра может принимать строку подключения, имя пользователя и пароль.

·        метод Close позволяет закрыть соединение (объект соединения при этом из памяти не удаляется). Чтобы полностью избавиться от этого объекта, можно использовать код

cn.Close

Set cn = Nothing

            или просто Set cn = Nothing - разрыв соединения произойдет автоматически.

Для этого объекта предусмотрено множество других свойств и методов, однако здесь они рассматриваться не будут (за дополнительной информацией можно обратиться к документации или учебным курсам Microsoft). Единственное свойство, которое обязательно необходимо рассмотреть - это свойство Errors, которое возвращает коллекцию объектов Error - ошибок. Ошибки при установке или работе соединения встречаются очень часто (неверно введен пароль или имя пользователя, у пользователя недостаточно прав на подключение, невозможно обратиться к компьютеру по сети и т.п.), поэтому настоятельно рекомендуется реализовывать в программе обработку ошибок. Самый простой вариант реализации обработчика ошибок может выглядеть так:

Dim cn

Set cn = CreateObject("ADODB.Connection")

cn.Provider = "SQLOLEDB"

cn.ConnectionString = "User ID=SA;Password=password;Data Source = LONDON1;" _

& "Initial Catalog = Northwind"

On Error GoTo CnErrorHandler

cn.Open

Exit Sub

CnErrorHandler:

For Each ADOErr In cn.Errors

Debug.Print ADOErr.Number

Debug.Print ADOErr.Description

Next

End Sub

На практике перехватываются ошибки, характерные для данного подключения (нет файла Access, ошибка пароля или имени пользователя при подключении к SQL Server, нет прав, файл открыт в исключительном режиме и т.п.). и пользователю предлагается исправить ошибку.

Самые важные свойства объекта ADOError:

·        Description - описание ошибки. Обычно наиболее важная информация содержится именно в описании.

·        Number - номер ошибки. По номеру удобно производить поиск в базе знаний и в Интернет.

·        Source - источник ошибки. Эта информация полезна только в том случае, если в коллекции Errors могут оказаться ошибки из разных источников.

·        SQLState и NativeError - информация о возникшей ошибке, которая пришла с  SQL-совместимого источника данных.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru