Microsoft phân phối các bản sửa lỗi Microsoft SQL Server 2008 dưới dạng một tệp có thể tải xuống. Vì các bản sửa lỗi được tích lũy, mỗi bản phát hành mới đều chứa tất cả các bản sửa lỗi nóng và tất cả bản sửa lỗi bảo mật có trong bản phát hành sửa lỗi SQL Server 2008 trước đó.
Triệu chứng
Trong ứng dụng, bạn sử dụng trình điều khiển SQL Server 2008 Native Client. Bạn gọi hàm SQLBindParameter để liên kết tham số của kiểu dữ liệu ký tự rộng cho một truy vấn. Ví dụ: bạn kết ghép tham số của kiểu dữ liệu NCHAR hoặc kiểu dữ liệu NVARCHAR. Ứng dụng chuyển một giá trị lớn hơn 4.000 cho tham số ColumnSize của hàm SQLBindParameter. Khi bạn chạy truy vấn trong ứng dụng, bạn nhận được thông báo lỗi sau đây:
Lưu ý
Luồng giao thức gọi thủ tục từ xa (RPC) của luồng dữ liệu dạng bảng (TDS) đến không chính xác. Tham số 1 (""): Loại dữ liệu 0xE7 có độ dài dữ liệu hoặc độ dài siêu dữ liệu không hợp lệ.
Lưu ý: Thông báo lỗi này là thông báo lỗi phía máy chủ. Nếu thay vào đó, nếu ứng dụng sử dụng trình điều khiển SQL Server 2005 Native Client, bạn sẽ nhận được thông báo lỗi phía máy khách sau như mong đợi:
Lưu ý
[Microsoft][SQL Native Client]Giá trị chính xác không hợp lệ
Nguyên nhân
Sự cố này xảy ra vì trình điều khiển SQL Server 2008 Native Client không thực hiện kiểm tra thời gian chạy kích cỡ cột đầu vào cho hàm SQLBindParameter. Ngoài ra, trình điều khiển sẽ tăng gấp đôi kích cỡ cột nếu kích cỡ cột đầu vào lớn hơn 4.000 và tham số là kiểu dữ liệu ký tự rộng. Do đó, SQL Server trả về lỗi phía máy chủ là tham số vượt quá giới hạn trên (8.000).
Lưu ý: Trình điều khiển SQL Server 2005 Native Client sẽ thực hiện kiểm tra thời gian chạy cho kích cỡ cột đầu vào. Do đó, nếu kích cỡ cột đầu vào lớn hơn 8.000, trình điều khiển SQL Server 2005 Native Client sẽ trả về lỗi phía máy khách.
Giải pháp
Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật Tích lũy 3 dành cho SQL Server 2008 Gói Dịch vụ 1. Để biết thêm thông tin về gói cập nhật tích lũy này, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
971491 Gói cập nhật tích lũy 3 cho SQL Server 2008 Gói Dịch vụ 1Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các hotfix và tất cả bản sửa lỗi bảo mật được tích hợp trong bản phát hành bản sửa lỗi SQL Server 2008 trước đó. Microsoft khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
970365 Các bản dựng SQL Server 2008 được phát hành sau SQL Server 2008 Gói Dịch vụ 1 được phát hành
Các hotfix Microsoft SQL Server 2008 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng hotfix SQL Server 2008 Gói Dịch vụ 1 cho cài đặt SQL Server 2008 Gói Dịch vụ 1. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".
Tham khảo
Để biết thêm thông tin về Mô hình Dịch vụ Gia tăng cho SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
935897 Mô hình Dịch vụ Gia tăng có sẵn từ nhóm SQL Server để cung cấp các bản sửa lỗi nóng cho các sự cố được báo cáo
Để biết thêm thông tin về sơ đồ đặt tên cho các bản cập nhật SQL Server, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
822499 Giản đồ đặt tên mới cho các gói cập nhật phần mềm Microsoft SQL Server
Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft