INFO: Mensagem de erro "Função opcional não implementado"

Traduções de Artigos Traduções de Artigos
Artigo: 214459 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Quando utilizar ActiveX Data Objects (ADO) para passar parâmetros para um procedimento armazenado, poderá receber o seguinte erro:
Run-time error '2147217887 (80040e21)':
[Microsoft][Controlador ODBC SQL Server] Funcionalidade opcional não implementada.

Mais Informação

Este erro pode ocorrer se tentar definir o tipo de um parâmetro na colecção de parâmetros de um objecto de comando ADODB para um tipo que não é suportada pelo fornecedor de dados.

Por exemplo, utilizando o SQL Server 7.0, criar um procedimento armazenado na base de dados PUBS:
   CREATE PROCEDURE GetEmployeeInfo (@thedate datetime, @NumEmployees int output)AS 
       SELECT @NumEmployees =  count(*) FROM EMPLOYEE WHERE hire_date < @thedate
   GO
				
este procedimento armazenado devolve um parâmetro de saída do tipo inteiro que indica o número de empregados contratados antes de uma determinada data. A data é passado 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.

Cria uma aplicação de ADO para utilizar o procedimento armazenado. O exemplo fornecido é escrito no 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 é executado o código de exemplo, fornece este erro:
Run-time error '2147217887 (80040e21)':
[Microsoft][Controlador ODBC SQL Server] Funcionalidade opcional não implementado.
Isto acontece porque o SQL Server não suporta o tipo de dados adDBDate. Para corrigir este 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 num procedimento armazenado, utilize o método de Parameters.Refresh do objecto de comando. Pode chamar este método durante o desenvolvimento da aplicação para determinar os requisitos correctos para o procedimento armazenado, em seguida, remove a chamada dispendiosa Parameters.Refresh depois de recolher os dados necessários.

Propriedades

Artigo: 214459 - Última revisão: 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 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: 214459
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

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