Simptome
Dacă rulați o procedură stocată la distanță cu parametri de ieșire pe un server legat printr-un driver ODBC pentru SQL Server, driverul ODBC nu poate regăsi parametrul de ieșire și este posibil să primiți următorul mesaj de eroare:
[Microsoft] [Driver SQL Server ODBC]Încălcare a atributului de tip de date restricționat
Rezolvare
O remediere rapidă acceptată este disponibilă de la Microsoft. Totuși, această remediere rapidă este destinată să corecteze doar problema descrisă în acest articol. Aplicați această remediere rapidă doar la sistemele care se confruntă cu această problemă specifică. Este posibil ca această remediere rapidă să primească testări suplimentare. Prin urmare, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următoarea actualizare de software care conține această remediere rapidă.
Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcarea remedierii rapide este disponibilă" în partea de sus a acestui articol din Baza de cunoștințe. Dacă această secțiune nu apare, contactați Serviciul pentru clienți și asistența Microsoft pentru a obține remedierea rapidă. Notă Dacă apar probleme suplimentare sau dacă este necesară o depanare, poate fi necesar să creați o solicitare de serviciu separată. Costurile uzuale de asistență se vor aplica la întrebări și probleme suplimentare de asistență care nu se califică pentru această remediere rapidă specifică. Pentru o listă completă a numerelor de telefon ale Serviciului pentru clienți și asistență Microsoft sau pentru a crea o solicitare de serviciu separată, vizitați următorul site Web Microsoft:http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcarea remedierii rapide este disponibilă" afișează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba, cauza este că nu este disponibilă o remediere rapidă pentru limba respectivă. ' Versiunea în limba engleză a acestei remedieri rapide are atributele de fișier (sau mai recente) care sunt listate în tabelul următor. Datele și orele pentru aceste fișiere sunt listate în timp universal (UTC). Când vizualizați informațiile despre fișier, acestea sunt convertite la ora locală. Pentru a găsi diferența dintre UTC și ora locală, utilizați fila Fus orar din instrumentul Dată și oră din Panou de control.
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
Notă Pentru o listă cu toate remedierile rapide disponibile pentru MDAC 2.8, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
839801 REMEDIAT: Remedierile rapide sunt disponibile pentru MDAC 2.8
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Mai multe informații
Steps to reproduce the behavior
-
Utilizați următorul cod pentru a crea o procedură stocată SQL Server cu parametri de ieșire pe un server legat:
USE pubs GO CREATE PROCEDURE dbo.sample_stored_procedure @op varchar(20) output AS set @op = 'demo string' return 0 GO
Notă Nu primiți mesajul de eroare care este listat în secțiunea "Simptome" dacă procedura stocată returnează un set de rezultate.
-
Următorul cod eșantion de aplicație Microsoft Visual Basic accesează procedura stocată la distanță pe un server legat. În următorul exemplu de cod, srv1 și
srv2 sunt cele două servere care rulează SQL Server și creați srv2 ca server legat pe 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