Artigo: 195489 - Última revisão: quinta-feira, 6 de Julho de 2006 - Revisão: 2.3

CommandTimeout não herda de tempo limite de ligação

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Se CommandTimeout propriedade uma ligação estiver definida para algum valor e um objecto de comando está associado a essa ligação, o objecto Command não da recolha a ligação definição de CommandTimeout. Em vez disso, CommandTimeout o objecto Command está definida como a predefinição ou que foi definido antes para ser associada a ligação.

Causa

ActiveX Data Objects (ADO) não praticar herança. Devido à capacidade autônoma dos respectivos objectos, um objecto de comando pode ser associado com mais do que um objecto de ligação. A única excepção é a propriedade CursorLocation.

Resolução

Defina especificamente CommandTimeout do objecto Command.

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Passos para reproduzir o comportamento

  1. Inicie um projecto do Visual Basic.
  2. Defina uma referência de projecto para o Microsoft ActiveX Data Objects Library.
  3. Cole o seguinte código no evento Form_Load() do formulário predefinido. Terá de modificar a cadeia de ligação para que faça referência a um datasouce válido.
          Dim cnn As New ADODB.Connection
          Dim cnstring As String
          cnstring = "Provider = SQLOLEDB;" & _
                     "DATA SOURCE =<server name>;" & _
                     "USER ID = <user id>;" & _
                     "PASSWORD =<password>;" & _
                     "INITIAL CATALOG = <database>;"
          cnn.CommandTimeout = 0
          cnn.Open cnstring
          Dim cmd As New ADODB.Command
          cmd.ActiveConnection = cnn
          Debug.Print "Timeout on Connection: " & cnn.CommandTimeout
          Debug.Print "Timeout on Command:  " & cmd.CommandTimeout
    					
  4. Execute o formulário. Deverá ver que o tempo limite para o objecto de ligação é definido para zero (0) como previsto, enquanto que o tempo limite para o objecto Command é 30 segundos (que é a predefinição).

A informação contida neste artigo aplica-se a:
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
  • Microsoft Data Access Components 2.8
Palavras-chave: 
kbmt kbdatabase kbprb KB195489 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 195489  (http://support.microsoft.com/kb/195489/en-us/ )