信息: 可选功能未实现"错误消息

文章翻译 文章翻译
文章编号: 214459 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

若要将参数传递给存储过程中使用 ActiveX 数据对象 (ADO) 时, 您可能会收到以下错误:
运行时错误"2147217887 (80040e21)":
[] Microsoft[ODBC SQL Server 驱动程序]未实现的可选功能。

更多信息

如果试图设置 ADODB 命令对象的数据提供程序不支持的类型的参数集合中的一个参数的类型,则会发生此错误。

例如对于使用 SQL Server 7.0 PUBS 数据库上创建存储的过程:
   CREATE PROCEDURE GetEmployeeInfo (@thedate datetime, @NumEmployees int output)AS 
       SELECT @NumEmployees =  count(*) FROM EMPLOYEE WHERE hire_date < @thedate
   GO
				
此存储的过程返回输出参数的类型为 int,该值指示给定日期之前雇用的员工数。日期被传递给存储过程作为一个参数,且向调用程序作为输出参数传递的雇员数。

现在创建 ADO 应用程序使用该存储的过程。给出该示例是用 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
				
运行的代码示例时,它提供了此错误:
运行时错误"2147217887 (80040e21)":
[] Microsoft[ODBC SQL Server 驱动程序]未实现的可选功能。
这是因为 SQL Server 不支持 adDBDate 数据类型。若要更正此问题,更改 adDBTimeStamp @ theDate 参数的数据类型。

若要确定数字、 名称、 类型,和的存储过程中所需的参数大小,使用命令对象的 Parameters.Refresh 方法。您可以在开发应用程序以确定正确的要求,该存储过程的过程中调用此方法,然后删除 Parameters.Refresh 昂贵调用后您收集所必需的数据。

属性

文章编号: 214459 - 最后修改: 2001年8月23日 - 修订: 1.0
这篇文章中的信息适用于:
  • 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
关键字:?
kbmt kbinfo kbstoredproc KB214459 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 214459
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

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