回 帖 发 新 帖 刷新版面

主题:退出程序问题

多用户退出程序:
DO WHILE TXNLEVEL()>0    &&脱离其他事务处理
    ROLLBACK 
ENDDO 
SELECT tblOperator
LOCATE FOR ALLTRIM(opname)=cnowoperatorname
IF FOUND()      &&操作员离线
 REPLACE Onlinetime WITH DATETIME(),Isonline WITH "离线"
ENDIF 
COUNT TO nOnline FOR IsOnline="在线"
IF nOnline=0    &&所有操作员都已经离线,开始清理数据库
    CLOSE DATABASES  ALL   &&关闭所有数据库
    *!* 重新以独占方式打开表,清理带有删除标记的记录
  
    USE tblcby EXCLUSIVE 
    PACK 
    USE tbloperator EXCLUSIVE 
    PACK 
    USE tbljf EXCLUSIVE 
    PACK 
    USE tbluser EXCLUSIVE 
    PACK 
    USE tbluserye EXCLUSIVE 
    PACK 
    USE tblsysf EXCLUSIVE 
    PACK 
    USE tbldwmc EXCLUSIVE 
    PACK 
   USE tblsblr EXCLUSIVE 
    PACK 
     USE tblny EXCLUSIVE 
    PACK
     USE tbldz EXCLUSIVE 
    PACK     
ENDIF 
CLEAR EVENTS 
QUIT 
运行时出现错误:在当前工作区中没有打开的表

回复列表 (共6个回复)

沙发

当网络上的其他用户要访问事务处理中修改的记录时,
必须等到事务处理结束之后,才能取消当前事务处理期间所做的任何修改。

板凳

谢谢老师!
我的意思是所有操作员都已经离线,才开始清理数据库.

3 楼

哪条语句出现了错误???????
请在该语句前添加一句:
wait wind ALIAS( )

看当前是否有打开的数据表!

4 楼

关闭程序出现打开文件的对话框,程序无法结束.

5 楼

关闭打开文件的对话框,
按 挂起
打开调试器
查看错误!

6 楼

谢谢CBL518老师!
在你的指导下,我找出了问题.有一表地址存错了.谢谢了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册