别的都不用,直接用 一个句子就OK。————  close;

解决方案 »

  1.   

    procedure TForm1.FormShow(Sender: TObject);
      begin
        sql:=select * from today where bj1=0;
        dbsvr.displayset1.SQL.text:=sql;//dbsvr是datamodule,displayset1是Tadoquery
      
        dbsvr.displayset1.Open ;
        if dbsvr.displayset1.RecordCount=0 then
          begin
            application.MessageBox('今日计划未生成','未生成计划',mb_ok);
            //我想终止程序(how to do ???)试过前述的好多方法都不行
          end;
      

  2.   

    刚才试了,close也不行,我要彻底终止整个程序,不是退出事件。
      

  3.   

    用什么连数据库的,ADO的如没有升级它有bug,结果集为空就报错。
      

  4.   

    不要在OnShow事件.在OnCreate事件.
      

  5.   

    或者干脆直接在项目文件里的begin..end中在数据模块创建之后,
    加上那段代码,exit
      

  6.   

    我的ado 已经加了补丁,问一下风之舞,为什么在onshow 里就不能终止程序?难道终止程序还有事件的限制吗?
      

  7.   

    用 Application.Terminate; 出什么错误提示?
    我觉得你这段代码放到 dbsvr 的 OnCreate 事件中更好。
      

  8.   

    用application.terminate到不会报错,但不能把程序终止掉。
      

  9.   

    onactive、onshow事件里不能SHOW,HIDE,CLOSE 窗口。
      

  10.   

    用application.terminate 到不会报错,但不能把程序终止掉。
      

  11.   

    你将 这段代码放到 dbsvr 的 OnCreate 事件用 Application.Terminate;  应该就没问题了。
      

  12.   

    我有个方法一定行,放一个时钟控件,程序终止语句写在它的ontimer中(close();)在onshow中把关闭代码改成Timer1->Enabled=true;就可以了。
      

  13.   

    先把数据集关掉,再用application.terminate或close
      

  14.   

    不用说了,把判断和终止代码放在Form的OnCreate事件中处理就行了.
      

  15.   

    刚才试了一下,在dbsvr的oncreate里用application.terminate 也不行。真不知为什么。
      

  16.   

    终于搞定了,在dbsvr的oncreate里用halt就行
    多谢各位的指教,现在发分