Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

ASP trở về "Chiến dịch phải sử dụng một truy vấn updateable" lỗi

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:175168
TRIỆU CHỨNG
Bạn có thể gặp phải lỗi phổ biến sau khi bạn sử dụng ActiveX Data Objects(ADO) với Active Server Pages (ASP):
Microsoft OLE DB Provider cho trình điều khiển ODBC lỗi '80004005'
[Microsoft][Điều khiển ODBC Microsoft truy cập 97] Thao tác phải sử dụng một updateable truy vấn.
NGUYÊN NHÂN
Bài viết này giải thích các bốn nguyên nhân chính gây lỗi này và cách giải quyết tương ứng. Mặc dù bài viết này đề cập đến Microsoft Access cơ sở dữ liệu, thông tin được cung cấp ở đây cũng áp dụng cho các loại cơ sở dữ liệu.
GIẢI PHÁP
Lỗi này thường gặp phải khi kịch bản của bạn cố gắng để thực hiện mộtCập Nhật hoặc một số hành động khác mà thay đổi thông tin trong cơ sở dữ liệu.Lỗi này xảy ra vì ADO là không thể ghi vào cơ sở dữ liệu cho một trongnhững lý do sau:

  1. Lý do phổ biến nhất là trương mục Internet khách (IUSR_MACHINE), mà là do một phần mặc định của các "Everyone" nhóm, không có quyền ghi vào tập tin cơ sở dữ liệu (.mdb). Để khắc phục vấn đề này, sử dụng Security tab trong Explorer điều chỉnh thuộc tính cho tệp này để trương mục Internet khách có đúngcấp phép.

    LƯU Ý: Khi sử dụng Microsoft Access cơ sở dữ liệu với ADO, nó cũng là cần thiết để cung cấp cho trương mục Internet khách quyền ghi vào thư mục có chứa các tập tin .mdb. Điều này là bởi vì máy bay phản lực tạo ra một tập tin .ldb để xử lý cơ sở dữ liệu khóa. Bạn cũng có thể cần phải cho phép đọc/ghi vào thư mục "Temp" bởi vì máy bay phản lực có thể tạo tệp tạm thời trong thư mục này.
  2. Một nguyên nhân thứ hai của lỗi này là cơ sở dữ liệu không được mở ra vớicác chế độ chính xác cho văn bản. Nếu bạn thực hiện mở trên kết nốiđối tượng, bạn sử dụng tài sản chế độ để chỉ ra các cấp phép trên cáckết nối như được hiển thị ở đây:
          SQL = "UPDATE Products Set UnitPrice = 2;"      Set Conn = Server.CreateObject("ADODB.Connection")      Conn.Mode = 3      '3 = adModeReadWrite      Conn.Open "myDSN"      Conn.Execute(SQL)      Conn.Close						
    LƯU Ý: Theo mặc định, các chế độ được thiết lập để 0(adModeUnknown), mà nói chung cho phép Cập Nhật.
  3. Một nguyên nhân của lỗi này là có thể thiết lập "Đọc chỉ"kiểm tra trong trang tuỳ chọn cho này DSN trong quản lý ODBC.
  4. Vấn đề cuối và làm việc xung quanh liên quan đến bất kỳ nguồn dữ liệu SQL. Lỗi có thể được gây ra bởi SQL phát biểu rằng vi phạm toàn vẹn referential củacơ sở dữ liệu. Dưới đây là một vài trong số các truy vấn thường gặp nhất thất bại:
    • Các nhóm đơn giản nhất để đối phó với những bạn không thể thay đổi: crosstab,SQL pass-through, liên minh, hoặc Cập Nhật (hoặc thực hiện-bảng) hành động truy vấn màcó UniqueValue thuộc tính thiết lập để có.

    • Một nguyên nhân rất phổ biến là khi tham gia bao gồm các liên kết ODBC bảngmà không có chỉ số duy nhất. Trong trường hợp này, đó là không có cách nào cho SQLđể đảm bảo rằng hồ sơ là duy nhất trong một bảng có các lĩnh vực màgiá trị sẽ thay đổi với các truy vấn.

    • Một trong những nguyên nhân có một workaround mạnh mẽ. Nếu bạn cố gắng Cập Nhật tham gia mộtlĩnh vực "một" bên của một truy vấn "một để nhiều người" nó sẽ không thành công trừ khibạn bật tầng thông tin Cập Nhật. Bằng cách này, bạn đại biểu referentialtoàn vẹn cho động cơ phản lực.
TÌNH TRẠNG
Hành vi này là do thiết kế.

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 175168 - Xem lại Lần cuối: 08/19/2011 06:51:00 - Bản sửa đổi: 2.0

Microsoft Active Server Pages 4.0, Microsoft Internet Information Services 5.0, Microsoft ActiveX Data Objects 2.7, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7

  • kbdatabase kberrmsg kbprb kbmt KB175168 KbMtvi
Phản hồi