Шаг 56 - Свойство Connect

Описание
Задает или возвращает значение, содержащее сведения об источнике открытого подключения, открытой базе данных, базе данных, используемой в запросе к серверу или присоединенной таблице. Для объектов Database, новых объектов Connection, присоединенных таблиц и объектов TableDef, еще не добавленных в семейство, значение данного свойства доступно для чтения/записи. Для объектов QueryDef и основных таблиц, данное свойство доступно только для чтения.

объект.Connect = типБазыДанных;параметры;

Параметры
объект
Объектное выражение, значением которого является один из объектов, перечисленных в списке "Применение".
типБазыДанных
Необязательный. Выражение типа String, определяющее тип базы данных. Для баз данных Microsoft Jet этот аргумент следует исключить; если при этом задается аргумент параметры, то вместо аргумента типБазыДанных следует подставить точку с запятой (;).
параметры
Необязательный. Выражение типа String, определяющее дополнительные параметры, передаваемые драйверу ODBC или устанавливаемым драйверам ISAM. Отдельные параметры разделяются точкой с запятой.

Значение
Значением свойства Connect (подключение) является строка, образуемая из указателя типа базы данных и произвольного числа параметров, разделяемых точкой с запятой. Свойство Connect используется для передачи дополнительной информации драйверу ODBC и некоторым устанавливаемым драйверам ISAM.
Для выполнения запроса к серверу SQL по таблице, присоединенной к файлу базы данных Microsoft Jet (.mdb), необходимо сначала задать в свойстве Connect базы данных присоединенной таблицы допустимую строку подключения ODBC.
Для объекта TableDef, представляющего присоединенную таблицу, значение свойства Connect может состоять из одного или двух компонентов (указателя типа базы данных и пути к базе данных), каждый из которых должен заканчиваться точкой запятой.
Путь, как показано в следующей таблице, задает полный путь к каталогу, содержащему файлы базы данных, и должен начинаться с идентификатора DATABASE=. В некоторых случаях (для Microsoft Excel и баз данных Microsoft Jet), имя файла необходимо включать в аргумент пути.
В следующей таблице перечислены допустимые типы баз данных, а также соответствующие значения указателя базы данных и формат задания пути к базе данных, которые следует использовать при определении свойства Connect. Можно также указать адрес «FTP://путь/etc.» или «HTTP://путь/etc». В рабочей области ODBCDirect можно использовать только идентификатор "ODBC".

Тип				Указатель базы данных		Пример
База данных Microsoft Jet		[базаДанных];			диск:\путь\имяФайла.mdb
dBASE III				dBASE III;			диск:\путь
dBASE IV				dBASE IV;				диск:\путь
dBASE 5				dBASE 5.0;			диск:\путь
Paradox 3.x 			Paradox 3.x;			диск:\путь
Paradox 4.x			Paradox 4.x;			диск:\путь
Paradox 5.x			Paradox 5.x;			диск:\путь
FoxPro 2.0			FoxPro 2.0;			диск:\путь
FoxPro 2.5			FoxPro 2.5;			диск:\путь
FoxPro 2.6			FoxPro 2.6;			диск:\путь
Excel 3.0				Excel 3.0;			диск:\путь\файл.xls
Excel 4.0				Excel 4.0;			диск:\путь\файл.xls
Excel 5.0 или Excel 95		Excel 5.0;			диск:\путь\файл.xls
Excel 97				Excel 8.0;			диск:\путь\файл.xls
HTML Import			HTML Import;			диск:\путь\файл
HTML Export			HTML Export;			диск:\путь
Текстовая				Text;				диск:\путь
ODBC				ODBC;
				DATABASE=базаДанных;
				UID=пользователь; 
				PWD=пароль;
				DSN= имяИсточника;
				[LOGINTIMEOUT=секунды;]		Не используется
Exchange				Exchange; 
				MAPILEVEL=путьПапки; 
				[TABLETYPE={ 0 | 1 }];
				[PROFILE=профиль;]
				[PWD=пароль;]
				[DATABASE=базаДанных;]		диск:\путь\имяФайла.mdb

