INFO: Mensagem de erro "Recurso opcional não implementado"

Traduções deste artigo Traduções deste artigo
ID do artigo: 214459 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Ao usar o ActiveX Data Objects (ADO) para passar parâmetros para um procedimento armazenado, você pode receber o seguinte erro:
Erro em tempo de execução '2147217887 (80040e21)':
[Microsoft][ODBC SQL Server Driver] Recurso opcional não implementado.

Mais Informações

Este erro pode ocorrer se você tentar definir o tipo de um parâmetro na coleção de parâmetros de um objeto de comando ADODB para um tipo que não é suportada pelo provedor de dados.

Por exemplo, usando o SQL Server 7.0, crie um procedimento armazenado no banco de dados PUBS:
   CREATE PROCEDURE GetEmployeeInfo (@thedate datetime, @NumEmployees int output)AS 
       SELECT @NumEmployees =  count(*) FROM EMPLOYEE WHERE hire_date < @thedate
   GO
				
esse procedimento armazenado retorna um parâmetro de saída do tipo int indicando o número de funcionários contratados antes de uma determinada data. A data é passada para o procedimento armazenado como um parâmetro e o número de funcionários é passado para o programa de chamada como um parâmetro de saída.

Agora crie um aplicativo ADO para usar o procedimento armazenado. O exemplo fornecido está escrito em Visual Basic.
Private Sub MySubroutine()
Dim dbConnection As ADODB.Connection
Dim dbCommand As ADODB.Command

Set dbConnection = New ADODB.Connection
Set dbCommand = New ADODB.Command

Dim DSNNAME As String
Dim USERNAME As String
Dim PASSWORD As String

DSNNAME = "Pubs"
USERNAME = "sa"
PASSWORD = ""

dbConnection.Open DSNNAME, USERNAME, PASSWORD
dbCommand.ActiveConnection = dbConnection

Dim TheDate As Date
TheDate = Now

dbCommand.CommandText = "GetEmployeeInfo"
dbCommand.CommandType = adCmdStoredProc
dbCommand.Parameters.Append dbCommand.CreateParameter("@thedate", adDBDate, adParamInput, 0, TheDate)
dbCommand.Parameters.Append dbCommand.CreateParameter("@NumEmployees", adInteger, adParamOutput, 0)
dbCommand.Execute

Dim strTheString As String
strTheString = "There are " & dbCommand.Parameters("@numemployees") & " employees who were hired before " & TheDate
MsgBox strTheString, vbOKOnly, "Demonstration"
End Sub
				
quando o código de exemplo é executado, ele apresenta este erro:
Erro em tempo de execução '2147217887 (80040e21)':
[Microsoft][ODBC SQL Server Driver] Recurso opcional não implementado.
Isso ocorre porque o SQL Server não suporta o tipo de dados adDBDate. Para corrigir esse problema, altere o tipo de dados do parâmetro @ theDate para adDBTimeStamp.

Para determinar o número, nomes, tipos e tamanhos dos parâmetros necessários em um procedimento armazenado, use o método Parameters.Refresh do objeto de comando. Você pode chamar esse método durante o desenvolvimento de seu aplicativo para determinar os requisitos corretos para o procedimento armazenado e remover a Parameters.Refresh cara chamada depois que você coletou os dados necessários.

Propriedades

ID do artigo: 214459 - Última revisão: quinta-feira, 23 de agosto de 2001 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft ActiveX Data Objects 2.6
  • Microsoft ActiveX Data Objects 2.7
Palavras-chave: 
kbmt kbinfo kbstoredproc KB214459 KbMtpt
Traduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 214459
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com