Problembeschreibung
Wenn Sie eine remote gespeicherte Prozedur mit Ausgabeparametern auf einem verknüpften Server über einen ODBC-Treiber für SQL Server ausführen, kann der ODBC-Treiber den Ausgabeparameter nicht abrufen, und Sie erhalten möglicherweise die folgende Fehlermeldung:
[Microsoft] [ODBC-SQL Server-Treiber]Verletzung des Datentypattributs "Eingeschränkt"
Lösung
Ein unterstützter Hotfix ist von Microsoft verfügbar. Mit diesem Hotfix soll jedoch nur das in diesem Artikel beschriebene Problem behoben werden. Wenden Sie diesen Hotfix nur auf Systeme an, auf denen dieses spezifische Problem auftritt. Dieser Hotfix kann zusätzliche Tests erhalten. Wenn Sie von diesem Problem nicht stark betroffen sind, sollten Sie daher auf das nächste Softwareupdate warten, das diesen Hotfix enthält.
Wenn der Hotfix zum Download verfügbar ist, finden Sie oben in diesem Knowledge Base-Artikel den Abschnitt "Hotfix-Download verfügbar". Wenn dieser Abschnitt nicht angezeigt wird, wenden Sie sich an den Microsoft-Kundendienst und -Support, um den Hotfix zu erhalten. Hinweis: Wenn zusätzliche Probleme auftreten oder eine Problembehandlung erforderlich ist, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die üblichen Supportkosten gelten für zusätzliche Supportfragen und Probleme, die für diesen spezifischen Hotfix nicht in Frage kommen. Eine vollständige Liste der Microsoft Kundendienst- und Supporttelefonnummern oder zum Erstellen einer separaten Serviceanfrage finden Sie auf der folgenden Microsoft-Website:http://support.microsoft.com/contactus/?ws=supportHinweis Das Formular "Hotfixdownload verfügbar" zeigt die Sprachen an, für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, liegt dies daran, dass für diese Sprache kein Hotfix verfügbar ist. ' Die englische Version dieses Hotfix weist die Dateiattribute (oder höher) auf, die in der folgenden Tabelle aufgeführt sind. Die Datums- und Uhrzeitangaben für diese Dateien werden in koordinierter Weltzeit (UTC) aufgelistet. Wenn Sie die Dateiinformationen anzeigen, werden diese Angaben in die Ortszeit umgewandelt. Den Unterschied zwischen UTC- und Ortszeit können Sie in der Systemsteuerung unter Datum und Uhrzeit mithilfe der Angaben auf der Registerkarte „Zeitzone“ ermitteln.
MDAC 2.7 Service Pack 1
Date Time Version Size File name
----------------------------------------------------------
12-Nov-2002 02:42 2000.81.9031.12 24,576 Odbcbcp.dll
12-Nov-2002 02:41 2000.81.9031.12 385,024 Sqlsrv32.dll
MDAC 2.8
Date Time Version Size File name
---------------------------------------------------------
15-Jun-2004 00:22 2000.85.1045.0 28,672 Dbnmpntw.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msadds.dll
15-Jun-2004 00:21 2.80.1045.0 512,000 Msado15.dll
15-Jun-2004 00:21 2.80.1045.0 163,840 Msadomd.dll
15-Jun-2004 00:21 2.80.1045.0 184,320 Msadox.dll
15-Jun-2004 00:21 2.80.1045.0 53,248 Msadrh15.dll
15-Jun-2004 00:21 2.80.1045.0 225,280 Msdaora.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msdart.dll
15-Jun-2004 00:21 2.575.1045.0 139,264 Msorcl32.dll
15-Jun-2004 00:21 3.525.1045.0 221,184 Odbc32.dll
15-Jun-2004 00:22 2000.85.1045.0 24,576 Odbcbcp.dll
15-Jun-2004 00:21 2.80.1045.0 442,368 Oledb32.dll
15-Jun-2004 00:21 2000.85.1045.0 503,808 Sqloledb.dll
15-Jun-2004 00:21 2000.85.1045.0 401,408 Sqlsrv32.dll
15-Jun-2004 00:08 2000.85.1045.0 208,896 Sqlxmlx.dll
Hinweis Für eine Liste aller verfügbaren Hotfixes für MDAC 2.8 klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
839801 FIX: Hotfixes sind für MDAC 2.8 verfügbar
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen
Schritte zum Reproduzieren des Verhaltens
-
Verwenden Sie den folgenden Code, um eine SQL Server gespeicherte Prozedur mit Ausgabeparametern auf einem verknüpften Server zu erstellen:
USE pubs GO CREATE PROCEDURE dbo.sample_stored_procedure @op varchar(20) output AS set @op = 'demo string' return 0 GO
Hinweis Sie erhalten nicht die Fehlermeldung, die im Abschnitt "Symptome" aufgeführt ist, wenn die gespeicherte Prozedur ein Resultset zurückgibt.
-
Der folgende Beispielcode der Microsoft Visual Basic-Anwendung greift auf die remote gespeicherte Prozedur auf einem verknüpften Server zu. Im folgenden Codebeispiel sind srv1 und
srv2 die beiden Server, auf denen SQL Server ausgeführt wird, und Sie erstellen srv2 als verknüpften Server auf srv1.Dim cn As new ADODB.Connection Dim cmd As new ADODB.Command Dim prm As ADODB.Parameter cn.Open "Driver={SQL Server};Server=srv1;UID=sa;PWD=sa_password;" cmd.ActiveConnection = cn cmd.CommandType = adCmdStoredProc cmd.CommandText = "srv2.pubs.dbo.sample_stored_procedure" Set prm = cmd.CreateParameter("op", adVarChar, adParamOutput, 20) cmd.Parameters.Append prm cmd.Execute Debug.Print prm.Value cn.Close Set cn = Nothing