INFO: Mensaje de Error "Función opcional no implementada"

Seleccione idioma Seleccione idioma
Id. de artículo: 214459 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Cuando utiliza ActiveX Data Objects (ADO) para pasar parámetros a un procedimiento almacenado, puede recibir el siguiente error:
Error en tiempo de ejecución '2147217887 (80040e21)':
[Microsoft][ODBC SQL Server Driver] Característica opcional no implementada.

Más información

Este error puede producirse si intenta establecer el tipo de un parámetro en la colección de parámetros de un objeto de comando ADODB para un tipo que no es compatible con el proveedor de datos.

Por ejemplo, con SQL Server 7.0, crear un procedimiento almacenado en la base de datos PUBS:
   CREATE PROCEDURE GetEmployeeInfo (@thedate datetime, @NumEmployees int output)AS 
       SELECT @NumEmployees =  count(*) FROM EMPLOYEE WHERE hire_date < @thedate
   GO
				
Este procedimiento almacenado devuelve un parámetro de salida de tipo int que indica el número de empleados contratados antes de una fecha determinada. La fecha se pasa al procedimiento almacenado como un parámetro y el número de empleados se pasa al programa de llamada como un parámetro de salida.

Ahora, crear una aplicación de ADO que utilice el procedimiento almacenado. El ejemplo está escrito en 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
				
Cuando se ejecuta el código de ejemplo, produce este error:
Error en tiempo de ejecución '2147217887 (80040e21)':
[Microsoft][ODBC SQL Server Driver] Característica opcional no implementada.
Esto es debido a que SQL Server no admite el tipo de datos de adDBData. Para corregir este problema, cambie el tipo de datos del parámetro @theDate a adDBTimeStamp.

Con el fin de determinar el número, nombres, tipos y tamaños de los parámetros necesarios en un procedimiento almacenado, utilizan el método Parameters.Refresh del objeto command. Puede llamar a este método durante el desarrollo de la aplicación para determinar los requisitos adecuados para el procedimiento almacenado, a continuación, quite la llamada cara a Parameters.Refresh después de recopilar los datos necesarios.

Propiedades

Id. de artículo: 214459 - Última revisión: domingo, 12 de mayo de 2013 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft ActiveX Data Objects 2.7
Palabras clave: 
kbDSupport kbinfo kbstoredproc kbmt KB214459 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 214459
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

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