Příznaky
Pokud spustíte vzdálenou uloženou proceduru s výstupními parametry na propojeném serveru prostřednictvím ovladače ODBC pro SQL Server, ovladač ODBC nemůže načíst výstupní parametr a může se zobrazit následující chybová zpráva:
[Microsoft] [Ovladač odbc SQL Server]Porušení atributu omezeného datového typu
Řešení
Od Microsoftu je k dispozici podporovaná oprava hotfix. Tato oprava hotfix je však určena k opravě pouze problém, který je popsán v tomto článku. Tuto opravu hotfix použijte pouze pro systémy, u kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může obdržet další testování. Proto pokud tento problém není vážně ovlivněn, doporučujeme počkat na další aktualizaci softwaru, která obsahuje tuto opravu hotfix.
Pokud je oprava hotfix k dispozici ke stažení, je v horní části tohoto článku znalostní báze Knowledge Base část "Hotfix ke stažení k dispozici". Pokud se tato část nezobrazí, požádejte o opravu hotfix oddělení služeb zákazníkům společnosti Microsoft a podporu.
Poznámka: Pokud dojde k dalším problémům nebo pokud je vyžadováno řešení potíží, možná budete muset vytvořit samostatnou žádost o službu. Obvyklé náklady na podporu se budou vztahovat na další dotazy a problémy podpory, které se netýkají této konkrétní opravy hotfix. Úplný seznam telefonních čísel služeb zákazníkům společnosti Microsoft a podpory nebo vytvoření samostatné žádosti o služby naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: "Hotfix stažení k dispozici" formulář zobrazí jazyky, pro které je k dispozici oprava hotfix. Pokud váš jazyk nevidíte, je to proto, že pro tento jazyk není k dispozici oprava hotfix.
' Anglická verze této opravy hotfix má atributy souborů (nebo novější), které jsou uvedeny v následující tabulce. Data a časy pro tyto soubory jsou uvedeny v koordinovaném univerzálním čase (UTC). Při zobrazení informací o souboru jsou převedeny na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo na panelu Datum a čas v okně Ovládací panely.
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
Poznámka: Seznam všech oprav hotfix, které jsou k dispozici pro mdac 2.8 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
839801 oprava: Opravy hotfix jsou k dispozici pro MDAC 2.8
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Další informace
Postup reprodukování chování
-
Pomocí následujícího kódu vytvořte SQL Server uloženou proceduru s výstupními parametry na odkazovaném serveru:
USE pubs GO CREATE PROCEDURE dbo.sample_stored_procedure @op varchar(20) output AS set @op = 'demo string' return 0 GO
Poznámka: Neobdržíte chybovou zprávu, která je uvedena v části "Příznaky", pokud uložená procedura vrátí sadu výsledků dotazu.
-
Následující ukázkový kód aplikace Microsoft Visual Basic přistupuje ke vzdálené uložené proceduře na odkazovaném serveru. V následujícím příkladu kódu jsou srv1 a
srv2 dva servery, na kterých běží SQL Server, a vytváříte srv2 jako odkazovaný server na 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