2010-10-26 18 views
5

Tôi đã nhận được thuộc tính "Không thể thay đổi kết nối ActiveConnection của đối tượng Recordset có lỗi đối tượng Lệnh là nguồn" trong trang asp cổ điển của tôi một vài lần, thường là sau khi tôi đã thay đổi thủ tục được lưu trữ.Thuộc tính "Không thể thay đổi ActiveConnection của đối tượng Recordset có lỗi đối tượng Lệnh là gì?"

Trước đây, việc gỡ cài đặt và cài đặt lại ứng dụng COM + và cài đặt lại IIS dường như đã khắc phục được sự cố này. Tôi cho rằng tài sản ActiveConnection cũ bằng cách nào đó đang được giữ trong bộ nhớ và cách giải quyết là xóa sạch nó. Hôm nay, không có may mắn như vậy.

Câu hỏi đầu tiên của tôi là "Lỗi này thực sự có ý nghĩa gì?" Câu hỏi thứ hai là, "Làm thế nào để sửa chữa nó?"

Tôi đã cố gắng tham khảo các liên kết sau, nhưng với tư cách là người mới sử dụng COM + hiện tại đã vượt qua đầu của tôi.

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/ASP/Q_20626178.html

http://msdn.microsoft.com/en-us/library/ee275490(BTS.10).aspx

Trả lời

8

Lỗi này thường được kết hợp với một thủ tục lưu trữ trở lại nhiều hơn một tập kết quả, hoặc trở lại rowcounts (thử thêm set nocount on ở phía trên cùng của thủ tục.)

Bạn có thực hiện bất kỳ thay đổi gần đây nào cho cơ sở dữ liệu không? Nếu vậy, những thay đổi đó sẽ là một nơi tốt để bắt đầu tìm kiếm.

P.S. Tôi ngạc nhiên rằng bạn có một ứng dụng COM + thực sự được sử dụng trong năm 2010. Giai đoạn mà crap ra nhanh như bạn có thể :)

+1

+1 cho P.S. Mặc dù tôi nghĩ câu trả lời cho "Điều này có nghĩa là gì?" là "Thời gian để chuyển sang .Net" – NotMe

+1

Di chuyển tới .NET là điều tôi muốn làm, nhưng thật khó để xác định các địa điểm tốt để cấu trúc lại codebase hiện tại. –

+0

Nó thực sự là "thiết lập nocount trên", không "thiết lập rowcount off". Nó cũng có thể được gây ra bởi bạn mong đợi một proc để trả lại một rs, và nó không, nó chỉ chèn và trả về một mã trạng thái hoặc bất cứ điều gì. –