我用delphi+ADO+mssqlserver 开发一的程序,
窗体约有100个左右(全部静态生成),数据表36个,数据集全放在一DataModule中,用时open,用完close
这个程序先是在win98下开发,初时不大时运行没事,后来程序窗体多或数据表多时运行时打开窗体就时不时有
这样的提示“a call to an OS function failed", "system Error. code87"且打不开窗体。但我移到win2000
下运行却一点事都没有? 为何? 点解决这个问题? 各位高手一定得帮下小弟,否则今年就没米开锅了。

解决方案 »

  1.   

    兄弟,你创建了的窗体关闭时要记得FREE AND NIL
    出现这样的问题是你的窗体创建的太多,又没有释放资源,WIN98承受不了这么多窗体。
      

  2.   

    cg1120(代码最优化-§新年祝福你,好运伴着你§),你的意思是不是要动态创建窗体?后 FREE AND NIL?  如果是静态创建窗体能不能也FREE AND NIL?cg1120,你已帮了我好多,如果我是一个亮女,我实嫁给你. 
    请继续..... 
      

  3.   

    静态的也可以,
    可以在onclose事件中写如下代码:
      Action:=cafree;
    在ondestory事件中写如下代码:
      form2:=nil;    
    不过兄弟,我劝你千万不要静态创建,因为你的窗体太多了(比如20个窗体以下),系统资源将会越来越不足,以至于其它程序都无法运行(特别是在WIN98下面)。
      

  4.   

    cg1120(代码最优化-§新年祝福你,好运伴着你§) 
    很高兴你帮了我大忙.
    可不可以给你的QQ和EMAIL给我?我的QQ:23425998
    EMAIL:[email protected]
    分数稍后就到。
      

  5.   

    我想也是关于创建太多的静态窗口,不是完全释放资源,使系统崩溃  最好创建动态窗口,做好资源的释放     在WIN2000下有一个系统保护功能,自身线程优先级比较高,所以在WIN2000下 有较好的稳定性
      

  6.   

    jakefj(夢幻天使)  ,哪本书上有?
      

  7.   

    我98,2000,xp 都没问题,我都release form 的.