Compartilhar via


Método Connection.Execute (DAO)

Aplica-se ao: Access 2013, Office 2013

Executa uma consulta de ação ou executa uma instrução SQL no objeto especificado.

Sintaxe

expressão . Execute(Consulta, Opções)

expressão Uma variável que representa um objeto Connection.

Parâmetros

Nome

Necessária/opcional

Tipo de dados

Descrição

Query

Obrigatório

String

Uma String que é uma instrução SQL ou o valor da propriedade Name de um objeto QueryDef.

Opções

Opcional

Variant

Uma constante ou combinação de constantes que determina as características de integridade dos dados da consulta, conforme especificado em Configurações.

Comentários

Você pode usar as seguintes constantes RecordsetOptionEnum para options.

Constante

Descrição

dbDenyWrite

Nega a permissão de gravação para outros usuários (somente espaços de trabalho do Microsoft Access).

dbInconsistent

(Padrão) Executa atualizações inconsistentes (somente espaços de trabalho do Microsoft Access).

dbConsistent

Executa atualizações consistentes (somente espaços de trabalho do Microsoft Access).

dbSQLPassThrough

Executa uma consulta de passagem SQL. A configuração dessa opção passa a instrução SQL para um banco de dados ODBC para processamento (somente espaços de trabalho do Microsoft Access).

dbFailOnError

Reverte atualizações se ocorrer erro (somente espaços de trabalho do Microsoft Access).

dbSeeChanges

Gera um erro de tempo de execução caso outro usuário esteja alterando dados que você esteja editando (somente espaços de trabalho do Microsoft Access).

dbRunAsync

Executa a consulta de forma assíncrona (somente objetos ODBCDirect Connection e QueryDef).

dbExecDirect

Executa a instrução sem chamar primeiro a função SQLPrepare ODBC API (somente objetos ODBCDirect Connection e QueryDef).

Observação

[!OBSERVAçãO] O Microsoft Access 2013 não oferece suporte para espaços de trabalho ODBCDirect. Use o ADO para acessar fontes de dados externas sem usar o mecanismo de banco de dados do Microsoft Access.

Observação

[!OBSERVAçãO] As constantes dbConsistent e dbInconsistent são mutuamente exclusivas. Você pode usar uma ou a outra, mas não ambas, em uma determinada instância de OpenRecordset. Usar dbConsistent e dbInconsistent ao mesmo tempo causa um erro.

O método Execute é válido apenas para consultas ação. Se você usar Execute com outro tipo de consulta, ocorrerá um erro. Como uma consulta ação não retorna registros, Execute não retorna um Recordset. (A execução de uma consulta passagem SQL em um espaço de trabalho ODBCDirect não retornará um erro se um Recordset for retornado.)

Use a propriedade RecordsAffected do objeto Connection, Database ou QueryDef para determinar o número de registros afetados pelo método Execute mais recente. Por exemplo, RecordsAffected contém o número de registros excluídos, atualizados ou inseridos ao executar uma consulta ação. Quando você usa o método Execute para executar uma consulta, a propriedade RecordsAffected do objeto QueryDef é definida como o número de registros afetados.

Em um espaço de trabalho do Microsoft Access, se você fornecer uma instrução SQL sintaticamente correta e tiver as permissões apropriadas, o método Execute não falhará — mesmo que uma única linha possa ser modificada ou excluída. Portanto, sempre use a opção dbFailOnError quando empregar o método Execute para executar uma consulta atualização ou exclusão. Essa opção gera um erro em tempo de execução e devolve todas as alterações bem-sucedidas se qualquer um dos registros afetados estiver protegido e não puder ser atualizado ou excluído.

Em versões anteriores do mecanismo de banco de dados do Microsoft Jet, instruções SQL foram automaticamente incorporadas a transações implícitas. Se parte de uma instrução executada com o dbFailOnError tiver falhado, a instrução inteira será devolvida. Para melhorar o desempenho, essas transações implícitas foram removidas a partir da versão 3.5. Se estiver atualizando código DAO antigo, considere o uso de transações explícitas envolvendo instruções Execute.

Para obter melhor desempenho em um espaço de trabalho do Microsoft Access, especialmente em um ambiente multiusuário, aninhe o método Execute em uma transação. Use o método BeginTrans no objeto Espaço de Trabalho atual, então use o método Execute e conclua a transação usando o método CommitTrans no Espaço de Trabalho. Isso salvará as alterações em disco e liberará quaisquer proteções durante a execução da consulta.