Замечания
Если в качестве указателя задать только строку "ODBC;", то драйвер ODBC выводит на экран диалоговое окно со списком имен всех зарегистрированных источников данных ODBC, из которых пользователь сможет выбрать нужную базу данных.
Если для подключения к базе данных требуется пароль, но он не указан в строке значения свойства Connect, то диалоговое окно входа будет выводиться на экран при первом обращении к таблице с помощью драйвера ODBC, а также, если подключение было закрыто и открывается заново.
Для данных Microsoft Exchange в разделе MAPILEVEL должен быть задан полный путь к папке (например, "Mailbox - Pat SmithIAlpha/Today"). Этот путь не включает имя папки, открываемой в виде таблицы; имя этой папки должно задаваться в аргументе имя метода CreateTable. В разделе TABLETYPE должно задаваться значение "0" для открытия папки по умолчанию или значение "1" для открытия адресной книги. В разделе PROFILE по умолчанию используется текущий профиль.
Для основных таблиц в базе данных Micorosoft Jet (.mdb) значением Connect является пустая строка ("").
Значение свойства Connect объекта Database может быть задано с помощью аргумента источник в методе OpenDatabase. Проверка значения данного свойства позволяет определить тип, путь, код пользователя, пароль или источник данных ODBC базы данных.
Для объекта QueryDef в рабочей области Microsoft Jet свойство Connect вместе со свойством ReturnsRecords используют для создания запроса к серверу SQL по протоколу ODBC. Компонент типБазыДанных в строке подключения имеет вид "ODBC;", а в остальной части строки содержится информация, необходимая драйверу ODBC для доступа к данным на удаленном сервере. За более подробным описанием следует обращаться к документации конкретного драйвера.
Значение свойства Connect необходимо задавать до значения свойства ReturnsRecords.
Необходимо иметь разрешения на доступ к компьютеру, на котором находится сервер базы данных, к которому требуется подключиться.

Пример
В данном примере с помощью свойств Connect и ReturnsRecords из базы данных на сервере Microsoft SQL Server отбираются пять книг, имеющих максимальные результаты продаж за год. Если обнаруживается совпадение в результатах продаж, размер выводящегося списка увеличивается и выводится сообщение с объяснением причины.

Sub ClientServerX1()
	Dim dbsCurrent As Database
	Dim qdfPassThrough As QueryDef
	Dim qdfLocal As QueryDef
	Dim rstTopFive As Recordset
	Dim strMessage As String
	' Открывает базу данных, для которой будут 
	' созданы объекты QueryDef.
	Set dbsCurrent = OpenDatabase("DB1.mdb")
	' Создает запрос к серверу для загрузки данных 
	' из базы данных Microsoft SQL Server.
	Set qdfPassThrough = dbsCurrent.CreateQueryDef("ВсеНазвания")
	qdfPassThrough.Connect = "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers"
	qdfPassThrough.SQL = "SELECT * FROM titles " & 	"ORDER BY ytd_sales DESC"
	qdfPassThrough.ReturnsRecords = True
	' Создает временный объект QueryDef для загрузки
	' данных из запроса к серверу.
	Set qdfLocal = dbsCurrent.CreateQueryDef("")
	qdfLocal.SQL = "SELECT TOP 5 title FROM ВсеНазвания"
	Set rstTopFive = qdfLocal.OpenRecordset()
	' Отображает результаты запросов.
	With rstTopFive
	strMessage = "Первые 5 бестселлеров:" & vbCr

		Do While Not .EOF
			strMessage = strMessage & "    " & !Title & vbCr
			.MoveNext
		Loop
		If .RecordCount gt; 5 Then
			strMessage = strMessage & "(В списке " & vbCr & .RecordCount & 	" книг, так как несколько имеют одинаковые результаты)"
		End If
		MsgBox strMessage
		.Close
	End With
	' Удаляет новый запрос к серверу, созданный только для 
	' демонстрации.
	dbsCurrent.QueryDefs.Delete "ВсеНазвания"
	dbsCurrent.Close

End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 25.02.2002