KB329964 — POPRAWKA: sterownik ODBC firmy Microsoft SQL Server nie może pobrać parametrów wyjściowych zdalnej procedury składowanej na serwerze połączonym

Dotyczy
SQL Server ODBC Driver

Objawy

W przypadku uruchomienia zdalnej procedury składowanej z parametrami wyjściowymi na serwerze połączonym za pośrednictwem sterownika ODBC dla programu SQL Server sterownik ODBC nie może pobrać parametru wyjściowego i może zostać wyświetlony następujący komunikat o błędzie:

Uwaga

[Microsoft][ODBC SQL Server Driver]Naruszenie atrybutu ograniczonego typu danych

Rozwiązanie

Obsługiwana poprawka jest dostępna w firmie Microsoft. Jednak ta poprawka ma na celu rozwiązanie tylko problemu opisanego w tym artykule. Tę poprawkę należy stosować tylko do systemów, w których występuje ten konkretny problem. Ta poprawka może zostać poddana dodatkowym testom. Dlatego jeśli ten problem nie dotyczy użytkownika, zaleca się zaczekać na następną aktualizację oprogramowania zawierającą tę poprawkę.

Jeśli poprawka jest dostępna do pobrania, u góry tego artykułu z bazy wiedzy znajduje się sekcja "Dostępne do pobrania poprawki". Jeśli ta sekcja nie zostanie wyświetlona, skontaktuj się z działem pomocy technicznej i pomocy technicznej firmy Microsoft w celu uzyskania poprawki.

Uwaga W przypadku wystąpienia dodatkowych problemów lub konieczności rozwiązania problemu może być konieczne utworzenie osobnego zgłoszenia serwisowego. Normalne koszty pomocy technicznej będą dotyczyć dodatkowych pytań oraz problemów, które nie kwalifikują się do objęcia tą poprawką. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta i pomocy technicznej firmy Microsoft lub utworzyć oddzielne żądanie obsługi, odwiedź następującą witrynę firmy Microsoft w sieci Web:

http://support.microsoft.com/contactus/?ws=support Uwaga: W formularzu "Dostępne do pobrania poprawki" są wyświetlane języki, dla których poprawka jest dostępna. Jeśli nie widzisz odpowiedniego języka, oznacza to, że nie ma dla niego dostępnej poprawki.

' Angielska wersja tej poprawki ma atrybuty pliku (lub nowsze), które są wymienione w poniższej tabeli. Daty i godziny dla tych plików są podawane według uniwersalnego czasu koordynowanego (UTC). Informacje o pliku są konwertowane na czas lokalny. Aby znaleźć różnicę między czasem UTC a czasem lokalnym, użyj karty Strefa czasowa w narzędziu Data i godzina w Panelu sterowania.

MDAC 2.7 z dodatkiem 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

Uwaga Aby uzyskać listę wszystkich poprawek dostępnych dla programu MDAC 2.8, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

839801 POPRAWKA: Dostępne są poprawki dla pakietu MDAC 2.8
 

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Więcej informacji

Kroki prowadzące do odtworzenia problemu

  1. Użyj poniższego kodu, aby utworzyć procedurę składowaną programu SQL Server z parametrami wyjściowymi na serwerze połączonym:

        USE pubs
        GO
    
        CREATE PROCEDURE dbo.sample_stored_procedure
            @op varchar(20) output
        AS
        set @op = 'demo string'
        return 0
        GO
    
    
    

    Uwaga Jeśli procedura składowana zwróci zestaw wyników, komunikat o błędzie wymieniony w sekcji "Objawy" nie zostanie zwrócony.

  2. Poniższy przykładowy kod aplikacji Microsoft Visual Basic uzyskuje dostęp do zdalnej procedury składowanej na serwerze połączonym. W poniższym przykładzie kodu srv1 i
    SRV2 to dwa serwery, na których działa program SQL Server, a Ty tworzysz SRV2 jako serwer połączony 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