请问如何修改一个使用UNION返回的结果集中的记录?(100分)

  • 主题发起人 主题发起人 xWolf
  • 开始时间 开始时间
X

xWolf

Unregistered / Unconfirmed
GUEST, unregistred user!
Access中用了UNION联合从两个表中查询出来的数据,现在的问题是其中的记录没有办法修改,
将SQL在Access中的“查询”里执行后也同样,提示: This RecordSet is not updateable,
这是不是Access先天不足(没SQL Server中试过,不知是否也算如此)?请教各位高手有何良策?
 
>>是不是Access先天不足
yes
 
union的数据集应该是不可更改的,至少是不能insert的,insert一条纪录,你打算
实际放到那个物理的表里?
 
to g622:
我并不要求Insert记录,我只需要修改已有的记录

to jqw:
既然Access不行,那像SQL Server, Oracle之类的可以吗?
现在我自己的机器暂时不能用,又不能在别人机器上随便装个SQL Server试试。
 
这样的修改要使用 TUpdateSQL 对象。
具体内容很多,可以翻一翻老贴子,参考书上大多也介绍过。
 
to:BaKuBaKu
我用的是ADOQuery,是用不了TUpdateSQL的
 
老兄:我又翻了一遍《数据库原理》,上面明确的说:union ,order by等关键字的数据视图
是不可更改的!
我觉得你必须把这种更新转换为两个sql了。原则上任何对视图的更改可以换成对基本数据
表的更改。只有这样了 :|
 
但是大部分的数据库实现上对于Order by返回的结果集都是可以修改的。
 
是的access就可以对order by的视图修改,但不能对union的视图修改,这应该是引擎实现的
问题吧 :)
 
当然可以修改的,与主从表的应用差不多。
 
to zengr: 愿闻其详
 
insert into #table
 
能否先在CACHE中修改,然后根据修改的信息自己写SQL修改语句直接对物理数据库进行操作。
 
多人接受答案了。
 

Similar threads

后退
顶部