仍是表锁死的问题,难以理解,欢迎大家讨论------有价值者一定给分

qwprince 2003-12-11 11:24:12
delphi6+sybase11.5
程序1中:用database连接bde,table1 连接表1,form_show 中 table1.open 用网格显示数据
程序2: 对该表进行添加,非常正常
对该表进行修改,有时候会只停留在post语句处,提交不上去,但此时把程序1的显示该表数据的窗体关闭,程序2马上就提交了。(难以理解之处在于:若是程序1或2有一个在98系统下,非常容易发生锁死,但是我在一台xp下运行这两个程序,几乎不出错,但是开始的确发生过十几次锁死)
...全文
86 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwprince 2004-01-04
  • 打赏
  • 举报
回复
d
qwprince 2003-12-23
  • 打赏
  • 举报
回复
大家留下QQ联系好吗?
结贴。
zyhlhx 2003-12-17
  • 打赏
  • 举报
回复
表的操作一般分为 insert delete select
一般情况下select 用的最多, insert 次之, delete 再次之。
如果 是查找或显示数据,既 select ,最好不要将整个表与 dbgrid 帮定,除非表很小,只有几百行 数据 而应该通过procedure 将 你要的数据显示出来,
insert 时候,只要提供一定的参数,向数据库提交数据 (insert )就够了,也没有必要
与 dbgrid 发生联系。
简单的说, dbgrid 主要是用来显示中小批量数据的,在程序中不要多用
StringGrid主要是保存要提交的数据,如果一次要提交一批数据,比如发票明细录入,这也可以作为一个办法。
当然,现在大家都用 clientdataset 了
qwprince 2003-12-15
  • 打赏
  • 举报
回复
还有,如果是4,5个表级联显示的话,那么不用DBGrid,那么编程实在罗嗦了,怎么解决?
qwprince 2003-12-15
  • 打赏
  • 举报
回复
zyhlhx(踏雪无痕)说的有道理,我的解决办法就是将DBGrid改为StringGrid这样,就没有问题了。不过编程量相对增加不少。 难道鱼和熊掌不可得兼?
请问大家在数据库编程时,是不是也一般不用数据绑定控件,如果是的话,有什么简单的办法作数据同步显示的工作?是不是只能设法编写较通用的过程、函数?
qwprince 2003-12-14
  • 打赏
  • 举报
回复
yhbttfile(小兵) ,您所说的“对一个表进行一个单通道的读写。“ 是什么意思呢?
“一个表不要有多个TABLE控件去关联“容易做到吗?有时候系统复杂的话,需要这样啊。
zyhlhx 2003-12-14
  • 打赏
  • 举报
回复
最好不要将 数据感知组件与数据库表直接联系起来,在多用户情况下肯定容易死琐

另外,如果表有很多数据,这样做是很危险的。
qwprince 2003-12-14
  • 打赏
  • 举报
回复
请大家继续关注。
特请chinaway(溪之)大虾答疑,设置了TransIsolation(事务隔离级别)为tiDirtyRead仍旧会发生锁死的现象。
qwprince 2003-12-14
  • 打赏
  • 举报
回复
谢谢各位大虾的得热心解答,我是新报到的菜鸟,希望各位继续热心关注,

我用网格绑定table,两个类似程序同时运行,那么在dbgrid中编辑,提交时琐死,
chinaway(溪之)大虾之法,可以解决问题,但不知会带来什么不良影响?

但是楼顶的程序,没有设置TransIsolation(事务隔离级别)为tiDirtyRead,我在xp下,为什么试了好多遍,也不再锁死?
yhbttfile 2003-12-13
  • 打赏
  • 举报
回复
你这样的设计就,我觉得有问题。
我经常这样设计,对一个表进行一个单通道的读写。一个表不要有多个TABLE控件去关联,否则早晚会出问题。
tolison 2003-12-13
  • 打赏
  • 举报
回复
是你的delphi应用程序1的问题,好像网格显示数据时delphi会留下一个共享读的锁,直到数据全部从后台读取完,你在程序1中将记录定位到最后一行,再看看程序2是否还是被锁住。
chinaway 2003-12-12
  • 打赏
  • 举报
回复
把你的database的TransIsolation(事务隔离级别)设置为tiDirtyRead,即允许脏读,就不会死锁了。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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