Information: "Optionale Features Not Implemented"-Fehlermeldung

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 214459 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Wenn Sie ActiveX Data Objects (ADO), verwenden um Parameter an eine gespeicherte Prozedur zu übergeben, können Sie die folgende Fehlermeldung:
Laufzeitfehler '2147217887 (80040e21)':
[Microsoft][ODBC SQL Server-Treiber] Optionales Feature nicht implementiert.

Weitere Informationen

Dieser Fehler kann auftreten, wenn Sie versuchen, den Typ eines Parameters in einer ADODB-Befehlsobjekt Parameterauflistung auf einen Typ festzulegen, die vom Datenprovider nicht unterstützt wird.

Erstellen Sie z. B. mit SQL Server 7.0 einer gespeicherten Prozedur in der PUBS-Datenbank:
   CREATE PROCEDURE GetEmployeeInfo (@thedate datetime, @NumEmployees int output)AS 
       SELECT @NumEmployees =  count(*) FROM EMPLOYEE WHERE hire_date < @thedate
   GO
				
diese gespeicherte Prozedur gibt einen Ausgabeparameter des Typs Int die Anzahl Mitarbeiter, die vor einem bestimmten Datum eingestellt. Das Datum, an die gespeicherte Prozedur als Parameter übergeben wird, und die Anzahl der Mitarbeiter wird an das aufrufende Programm als Ausgabeparameter übergeben.

Nun erstellen Sie eine ADO-Anwendung für die gespeicherte Prozedur verwenden. Im Beispiel wird in Visual Basic geschrieben.
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
				
Wenn des Beispielcodes ausführen können Sie diesen Fehler:
Laufzeitfehler '2147217887 (80040e21)':
[Microsoft][ODBC SQL Server-Treiber] Optionale Funktion nicht implementiert.
Dies ist da SQL Server den AdDBDate-Datentyp nicht unterstützt. Um dieses Problem zu beheben, ändern Sie den Datentyp des Parameters @ TheDate in AdDBTimeStamp.

Um die Anzahl, Namen, Typen und Größen der Parameter in einer gespeicherten Prozedur benötigt zu bestimmen, verwenden Sie die Parameters.Refresh-Methode des Befehlsobjekts. Sie können diese Methode während der Entwicklung der Anwendung zur Ermittlung der richtigen Anforderungen für die gespeicherte Prozedur aufrufen und dann entfernen Sie den teuren Aufruf von Parameters.Refresh, nachdem Sie die erforderlichen Daten gesammelt haben.

Eigenschaften

Artikel-ID: 214459 - Geändert am: Donnerstag, 23. August 2001 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbmt kbinfo kbstoredproc KB214459 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 214459
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

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