数据表加锁问题(100分)

  • 主题发起人 主题发起人 liu_dz
  • 开始时间 开始时间
L

liu_dz

Unregistered / Unconfirmed
GUEST, unregistred user!
用Delphi3.0与Sybase开发c/s程序中遇到执行Query和Table控件open事件时,相应的数据表被加锁,请问如何消除这一问题?谢谢!
 
1.table中有 EXCLUSIVE 属性, 设为 FALSE;

2.你QUERY中的语句是什么, 怎么会有此加锁一说?
 
TTABLE 的EXCLUSIVE属性=TRUE LOCK
QUERY 的REQUESTLIVE=TRUE 当前记录LOCK
你的LOCK是那一种?
 
sybase和Sql server是有这种问题,这是数据库加锁方式不同造成,
避免的办法,尽量不要取所有的数据.或者对于大数据量的表,使用
query来存取数据,加上nolock参数,
例如 'select * from U_Man(nolock)'
就可以了.sqlserver中是这个参数,sybase中也应该差不多,你看一下帮助好了
 
具SyBase数据库资料所述:Sybase不支持行级锁,较为经典的办法是:
将每条记录的长度试增加为2K以上,则SyBase自动进入页级锁,从而达到
行级锁的目的!
 
1. 尽量不使用绑定模式
2. 少使用Table控件,对表的录入删除修改用对应的Sql通过Query控件实现
3. 有些情况下,加锁是维护数据一致性必须的,根据数据库系统支持的隔离级别
对于查询,修改等操作都要加锁
4. 设置数据库控件的隔离级别为脏读,但是不能保证数据的一致.

 
把SYBASE在BDE中使用DB——LIBERARY,决对不会再有问题,我的SYB+DEL——C/S
应用跑了一年了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
776
DelphiTeacher的专栏
D
后退
顶部