18c0693f

Обзор возможностей объекта Connection


Подведу теперь некоторые итоги и укажу на некоторые дополнительные возможности объекта Connection. Объект задает сеанс работы с источником данных. В случае, когда речь идет об удаленном источнике и клиент-серверном приложении установление соединения означает физическое подключение к серверу в сети.

Хотя большинство свойств и методов этого объекта определено для всех стандартных Провайдеров, тем не менее, есть и специфика, определяемая каждым конкретным Провайдером. Перечислю еще раз те возможности, которые предоставляют свойства и методы объекта:

Sub Fragment() 'Это не исполняемый код, а демонстрационная заготовка Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rst As New ADODB.Recordset 'конфигурирование соединения cnn.Open ConnectionString:= "…" cmd.Name = "NameOfMyCommand" cmd.ActiveConnection = cnn 'запуск команды на выполнение, передавая ей параметры и объект Recordset cnn.NameOfMyCommand "parameter", rst 'запуск хранимой процедуры и передача ей параметров cnn.NameOfMyStoredProcedure "parameter" End Sub


Приведенный пример является лишь иллюстрацией, чтобы он заработал необходимо уточнить опущенные здесь детали. Такие примеры тоже полезны, но, пожалуй, интереснее работающие процедуры. Чтобы проводить эксперименты с объектами ADO, я создал некоторый модуль в программном проекте документа. Приведу сейчас процедуру этого модуля, в которой создается соединение.

'Модуль TestingADO 'Глобальные переменные Public Con1 As New ADODB.Connection Public Cmd1 As New ADODB.Command Public Rst1 As New ADODB.Recordset Public Strm1 As New ADODB.Stream Public Sub CreateConnection() 'Создание соединения с тестовой базой данных Access Dim strConnStr As String If Con1.State = adStateOpen Then Con1.Close 'закрыть соединение 'Вариант 1 'Конфигурирование соединения Con1 Con1.Provider = "Microsoft.jet.oledb.4.0" Con1.ConnectionString = "Data Source=c:\!O2000\DsCd\Ch14\dbPP2000.mdb" Con1.CursorLocation = adUseClient 'Открытие соединения Con1.Open 'Вариант 2 'strConnStr = "Provider=Microsoft.jet.oledb.4.0;" & _ '"Data Source=c:\!O2000\DsCd\Ch14\dbPP2000.mdb" 'Con1.Open strConnStr 'печать характеристик соединения Debug.Print "Attributes = ", Con1.Attributes Debug.Print "CommandTimeout = ", Con1.CommandTimeout Debug.Print "ConnectionString = ", Con1.ConnectionString Debug.Print "ConnectionTimeout = ", Con1.ConnectionTimeout Debug.Print "CursorLocation = ", Con1.CursorLocation Debug.Print "DefaultDatabase = ", Con1.DefaultDatabase Debug.Print "Mode = ", Con1.Mode Debug.Print "Properies.Count = ", Con1.Properties.Count Debug.Print "State = ", Con1.State Debug.Print "Version = ", Con1.Version End Sub

Приведу краткий комментарий.

Attributes = 0 CommandTimeout = 30 ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=c:\!O2000\DsCd\Ch14\dbPP2000.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False ConnectionTimeout = 15 CursorLocation = 3 DefaultDatabase = Mode = 16 Properies.Count = 94 State = 1 Version = 2.5

Обратите внимание на длинную строку ConnectionString. Она, конечно, намного длиннее той строки, которую задал я, определив источник данных. Помимо этого, строка содержит многие характеристики соединения, устанавливаемые по умолчанию. Заметьте также, я напечатал лишь число элементов коллекции Properties, не приводя значений всех 94 элементов.




Все публикации раздела