求助:又一个三层架构的问题,急!!!!!!!!!!!!!!!!!

loking 2006-06-30 04:48:20
我遇到一个问题,我们的系统是三层架构的,现遇到一个问题。我在修改一套记录的时候,
体统提示有其他人正在修改。其实并没有人在修改。请问各位大虾,再何种情况下会出现
这种情况,而且并不是每次都会遇到这种情况。郁闷!!!!!!!!
请大家帮忙。
Server端,我们用的有TDataSetProvider,TQuery,TUpdateSQL
Client端,TDCOMConnect,TClientDataSet
数据库:SQL2000
...全文
249 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfork 2006-07-06
  • 打赏
  • 举报
回复
在每张表里加一个update_time时间字段,
select的时候把这个update_time读下来,
在保存之前,再次select,看update_time变了没,
如果没变,则保存,并把getdate()的时间更新到update_time.
ypnet 2006-07-06
  • 打赏
  • 举报
回复
是不是在数据库改变了一个字段的长度, 而服务端没有做相应的改动.
JB7 2006-07-06
  • 打赏
  • 举报
回复
路过!
torrentwang 2006-07-06
  • 打赏
  • 举报
回复
在开始一个事务 begintransaction
一定要执行到 commit 或rollback 否则就会出问题
qq9518 2006-07-06
  • 打赏
  • 举报
回复
锁的类型有三:共享锁,更新锁,独占锁
共享锁可以和其他共享锁,更新锁兼容共存
只有独占锁是不和其他兼容的,所以只要数据上有独占锁,其他用户则不能读写
在缺省情况下,数据库的默认的锁定粒度是数据页,如果想使其变成表级锁
可以用holdlock关键字,比如语句
update titles set ... holdlock
这个语句就起用了表级锁,在用户更新这个数据表的时候,其他用户不能读写
解锁只能等对这个表操作的事务完成了,锁就解开了.
qq9518 2006-07-06
  • 打赏
  • 举报
回复
用锁定的方法不可以吗?
codesoft 2006-07-06
  • 打赏
  • 举报
回复
这种情况通常是更新数据到后端数据库后,没有用cds的refresh更新本地的数据,致使前后端数据不同步造成的.
SUNDATA 2006-07-03
  • 打赏
  • 举报
回复
只有一个客户端也是这样吗?
jcxhan 2006-07-02
  • 打赏
  • 举报
回复
up
hanyel 2006-07-01
  • 打赏
  • 举报
回复
記得clientdataset 先CLOSE 然後才執行
不是的話 把處理發送SQL命令的代碼貼出來
loking 2006-06-30
  • 打赏
  • 举报
回复
我是三层架构的,在客户端邦定数据的,数据是server端从数据库里查来的
pongjun64 2006-06-30
  • 打赏
  • 举报
回复
用Qery直接連接數據庫,還是。。。。
pongjun64 2006-06-30
  • 打赏
  • 举报
回复
。。。。。。

1,593

社区成员

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

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