如何判断一个表正在被使用?(100分)

  • 主题发起人 主题发起人 eaglepsm
  • 开始时间 开始时间
E

eaglepsm

Unregistered / Unconfirmed
GUEST, unregistred user!
我想删除一个临时表"temp",我用drop table temp,如果这个表正在被使用,则会出错,显示 表'temp'不存在,但实际上是存在的,如果没有使用则可以删除,我应该怎样判断这个表是否正在被使用呢?(Access数据库)
 
设置个标识,在表使用时和使用完毕时分别设置不同的值,删除的时候根据这个标识判断该表是否仍在使用。
 
试图独占他,如果不行就说明有打开。
 
设置标记?我上一句sql是select * into [destination] from [temp] in ...这样的语句,这句话执行完了才执行下一句drop table temp,事实上他们是顺序执行的,但实际上在执行drop语句的时候,上一个语句并没有执行完(这是否从侧面反映执行插入的sql语句采用的是多线程的方式?),因此才会出现冲突的情况,现在的问题是我无法判断上一条语句什么时候执行完。
我想到的一个方法是使用sleep的办法,但这是一个笨办法,我希望能找到一个类似表的Busy属性,但没找到。
独占访问的方式我没试过,感觉会影响效率。
 
你使用异步执行了?同步的话执行完返回后才执行下一句吧
 
是异步执行的,本来执行到下一句就表示上一句已执行完了,但实际上不是这样
 
ExecuteOptions设的什么?
 
ExecuteOptions全部为false
 
你到以下地址去找找,可能找得到你需要的答案。
http://iinsnian.cnblogs.com/
这个地址里介绍了很多DELPHI的技巧,不知道你的运气好不好。
 
接受答案了.
 
后退
顶部