Поделиться через


Метод Open (объект Recordset ADO)

Открывает курсор объекта Recordset .

Синтаксис

  
recordset.Open Source, ActiveConnection, CursorType, LockType, Options  

Параметры

Источник
Необязательно. Вариант, который вычисляет допустимый объект Command, инструкцию SQL, имя таблицы, вызов хранимой процедуры, URL-адрес или имя файла или объекта Stream, содержащего сохраняемый набор записей.

ActiveConnection
Необязательно. Вариант, который вычисляет допустимое имя переменной объекта Connection или строку, содержащую параметры ConnectionString.

CursorType
Необязательно. Значение CursorTypeEnum, определяющее тип курсора, который поставщик должен использовать при открытии набора записей. Значением по умолчанию является adOpenForwardOnly.

LockType
Необязательно. Значение LockTypeEnum, определяющее тип блокировки (параллелизм), который должен использовать поставщик при открытии набора записей. Значение по умолчанию — adLockReadOnly.

Параметры
Необязательно. Длинное значение, указывающее, как поставщик должен оценивать аргумент Source, если он представляет что-то другое, отличное от объекта Command, или что набор записей должен быть восстановлен из файла, в котором он был ранее сохранен. Может быть одним или несколькими значениями CommandTypeEnum или ExecuteOptionEnum, которые можно объединить с побитовой операторОМ OR.

Примечание.

При открытии набора записей из потока, содержащего сохраненный набор записей, использование значения ExecuteOptionEnum adAsyncFetchNonBlocking не будет иметь никакого эффекта; получение будет синхронным и блокирующим.

Примечание.

Значения ExecuteOpenEnum adExecuteNoRecords или adExecuteStream не должны использоваться с Open.

Замечания

Курсор по умолчанию для набора записей ADO — это курсор только для чтения, расположенный на сервере.

При использовании метода Open в объекте Recordset открывается курсор, представляющий записи из базовой таблицы, результаты запроса или ранее сохраненный набор записей.

Используйте необязательный аргумент Source , чтобы указать источник данных с помощью одной из следующих : переменная объекта command , инструкция SQL, хранимая процедура, имя таблицы, URL-адрес или полное имя пути к файлу. Если исходное имя является именем пути к файлу, это может быть полный путь ("c:\dir\file.rst"), относительный путь (". \file.rst) или URL-адрес (https://files/file.rst).

Не рекомендуется использовать аргумент Source метода Open для выполнения запроса действия, который не возвращает записи, так как просто определить, выполнен ли вызов успешно. Набор записей, возвращаемый таким запросом, будет закрыт. Чтобы выполнить запрос, который не возвращает записи, например инструкцию SQL INSERT, вызовите метод Execute объекта Command или метод Execute объекта Connection.

Аргумент ActiveConnection соответствует свойству ActiveConnection и указывает, в каком соединении открывается объект Recordset. Если вы передаете определение подключения для этого аргумента, ADO открывает новое подключение с помощью указанных параметров. После открытия набора записей с клиентским курсором, задав свойству CursorLocation значение adUseClient, можно изменить значение этого свойства для отправки обновлений другому поставщику. Или можно задать для этого свойства значение Nothing (в Microsoft Visual Basic) или NULL, чтобы отключить набор записей от любого поставщика. При изменении ActiveConnection для серверного курсора возникает ошибка.

Для других аргументов, которые соответствуют непосредственно свойствам объекта Recordset (Source, CursorType и LockType), отношение аргументов к свойствам выглядит следующим образом:

  • Свойство считывается и записывается перед открытием объекта Recordset .

  • Параметры свойств используются, если при выполнении метода Open не передаются соответствующие аргументы. При передаче аргумента он переопределяет соответствующий параметр свойства, а параметр свойства обновляется со значением аргумента.

  • После открытия объекта Recordset эти свойства становятся доступны только для чтения.

Примечание.

Свойство ActiveConnection доступно только для чтения для объектов Recordset, свойство Source которого задано для допустимого объекта Command, даже если объект Recordset не открыт.

Если передать объект Command в исходном аргументе, а также передать аргумент ActiveConnection, возникает ошибка. Свойство ActiveConnection объекта Command уже должно быть задано для допустимого объекта Connection или строка подключения.

Если вы передаете что-то, отличное от объекта Command в аргументе Source, можно использовать аргумент Options для оптимизации оценки исходного аргумента. Если аргумент "Параметры" не определен, может возникнуть снижение производительности, так как ADO должен вызывать поставщика, чтобы определить, является ли аргумент инструкцией SQL, хранимой процедурой, URL-адресом или именем таблицы. Если вы знаете, какой тип источника используется, при задании аргумента "Параметры " ADO будет переходить непосредственно к соответствующему коду. Если аргумент "Параметры" не соответствует типу источника, возникает ошибка.

При передаче объекта Stream в аргументе Source не следует передавать сведения в другие аргументы. Это приведет к ошибке. Сведения ActiveConnection не сохраняются при открытии набора записей из потока.

Значение по умолчанию для аргумента "Параметры" adCmdFile, если подключение не связано с набором записей. Обычно это относится к сохраняемым объектам Набора записей .

Если источник данных не возвращает записей, поставщик задает свойства BOF и EOF значение True, а текущая позиция записи не определена. Вы по-прежнему можете добавить новые данные в этот пустой объект Recordset , если тип курсора разрешает его.

Завершив операции с открытым объектом Recordset , используйте метод Close для освобождения всех связанных системных ресурсов. Закрытие объекта не удаляет его из памяти; вы можете изменить его параметры свойств и использовать метод Open , чтобы открыть его снова позже. Чтобы полностью исключить объект из памяти, задайте для переменной объекта значение Nothing.

Прежде чем задать свойство ActiveConnection, вызовите Open без операндов, чтобы создать экземпляр набора записей, созданного путем добавления полей в коллекцию Recordset Fields.

Если для свойства CursorLocation задано значение adUseClient, можно асинхронно извлекать строки одним из двух способов. Рекомендуемый метод — задать параметры adAsyncFetch. Кроме того, динамическое свойство "Асинхронная обработка набора строк" можно использовать в коллекции свойств, но связанные извлеченные события могут быть потеряны, если параметр Options не задан для adAsyncFetch.

Примечание.

Фоновая выборка в поставщике MS Remote поддерживается только с помощью параметра "Параметры" метода Open.

Примечание.

URL-адреса, использующие схему http, автоматически вызывают поставщика Microsoft OLE DB для публикации в Интернете. Дополнительные сведения см. в разделе "Абсолютные и относительные URL-адреса".

Некоторые сочетания значений CommandTypeEnum и ExecuteOptionEnum недопустимы. Сведения о том, какие параметры нельзя объединить, см. в разделах executeOptionEnum и CommandTypeEnum.

Применяется к

Объект Recordset (ADO)

См. также

Примеры методов Open и Close (Visual Basic)
Примеры методов Open и Close (VBScript)
Примеры методов Open и Close (Visual C++)
Примеры методов Save и Open (Visual Basic)
Метод Open (объект Connection ADO)
Метод Open (объект Record ADO)
Метод Open (объект Stream ADO)
Метод OpenSchema
Метод Save