Método Open (Conjunto de registros ADO)

Abre um cursor em um objeto Recordset.

Sintaxe

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

Parâmetros

Origem
Opcional. Uma Variant que é avaliada como um objeto Command válido, uma instrução SQL, um nome de tabela, uma chamada de procedimento armazenado, uma URL ou o nome de um arquivo ou objeto Stream que contém um Conjunto de registros armazenado persistentemente.

ActiveConnection
Opcional. Um Variant que é avaliado como um nome de variável de objeto Connection válido ou uma cadeia de caracteres que contém parâmetros ConnectionString.

CursorType
Opcional. Um valor CursorTypeEnum que determina o tipo de cursor que o provedor deve usar ao abrir o Conjunto de registros. O valor padrão é adOpenForwardOnly.

LockType
Opcional. Um valor LockTypeEnum que determina que tipo de bloqueio (simultaneidade) o provedor deve usar ao abrir o Conjunto de registros. O valor padrão é adLockReadOnly.

Opções
Opcional. Um valor Longo que indica como o provedor deve avaliar o argumento Source se ele representa algo diferente de um objeto Command ou se o Conjunto de registros deve ser restaurado de um arquivo em que ele foi salvo anteriormente. Pode ser um ou mais valores CommandTypeEnum ou ExecuteOptionEnum, que podem ser combinados com um operador OR bit a bit.

Observação

Se você abrir um Conjunto de registros de um Fluxo que contém um Recordset persistente, usar um valor ExecuteOptionEnum de adAsyncFetchNonBlocking não terá efeito; a busca será síncrona e bloqueada.

Observação

Os valores ExecuteOpenEnum de adExecuteNoRecords ou adExecuteStream não devem ser usados com Open.

Comentários

O cursor padrão para um Conjunto de Registros do ADO é um cursor somente encaminhamento e somente leitura localizado no servidor.

O uso do método Open em um objeto Recordset abre um cursor que representa registros de uma tabela base, os resultados de uma consulta ou um Conjunto de registros salvo anteriormente.

Use o argumento de Origem opcional para especificar uma fonte de dados usando uma das seguintes opções: uma variável de objeto Command, uma instrução SQL, um procedimento armazenado, um nome de tabela, uma URL ou um nome de caminho de arquivo completo. Se Source for um nome de caminho de arquivo, ele poderá ser um caminho completo ("c:\dir\file.rst"), um caminho relativo ("..\file.rst") ou uma URL (https://files/file.rst).

Não é uma boa ideia usar o argumento Source do método Open para executar uma consulta de ação que não retorna registros porque não há uma maneira fácil de determinar se a chamada foi bem-sucedida. O Conjunto de registros retornado por essa consulta será fechado. Para executar uma consulta que não retorna registros, como uma instrução SQL INSERT, chame o método Execute de um objeto Command ou o método Execute de um objeto Connection.

O argumento ActiveConnection corresponde à propriedade ActiveConnection e especifica em qual conexão abrir o objeto Recordset. Se você passar uma definição de conexão para esse argumento, o ADO abrirá uma nova conexão usando os parâmetros especificados. Depois de abrir o Conjunto de registros com um cursor do lado do cliente definindo a propriedade CursorLocation como adUseClient, você pode alterar o valor dessa propriedade para enviar atualizações para outro provedor. Ou você pode definir essa propriedade como Nothing (no Microsoft Visual Basic) ou NULL para desconectar o Conjunto de registros de qualquer provedor. No entanto, alterar o ActiveConnection para um cursor do lado do servidor gera um erro.

Para os outros argumentos que correspondem diretamente às propriedades de um objeto Recordset (Source, CursorType e LockType), a relação dos argumentos com as propriedades é a seguinte:

  • A propriedade é de leitura/gravação antes que o objeto Recordset seja aberto.

  • As configurações de propriedade são usadas, a menos que você passe os argumentos correspondentes ao executar o método Open. Se você passar um argumento, ele substituirá a configuração de propriedade correspondente e a configuração da propriedade será atualizada com o valor do argumento.

  • Depois de abrir o objeto Recordset, essas propriedades se tornam somente leitura.

Observação

A propriedade ActiveConnection é somente leitura para objetos Recordset cuja propriedade Source é definida como um objeto Command válido, mesmo se o objeto Recordset não está aberto.

Se você passar um objeto Command no argumento Source e também passar um argumento ActiveConnection, ocorrerá um erro. A propriedade ActiveConnection do objeto Command já deve ser definida como um objeto Connection válido ou cadeia de conexão.

Se você passar algo diferente de um objeto Command no argumento Source, poderá usar o argumento Options para otimizar a avaliação do argumento Source. Se o argumento Options não estiver definido, você poderá ter um desempenho reduzido porque o ADO deve fazer chamadas ao provedor para determinar se o argumento é uma instrução SQL, um procedimento armazenado, uma URL ou um nome de tabela. Se você souber que tipo de Source está usando, definir o argumento Options instrui o ADO a pular diretamente para o código relevante. Se o argumento Options não corresponder ao tipo Source, ocorrerá um erro.

Se você passar um objeto Stream no argumento Source, não deverá passar informações para os outros argumentos. Isso vai gerar um erro. As informações do ActiveConnection não são retidas quando um Conjunto de registros é aberto de um Stream.

O padrão para o argumento Options é adCmdFile se nenhuma conexão estiver associada ao Conjunto de registros. Normalmente, esse será o caso de objetos Recordset armazenados persistentemente.

Se a fonte de dados não retornar registros, o provedor definirá as propriedades BOF e EOF como True e a posição atual do registro será indefinida. Você ainda poderá adicionar novos dados a esse objeto Recordset vazio se o tipo de cursor permitir.

Quando concluir suas operações em um objeto Recordset aberto, use o método Close para liberar os recursos do sistema associados. Fechar um objeto não o remove da memória; você pode alterar suas configurações de propriedade e usar o método Open para abri-lo novamente mais tarde. Para eliminar completamente um objeto da memória, defina a variável de objeto como Nothing.

Antes que a propriedade ActiveConnection seja definida, chame Open sem operandos para criar uma instância de um Conjunto de Registros criado acrescentando campos à coleção Fieldsdo Conjunto de registros.

Se você definiu a propriedade CursorLocation como adUseClient, poderá recuperar linhas de forma assíncrona de uma das duas maneiras. O método recomendado é definir Options para adAsyncFetch. Como alternativa, você pode usar a propriedade dinâmica "Processamento de Conjunto de Linhas Assíncrona" na coleção Properties, mas os eventos recuperados relacionados poderão ser perdidos se você não definir o parâmetro Options como adAsyncFetch.

Observação

A busca em segundo plano no provedor remoto MS só tem suporte por meio do parâmetro Options do método Open.

Observação

As URLs que usam o esquema HTTP invocarão automaticamente o Provedor Microsoft OLE DB para Publicação na Internet. Para obter mais informações, confira URLs absolutas e relativas.

Determinadas combinações de valores CommandTypeEnum e ExecuteOptionEnum não são válidas. Para obter informações sobre quais opções não podem ser combinadas, consulte os tópicos para ExecuteOptionEnum e CommandTypeEnum.

Aplica-se A

Objeto Recordset (ADO)

Consulte Também

Exemplo dos métodos Open e Close (VB)
Exemplo dos métodos Open e Close (VBScript)
Exemplo dos métodos Open e Close (VC++)
Exemplo dos métodos Save e Open (VB)
Método Open (conexão ADO)
Método Open (Registro do ADO)
Método Open (Fluxo do ADO)
Método OpenSchema
Método Save