三层DCOM结构,SQL Server2000数据库,为何新增记录可以保存,而修改记录则保存不了?

d_delphi 2003-04-14 08:57:19
同上
...全文
85 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
o2delphi 2003-05-04
  • 打赏
  • 举报
回复
在服务器端写个方法。在这个方法中进行delete的操作。客户端调用该方法即可。
microjuz 2003-05-04
  • 打赏
  • 举报
回复
学习 ,在中间层写存储过程,然后在客户端用接口进行调用,是这样吗
Oer 2003-05-03
  • 打赏
  • 举报
回复
我想新增的可以保存,而修改的不能保存,是不是你在修改后并没有真到的传送到远程数据库中呢?
clientprovider1.edit;
...
clientprovider1.ApplyUpdates(-1);
thh820630 2003-05-03
  • 打赏
  • 举报
回复
不知道我有回答正不正确
因为我没有用过
你用什么什么登录的? 看看你自己有没有修改的权限
Zhymax 2003-05-03
  • 打赏
  • 举报
回复
修改完成后有没有post?
fastsoft 2003-05-02
  • 打赏
  • 举报
回复
这种问题我刚开始时有碰到过,我用了一个笨办法:就是在ApplyUpdates之前,将记录集循环一次,修改一下每条记录的值(一个Field即可),然后才提交,肯定可以保存。
这应该是Midas的问题,具体机制还没有时间去研究,可先将就用着。
comanche 2003-04-20
  • 打赏
  • 举报
回复
有两种可能会不能保存
1. UpdateMode 的经典问题,试试 delete 是否可以,如果也不行你就是这种情况
有三种 UpdateMode, 快找本书看看, 默认是 upWhereAll, 表示记录的所有老值用于定位原始记录,upWhereChanged 表示只有改动过的记录的老值才被用于定位原始记录(你可能要设成这个),upWhereKeyOnly 表示只有指定的 key 用于定位原始记录

2. 在这个表中使用了触发器
我不知道这算不算是MSSQL 的一个bug, 但的确如此,当触发器更新记录后,它会影响 effect records 全局变量,而MIDAS 是这样认为的: 0 record changed by another user, > 1 effect more than one record (这可以设DataSetProvider 为允许更新多条解决), 所以触发器应小心使用,至少应让最后一条语句更新一条记录。不知道说得是否有点让你无法理解.
微挨踢 2003-04-20
  • 打赏
  • 举报
回复
是不是你的记录中有时间字段?
把具体的错误贴上来!
loader 2003-04-19
  • 打赏
  • 举报
回复
用sql语句得话,你要在中间层定义一个接口,然后在客户端调用这个接口,执行sql语句

或者指定这个接口执行你得存储过程就可以了:)】

调用接口:SocketConnection.appserver.接口名(参数)

就ok了:)

snake_eye 2003-04-18
  • 打赏
  • 举报
回复
把中间层代码粘出来看看!
snake_eye 2003-04-18
  • 打赏
  • 举报
回复
我遇到过类似的问题,我遇到的是我的数据对象(跟新数据),是通过其他功能或协调对象
引用来处理数据跟新,问题是出在中间层的功能对象那里了。
这类问题不会是客户段的问题,你把数据对象的providerdatasetResolvetoData设成True
让Query自己写SQL出来数据看看效果,
老大单部调试服务器,一般都可以查到问题的。
d_delphi 2003-04-18
  • 打赏
  • 举报
回复
补充说明:以上所说的是主从表才有这样情况,若是单个表则不存在修改不能保存
的情况,主从表在应用服务器是用两个ADOQuery1连接的。
d_delphi 2003-04-17
  • 打赏
  • 举报
回复
有人可以提出解决的方法吗?
wing_er 2003-04-16
  • 打赏
  • 举报
回复
可以写存储过程
d_delphi 2003-04-15
  • 打赏
  • 举报
回复
可以用用sql server语句吗?好象没得选择的吧!具体怎么样做呢?可以说一下吗?
chenquan 2003-04-15
  • 打赏
  • 举报
回复
那东西是有些问题
用sql server语句绝对没有问题
d_delphi 2003-04-15
  • 打赏
  • 举报
回复
是用 ClientDataSet1.ApplyUpdates(-1);更新的
d_delphi 2003-04-15
  • 打赏
  • 举报
回复
哎!一头雾水呀!高手呀高手!现形吧帮下忙吧!
idilent 2003-04-15
  • 打赏
  • 举报
回复
不知道问题所在,但是绝对可以使用sql语句,方法是使用clientdataset的commadtext的属性,要注意的是需要把datasetpovider的option中allowcommandtext=true.但是不推荐这样的做法,可以在server端写好更新的方法,然后把数据传给这个方法来更新。
d_delphi 2003-04-15
  • 打赏
  • 举报
回复
高手是否金盆洗手了?我不相信你们中没一个人可解决这个问题的。
加载更多回复(3)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