Symptomen
Als u een externe opgeslagen procedure uitvoert met uitvoerparameters op een gekoppelde server via een ODBC-stuurprogramma voor SQL Server, kan het ODBC-stuurprogramma de uitvoerparameter niet ophalen en ontvangt u mogelijk het volgende foutbericht:
[Microsoft] [ODBC SQL Server Driver]Schending van kenmerk van beperkt gegevenstype
Oplossing
Er is een ondersteunde hotfix beschikbaar bij Microsoft. Deze hotfix is echter bedoeld om alleen het probleem op te lossen dat in dit artikel wordt beschreven. Pas deze hotfix alleen toe op systemen die dit specifieke probleem ondervinden. Deze hotfix kan aanvullende tests ontvangen. Daarom wordt u aangeraden te wachten op de volgende software-update die deze hotfix bevat als u niet ernstig wordt getroffen door dit probleem.
Als de hotfix beschikbaar is om te downloaden, is er een sectie 'Hotfix downloaden beschikbaar' boven aan dit Knowledge Base-artikel. Als deze sectie niet wordt weergegeven, neemt u contact op met de klantenservice en ondersteuning van Microsoft om de hotfix te verkrijgen. Opmerking Als er extra problemen optreden of als er een probleemoplossing is vereist, moet u mogelijk een afzonderlijke serviceaanvraag maken. De gebruikelijke ondersteuningskosten zijn van toepassing op aanvullende ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Ga naar de volgende Microsoft-website voor een volledige lijst met telefoonnummers voor microsoft-klantenservice en -ondersteuning of voor het maken van een afzonderlijke serviceaanvraag:http://support.microsoft.com/contactus/?ws=supportLet op: in het formulier 'Hotfix downloaden beschikbaar' worden de talen weergegeven waarvoor de hotfix beschikbaar is. Als u uw taal niet ziet, komt dit doordat er geen hotfix beschikbaar is voor die taal. ' De Engelse versie van deze hotfix heeft de bestandskenmerken (of later) die worden vermeld in de volgende tabel. De datums en tijden voor deze bestanden worden vermeld in coordinated universal time (UTC). Wanneer u de bestandsgegevens bekijkt, wordt deze geconverteerd naar lokale tijd. Als u het verschil tussen UTC en lokale tijd wilt vinden, gebruikt u het tabblad Tijdzone in het hulpprogramma Datum en tijd in Configuratiescherm.
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
Opmerking Voor een lijst met alle hotfixes die beschikbaar zijn voor MDAC 2.8, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
839801 FIX: Hotfixes zijn beschikbaar voor MDAC 2.8
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Stappen om het gedrag te reproduceren
-
Gebruik de volgende code om een SQL Server opgeslagen procedure te maken met uitvoerparameters op een gekoppelde server:
USE pubs GO CREATE PROCEDURE dbo.sample_stored_procedure @op varchar(20) output AS set @op = 'demo string' return 0 GO
Opmerking U ontvangt niet het foutbericht dat wordt vermeld in de sectie Symptomen als de opgeslagen procedure een resultatenset retourneert.
-
De volgende voorbeeldcode van de Microsoft Visual Basic-toepassing heeft toegang tot de externe opgeslagen procedure op een gekoppelde server. In het volgende codevoorbeeld zijn srv1 en
srv2 de twee servers waarop SQL Server wordt uitgevoerd en maakt u srv2 als een gekoppelde server op 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