日期:2014-05-17  浏览次数:21191 次

asp+access,数据库join的问题,不能更新。数据库或对象为只读
首先声明一点,我的分区是fat32的,这个不是权限问题(权限问题我知道怎么解决)
以下代码:
              ....
                数据完整性检测...


strsql= "select   table1.*,table3.table3code,table2.table3_id   as   table2_table3_id,table2.table2_name   as   table2_table2_name,table2.table2_number   as   table2_table2_number,table2_sort.sort_name   as   table2_sort_name   from   ((table1   left   join   table2   on   table1.table2_id=table2.id   )   left   join   table3   on   table2.table3_id=table3.id)   left   join   table2_sort   on   table2.table2_sort=table2_sort.id   where   table1.id=0 "
rs.open   strsql,conn,1,3
rs.addnew
rs( "update_by ")=update_by
rs( "create_by ")=update_by

rs( "update_date ")=now()
rs( "create_date ")=now()

rs( "table2_id ")=table2_id
rs( "table1_id ")   =table1_id
rs( "price ")=price
rs( "number ")   =number
rs.update
temp=rs.bookmark
rs.bookmark=temp

temp=cstr(rs( "id "))
if   temp> 99999   then   temp=temp-99999
for   i=1   to   5-len(temp)
temp= "0 "&temp
next
month_str=month(now())
day_str=day(now())
if   len(month_str) <2   then   month_str= "0 "&month_str
if   len(day_str) <2   then   day_str= "0 "&day_str

table1_id_str=rs( "table3code ")&year(now())&month_str&day_str&temp

rs( "table1_id ")=table1_id_str

rs( "table3_id ")=rs( "table2_table3_id ")
rs( "table3code ")=rs( "table3_table3code ")
rs( "table2_name ")=rs( "table2_table2_name ")
rs( "table2_number ")=rs( "table2_table2_number ")
rs( "sort_name ")=rs( "table2_sort_name ")
rs.update
rs.Close
set   rs=Nothing
错误提示:

错误类型:
Microsoft   OLE   DB   Provider   for   ODBC   Drivers   (0x80004005)
[Microsoft][ODBC   Microsoft   Access   Driver]   不能更新。数据库或对象为只读。
。。。。,   第   74   行

第74行是第一个update处

1)以上当我的连接SQL变为不用left   join   时(只查询一个数据表),错误提示到了第一个update后面(提示找不到字段),这证明是left   join   导致不能更新

2)我这里数据表联接了三个,以前我用这种方式是可以更新的,先更新table1内的字段,update以后再更新和其他表有关的字段,但现在不行了,为什么?

3)我这里也没有用事务


------解决方案--------------------
頂下,後面來的解決.
------解决方案--------------------
1.最好不要在join里面更新数据库. 尤其是一对多或多对多.或者left /outer join 的情况. 会出现某个表中的数据没有主键或唯一索引而不能更新。
------解决方案--------------------
楼主那么肯定的说不是权限问题,那我就不说什么了.友情UP