Шаг 11 - Метод OpenDatabase

Описание
Открывает указанную базу данных в объекте Workspace и возвращает ссылку на объект Database, представляющий эту базу данных.

Set базаДанных = рабочаяОбласть.OpenDatabase (имяБД, параметры, толькоЧтение, подключение)

Параметры
базаДанных
Объектная переменная, представляющая открываемый объект Database.
рабочаяОбласть
Необязательный. Объектная переменная, представляющая существующий объект Workspace, который будет содержать базу данных. Если аргумент рабочаяОбласть не задан, метод OpenDatabase использует стандартную рабочую область.
имяБД
Выражение или переменная типа String, задающая имя существующего файла базы данных с ядром Microsoft Jet или имя источника данных ODBC. Дополнительные сведения о значениях данного аргумента см. в разделе справки для свойства Name.
параметры
Необязательный. Выражение или переменная типа Variant, задающая параметры базы данных.

Для рабочей области ядра Microsoft Jet:

Для рабочей области ODBCDirect:

толькоЧтение
Необязательный. Значение типа Variant (подтип Boolean), имеющее значение True, если база данных открывается только для чтения, и значение False (по умолчанию) при открытии базы данных с доступом для чтения и записи.
подключение
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая сведения о подключении, в том числе пароли.

Замечания
При открытии базы данных она автоматически добавляется в семейство Databases. Кроме того, в рабочей области ODBCDirect создается объект Connection, соответствующий новому объекту Database. Этот объект Connection добавляется в семейство Connections того же объекта Workspace.
При указании аргумента имяБД необходимо иметь в виду следующее:
1. Если задается имя базы данных, уже открытой для монопольного доступа другим пользователем, возникает ошибка.
2. Если аргумент не задает имя существующей базы данных или допустимого источника данных ODBC, возникает ошибка.
3. Если значением аргумента является пустая строка (""), а аргумент подключение имеет значение "ODBC;", открывается диалоговое окно со списком имен всех зарегистрированных источников данных ODBC, в котором пользователь может выбрать нужную базу данных. 4. При открытии базы данных в рабочей области ODBCDirect с указанием имени источника данных в аргументе подключение пользователь имеет возможность задать в аргументе имяБД произвольную строку, которая в дальнейшем может использоваться в программах для ссылки на базу данных. Значение аргумента подключение образую два компонента: тип базы данных, за которым после точки с запятой (;) следуют необязательные аргументы. Указание типа базы данных, например, "ODBC;" или "FoxPro 2.5;" является обязательным. Необязательные аргументы, следующие в произвольном порядке, также разделяются символом точки с запятой. Одним из параметров может быть пароль (если пароль определен). Например:

"FoxPro 2.5; pwd=МойПароль"

Вызов метода NewPassword для объекта Database, не являющегося базой данных ODBCDirect, позволяет изменить параметр пароля, который задается в виде ";pwd=...". При указании строки источника необходимо определить аргументы параметры и толькоЧтение. Дополнительные сведения о синтаксисе см. в разделе справки для свойства Connect.
Для закрытия базы данных и удаления объекта Database из семейства Databases следует применить к этому объекту метод Close.
При подключении ядра Microsoft Jet к источнику данных ODBC пользователь имеет возможность повысить быстродействие приложения, открывая объект Database, подключенный к источнику данных ODBC, вместо присоединения отдельных объектов TableDef к конкретным таблицам в источнике данных ODBC.

Пример
Следующая программа использует метод OpenDatabase для открытия одной базы данных Microsoft Jet и двух баз данных ODBC, подключенных к ядру Microsoft Jet.

Sub OpenDatabaseX()

	Dim wrkJet As Workspace
	Dim dbsNorthwind As Database
	Dim dbsPubs As Database
	Dim dbsPubs2 As Database
	Dim dbsLoop As Database
	Dim prpLoop As Property

	' Создает объект Workspace Microsoft Jet.
	Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
	' Открывает для монопольного доступа аргумент Database, 
	' представляющий сохраненную базу данных Microsoft Jet.
	MsgBox "Открытие базы данных 'Борей'..."
	Set dbsNorthwind = wrkJet.OpenDatabase("Борей.mdb", True)
	' Открывает только для чтения объект Database,
	' используя строку подключения.
	MsgBox "Открытие базы данных 'Publishers'..."
	Set dbsPubs = wrkJet.OpenDatabase("Publishers", dbDriverNoPrompt, True, "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")
	' Открывает только для чтения объект Database с вводом
	' недостающих данных в диалоговое окно диспетчера 
	' драйвера ODBC.
	MsgBox "Открытие копии базы данных 'Publishers'..."
	Set dbsPubs2 = wrkJet.OpenDatabase("Publishers", dbDriverCompleteRequired, True, "ODBC;DATABASE=pubs;DSN=Publishers;")
	' Отображает семейство Databases.
	For Each dbsLoop In wrkJet.Databases
		Debug.Print "Свойства объекта Database " & dbsLoop.Name & ":"
		On Error Resume Next
		' Отображает семейство Properties каждого 
		' объекта Database.
		For Each prpLoop In dbsLoop.Properties
			If prpLoop.Name = "Connection" Then
			' Свойство фактически возвращает объект Connection.
				Debug.Print "    Connection[.Name] = " & dbsLoop.Connection.Name
			Else
				Debug.Print "    " & prpLoop.Name & " = " & prpLoop
			End If
		Next prpLoop
		On Error GoTo 0
	Next dbsLoop
	dbsNorthwind.Close
	dbsPubs.Close
	dbsPubs2.Close
	wrkJet.Close
End Sub

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