Ö¢×´ µ±Äú½« ActiveX Êý¾Ý¶ÔÏó (ADO) Óë Active Server Pages (ASP) Ò»ÆðʹÓÃʱ£¬¿ÉÄÜ»áÓöµ½ÒÔϳ£¼û´íÎó£º Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an updateable query. ÔÒò ±¾ÎIJûÊöµ¼Ö´˴íÎóµÄËÄÖÖÖ÷ÒªÔÒò¼°ÏàÓ¦µÄÌæ´ú·½·¨¡£¾¡¹Ü±¾ÎÄÌÖÂÛµÄÊÇ Microsoft Access Êý¾Ý¿â£¬µ«´Ë´¦ÌṩµÄÐÅÏ¢Ò²ÊÊÓÃÓÚÆäËûÀàÐ͵ÄÊý¾Ý¿â¡£ ½â¾ö·½°¸ µ±ÄúµÄ½Å±¾ÊÔͼִÐиüлòÖ´Ðлá¸ü¸ÄÊý¾Ý¿âÖеÄÐÅÏ¢µÄÆäËûijÖÖ²Ù×÷ʱ£¬Í¨³£»áÓöµ½´Ë´íÎó¡£³öÏÖ´Ë´íÎóµÄÔÒòÊÇ ADO ÓÉÓÚÒÔÏÂijÖÖÔÒò¶øÎÞ·¨Ð´ÈëÊý¾Ý¿â£º 1. ×î³£¼ûµÄÔÒòÊÇ Internet À´±öÕÊ»§£¨IUSR_MACHINE£¬Ä¬ÈÏÇé¿öϸÃÕÊ»§ÊôÓÚ¡°Everyone¡±×飩¶ÔÊý¾Ý¿âÎļþ (.mdb) ûÓÐдȨÏÞ¡£Òª½â¾ö´ËÎÊÌ⣬ÇëʹÓà Explorer Öеġ°°²È«¡±Ñ¡ÏÀ´µ÷Õû´ËÎļþµÄÊôÐÔ£¬ÒÔ±ã Internet À´±öÕÊ»§¾ßÓÐÕýÈ·µÄȨÏÞ¡£ ×¢Ò⣺ÔÚ½« Microsoft Access Êý¾Ý¿âÓë ADO Ò»ÆðʹÓÃʱ£¬»¹±ØÐëÊÚÓè Internet À´±öÕÊ»§¶Ô°üº¬ .mdb ÎļþµÄĿ¼µÄдȨÏÞ¡£ÕâÊÇÒòΪ Jet »á´´½¨Ò»¸öÓÃÓÚ´¦ÀíÊý¾Ý¿âËø¶¨µÄ .ldb Îļþ¡£ÓÉÓÚ Jet ¿ÉÄÜ»áÔÚ¡°Temp¡±Ä¿Â¼Öд´½¨ÁÙʱÎļþ£¬Òò´ËÄú¿ÉÄÜ»¹ÐèÒªÊÚÓè¶Ô¸ÃÎļþ¼ÐµÄ¶Á/дȨÏÞ¡£ 2. ³öÏÖ´Ë´íÎóµÄµÚ¶þ¸öÔÒòÊÇÊý¾Ý¿â²»ÊÇʹÓþßÓÐдȨÏÞµÄÕýȷģʽ´ò¿ªµÄ¡£Èç¹ûÄú¶Ô Connection ¶ÔÏóÖ´ÐÐ Open ²Ù×÷£¬ÔòӦʹÓà Mode ÊôÐÔָʾ¶Ô¸ÃÁ¬½ÓËùÓµÓеÄȨÏÞ£¬ÈçÏÂËùʾ£º 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 ×¢Ò⣺ĬÈÏÇé¿öÏ£¬MODE ÉèÖÃΪ 0(adModeUnknown)£¬¸Ãֵͨ³£ÔÊÐí¸üС£ 3. ³öÏÖ´Ë´íÎóµÄÁíÒ»¸öÔÒòÊÇ£ºÔÚ ODBC ¹ÜÀíÆ÷ÖУ¬DSN µÄ¡°Ñ¡ÏҳÖеġ°Ö»¶Á¡±ÉèÖÿÉÄܱ»Ñ¡ÖС£ 4. ×îºóÒ»¸öÎÊÌâºÍÌæ´ú·½·¨ÊÊÓÃÓÚËùÓÐ SQL Êý¾ÝÔ´¡£Î¥·´Êý¾Ý¿âµÄÒýÓÃÍêÕûÐ﵀ SQL Óï¾ä¿ÉÒÔµ¼Ö³öÏÖ´Ë´íÎó¡£ÏÂÃæÊÇһЩ×î³£¼ûµÄʧ°ÜµÄ²éѯ£º • ÆäÖÐ×î¼òµ¥µÄÒ»×é²éѯÊÇÒÔÏÂÄúÎÞ·¨¸ü¸ÄµÄ²éѯ£ºUniqueValue ÊôÐÔÉèÖÃΪ Yes µÄ½»²æ±í²éѯ¡¢SQL ´«µÝ²éѯ¡¢ÁªºÏ²éѯ»ò¸üУ¨¼´Éú³É±í£©²Ù×÷²éѯ¡£ • ÁíÒ»Öַdz£³£¼ûµÄÔÒòÊÇÁª½Ó°üº¬µÄÁ´½Ó ODBC ±íµÄË÷Òý²»ÊÇΨһµÄ¡£ÔÚÕâÖÖÇé¿öÏ£¬SQL ÎÞ·¨±£Ö¤±íÖеļǼÊÇΨһ£¬¸Ã±íÖÐ×ֶεÄÖµ½«Ëæ²éѯ·¢Éú¸ü¸Ä¡£ • ÓÐÒ»ÖÖÔÒòȷʵÓпɿ¿µÄÌæ´ú·½·¨¡£Èç¹ûÄú³¢ÊÔ¸üС°Ò»¶Ô¶à¡±²éѯµÄ¡°Ò»¡±·½µÄÁª½Ó×ֶΣ¬²Ù×÷½«»áʧ°Ü£¬³ý·ÇÄúÆôÓü¶Áª¸üС£ÒòΪÕâÑùÄú¾Í¿ÉÒÔ½«ÒýÓÃÍêÕûÐÔίÍиø JET ÒýÇæ¡£
|