Метод Open (объект Recordset ADO)
Область применения: Access 2013, Office 2013
Открывает курсор.
Синтаксис
набор записей. OpenSource, ActiveConnection, CursorType, LockType, Options
Параметры
Параметр | Описание |
---|---|
Source | Необязательный параметр. Тип Variant, который вычисляет допустимый объект Command, инструкцию SQL, имя таблицы, вызов хранимой процедуры, URL-адрес или имя файла или объекта Stream, содержащего постоянно хранящийся набор записей. |
ActiveConnection | Необязательный параметр. Вариант Variant , который вычисляет допустимое имя переменной объекта Connection , или строку , содержащую параметры ConnectionString . |
CursorType | Необязательный параметр. Значение CursorTypeEnum , определяющее тип курсора, который поставщик должен использовать при открытии набора записей. Значение по умолчанию — adOpenForwardOnly. |
LockType | Необязательный параметр. Значение LockTypeEnum , определяющее тип блокировки (параллелизма), который поставщик должен использовать при открытии набора записей. Значение по умолчанию — adLockReadOnly. |
Параметры | Необязательный параметр. Значение Long , указывающее, как поставщик должен оценивать аргумент Source , если он представляет не объект Command , или что набор записей должен быть восстановлен из файла, в котором он был ранее сохранен. Может быть одним или несколькими значениями CommandTypeEnum или ExecuteOptionEnum , которые можно объединить с побитовой оператором AND. |
Примечание.
При открытии набора записей из потока , содержащего сохраненный набор записей, использование значения ExecuteOptionEnumadAsyncFetchNonBlocking не будет иметь эффекта. выборка будет синхронной и блокирующей.
Значения ExecuteOpenEnumadExecuteNoRecords или adExecuteStream не должны использоваться с Open.
Замечания
Курсор по умолчанию для набора записей ADO — это курсор только для чтения, доступный только для чтения, расположенный на сервере.
При использовании метода Open для объекта Recordset открывается курсор, представляющий записи из базовой таблицы, результаты запроса или ранее сохраненный набор записей.
Используйте необязательный аргумент Source , чтобы указать источник данных, используя одну из следующих: переменную объекта Command , инструкцию SQL, хранимую процедуру, имя таблицы, URL-адрес или полное имя пути к файлу. Если источник — это путь к файлу, он может быть полным путем ("c:\dir\file.rst"), относительным путем (".. \file.rst"), или URL-адрес ("https://files/file.rst").
Не рекомендуется использовать аргумент Source метода Open для выполнения запроса действия, который не возвращает записи, так как простой способ определить, успешно ли выполнен вызов, не рекомендуется. Набор записей, возвращенный таким запросом, будет закрыт. Вместо этого вызовите метод Execute объекта Command или метод Execute объекта Connection , чтобы выполнить запрос, который, например, инструкция SQL INSERT, не возвращает записи.
Аргумент 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 в аргумент Source , а также передать аргумент ActiveConnection , возникает ошибка. Свойству ActiveConnection объекта Command уже необходимо задать допустимый объект Connection или строку подключения.
Если в аргументе Source передается нечто, отличное от объекта Command, можно использовать аргумент Options для оптимизации вычисления аргумента Source. Если аргумент Options не определен, производительность может снизиться, так как ADO должен выполнять вызовы к поставщику, чтобы определить, является ли аргумент инструкцией SQL, хранимой процедурой, URL-адресом или именем таблицы. Если вы знаете, какой тип источника вы используете, установка аргумента Options позволяет ADO перейти непосредственно к соответствующему коду. Если аргумент Options не соответствует типу Source , возникает ошибка.
При передаче объекта Stream в аргументе Source не следует передавать сведения в другие аргументы. Это приведет к ошибке. Сведения ActiveConnection не сохраняются при открытии набора записей из stream.
По умолчанию для аргумента Options используется adCmdFile , если соединение не связано с набором записей. Обычно это относится к постоянно хранящимся объектам Recordset .
Если источник данных не возвращает записей, поставщик устанавливает для свойств BOF и EOFзначение True, а текущая позиция записи не определена. Вы по-прежнему можете добавить новые данные в этот пустой объект Recordset , если это разрешено типом курсора.
Завершив операции с открытым объектом Recordset , используйте метод Close , чтобы освободить все связанные системные ресурсы. Закрытие объекта не удаляет его из памяти; Вы можете изменить параметры его свойств и использовать метод Open , чтобы открыть его снова позже. Чтобы полностью исключить объект из памяти, задайте для переменной объекта значение Nothing.
Перед настройкой свойства ActiveConnection вызовите команду Open без операндов, чтобы создать экземпляр набора записей , созданного путем добавления полей в коллекцию RecordsetFields .
Если для свойства CursorLocation задано значение adUseClient, строки можно получить асинхронно одним из двух способов. Рекомендуется задать для параметразначение adAsyncFetch. Кроме того, можно использовать динамическое свойство "Асинхронная обработка наборов строк" в коллекции Properties , но связанные извлеченные события могут быть потеряны , если для параметра Options не задано значение adAsyncFetch.
Примечание.
Получение фона в поставщике MS Remote поддерживается только с помощью параметра Options метода Open.
Примечание.
URL-адреса, использующие схему HTTP, автоматически вызывают поставщик Microsoft OLE DB для публикации в Интернете. Дополнительные сведения см. в разделе Абсолютные и относительные URL-адреса.