三层结构的数据不能更新问题 ( 积分: 100 )

  • 主题发起人 主题发起人 dcydcy
  • 开始时间 开始时间
D

dcydcy

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥,Dcom+sqlserver2000
在客户端我用clientdateset进行查询语句是 'select a*b,* from database,结果数据可以新增,但是不可以修改然后我把语句改为'select * from database,可以修改。问题是如何让每一句也可以修改。谢谢各位。
 
各位大哥,Dcom+sqlserver2000
在客户端我用clientdateset进行查询语句是 'select a*b,* from database,结果数据可以新增,但是不可以修改然后我把语句改为'select * from database,可以修改。问题是如何让每一句也可以修改。谢谢各位。
 
查询跟更新 怎么可能在一起呢?不理解~~
 
用update就可以批量修改
 
'select a*b,* from database'不能修改的原因是a*b产生了一个数据库中根本不存在的字段。这个字段在打开时就是只读的。
而且你如果直接保存会直接报错。
这和是不是用Dcom没什么关系。
如果你用的DataSetProcvider,则可以在beforeUpdate事件中自己生成提交用的Update语句,根据数据集的内容进行处理。
 
同意楼上的意见
 
用ApplyUpdates()也可以,你可以尝试一下
 
同意weic,不過你也可以試試applyupdates(0)看一下是否能更新,畢竟它是自已組織語句的。如果你用的DataSetProcvider,则可以在beforeUpdate事件中自己生成提交用的Update语句﹐然后設applied為true即表示你已自己提交。
 
如果你的DataSetProvider连接的是AdoDataSet,那你可以将DataSetProvider的ResolveToDataSet属性设为True就可以了,ado会自动判断如何更新回数据库。
如果你的DataSetProvider连接的BDE,那就像上面几位说的在DataSetProvider的beforeUpdate事件中根据数据集自己生成相应的语句。可以参考李维的相关书籍。
 
同意楼上的,可是如果我想 像其中一个表添加和删除某一个记录,又不行了,它会自动在所有查询的表上添加和删除,怎么办,客户端已经设置其他表的字段没有[pInupdate]??
 
a*b是一个计算出来的字段,所以不允许编辑.如果在数据库表中建一个字段存这个值,不过是由其它字段计算出来的,查询是直接查那个字段,然后就可以了,
 
简单,使用Top 100 Percent这个子句
select top 100 Percent a*b as ColumnName,* from database
试试,是否就可以新增、修改、删除等操作了 ^_^
 
后退
顶部