我的一个师兄在打开数据库时,通常这样写if not table1.active then table1.open.这样对吗? (50分)

E

e_ceo

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一个师兄在打开数据库时,通常这样写
if not table1.active then table1.open;
而我觉得应该
if table1.active=true then table1.close;
table1.open;
因为他在读库时,不关闭其他程序打开的库,有可能读写冲突。是这样的吗?
我想找点资料证明我这样写冲突是最小的,但始终找不到!
 
你的师兄是对的
 
我也是和你师兄一样的用法,还没发现问题
 
因为,在数据库并发控制中封锁是有封锁粒度的概念的,就是锁定的对象的大小,你的
意思是锁定了整个表,但是很有可能数据库只是锁定了它读写的一条记录,自然就不存在
问题了。此外数据库对事务的调度中,也是可以串行的,执行完一个事务,再执行另一个,
所以冲突就不会发生。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
784
SUNSTONE的Delphi笔记
S
S
回复
0
查看
718
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部