Triệu chứng
Nếu bạn chạy thủ tục lưu trữ từ xa với tham số đầu ra trên máy chủ được liên kết thông qua trình điều khiển ODBC cho SQL Server, trình điều khiển ODBC không thể truy xuất tham số đầu ra và bạn có thể nhận được thông báo lỗi sau:
[Microsoft] [Trình điều khiển SQL Server ODBC]Vi phạm thuộc tính loại dữ liệu hạn chế
Giải pháp
Hotfix được hỗ trợ có sẵn từ Microsoft. Tuy nhiên, hotfix này là nhằm sửa chữa chỉ vấn đề được mô tả trong bài viết này. Áp dụng hotfix này chỉ cho hệ thống đang gặp vấn đề cụ thể này. Hotfix này có thể nhận được kiểm tra bổ sung. Do đó, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn nên đợi bản cập nhật phần mềm tiếp theo có chứa cập nhật nóng này.
Nếu bản cập nhật nóng có sẵn để tải xuống thì có mục "Tải xuống bản cập nhật nóng sẵn dùng" ở đầu bài viết Cơ sở Kiến thức này. Nếu phần này không xuất hiện, hãy liên hệ với bộ phận Dịch vụ và Hỗ trợ Khách hàng của Microsoft để nhận hotfix. Lưu ý Nếu có sự cố khác xảy ra hoặc nếu cần khắc phục sự cố bất kỳ, bạn có thể phải tạo một yêu cầu dịch vụ riêng biệt. Chi phí hỗ trợ thông thường sẽ áp dụng cho các câu hỏi và sự cố hỗ trợ bổ sung không đủ điều kiện cho hotfix cụ thể này. Để có danh sách đầy đủ các số điện thoại của Bộ phận Dịch vụ Khách hàng và Hỗ trợ của Microsoft hoặc để tạo yêu cầu dịch vụ riêng biệt, hãy truy cập trang Web Microsoft sau:http://support.microsoft.com/contactus/?ws=supportLưu ý Biểu mẫu "Tải xuống cập nhật nóng" hiển thị các ngôn ngữ mà hotfix có sẵn. Nếu bạn không thấy ngôn ngữ của mình, đó là vì bản cập nhật nóng không có sẵn cho ngôn ngữ đó. ' Phiên bản tiếng Anh của hotfix này có các thuộc tính tệp (hoặc mới hơn) được liệt kê trong bảng sau đây. Ngày và giờ của những tệp này được liệt kê theo giờ chuẩn quốc tế (UTC). Khi bạn xem thông tin về tệp, tệp đó đã được chuyển đổi thành giờ địa phương. Để thấy sự khác biệt giữa UTC và giờ địa phương, hãy sử dụng tab Múi giờ ở công cụ Ngày và giờ trong Pa-nen điều khiển.
MDAC 2.7 Gói Dịch vụ 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
Lưu ý Đối với một danh sách của tất cả các hotfixes có sẵn cho MDAC 2.8, bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
839801 sửa lỗi: Hotfix khả dụng cho MDAC 2.8
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Thông tin Bổ sung
Các bước tái tạo hành vi
-
Sử dụng mã sau đây để tạo quy trình lưu SQL Server với tham số đầu ra trên máy chủ được liên kết:
USE pubs GO CREATE PROCEDURE dbo.sample_stored_procedure @op varchar(20) output AS set @op = 'demo string' return 0 GO
Lưu ý Bạn không nhận được thông báo lỗi được liệt kê trong phần "Triệu chứng" nếu thủ tục lưu trữ trả về một tập kết quả.
-
Sau đây Microsoft Visual Basic ứng dụng mẫu mã truy cập thủ tục lưu trữ từ xa trên một máy chủ được liên kết. Trong mẫu mã sau đây, srv1
vàsrv2 là hai máy chủ đang chạy SQL Server và bạn đang tạo srv2 như một máy chủ được liên kết trên 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