同时操作数据库表的问题。永远在线,必定结贴!
其实这个问题一早就想问了,只是想考虑清楚再问。我的数据库是本地的Access,我有一个Form2,里面放了一些DBEdit之类的Data Controls控件。Show那个Form2的时候,我就让相连的ADODataSet1处于Edit状态,以便用户修改DBEdit控件的内容。关闭的时候就Post()。中间可能会停留一段时间再关闭。问题如下:
(1)如果在关闭之前,一个Timer控件或者另一个线程要对此数据表操作(插入、删除或编辑等),会出现什么情况?会否冲突?Timer跟线程的情况会否不同?本来可以设置LockType,用乐观锁定或者悲观锁定可以约束编辑,但不知道能否约束插入?
(2)我曾经试过用另外一个ADODataSet2和ADOConnection2连接那个表,即两个ADODataSet同时连接那个表,好像没有出现冲突问题,有没有人能解释?不同的ADOConnection是否用不同的线程?有或者不需要ADOConnection2,只要把ADODataSet1和ADODataSet2都连到ADOConnection1就可以呢?
不知道我说得清不清楚,大家回答之前,最好有试过的经验,不要凭空想象啊!