Exception EstackOverflow in module BOOK.EXE at 0008263D Stack overflow在win2000下可用,在98下就报上面的错误了,ADO+ACCESS

解决方案 »

  1.   

    你在98中重新安装一下MDAC试试看.
    要不在98中调试一下看看
      

  2.   

    我是说在2000下delpi编译通过,98下没装delphi应用程序就报上面的错
      

  3.   

    数据集如adoquery1到用时才打开, 用完即时关闭。
    窗口要动态生成, 关闭后要即时free.
    因为WIN98与WIN2000, WINXP的内存机制不同, 98的要差点。信我,  因为我也有类似经历。你的问题就是个资源管理和内存利用问题。
      

  4.   

    你的98裝了ado補丁沒有,在98下可以編譯嗎
      

  5.   

    我估计不是mdac的问题,如果是那样的话,可能应该是“接口不支持”这种错误。
      

  6.   

    你要装DELPHI了
    你要么INSTALLER打包
      

  7.   

    你是想发布应用程序吗,不是的话,就用WIN2000
      

  8.   

    谢谢     delphiyesterday(郑康益) 
    正如你说的,问题解决了
      

  9.   

    你的程序有问题,很有可能是你写得不正确。当然也有可能,是编译的问题,你最好在98下面编译一遍。
        堆栈溢出的问题很奇怪的,可能传递给API的参数不正确,这通常是win2000和98的函数不同导致的,你仔细的检查一下是否使用了98不支持的API或者需要打补丁的API,有些功能在2000下面是正确的,但是在98下面是不可用的,比如Form的Alpha,Delphi8去掉了这个Form属性。但是通常,你不设置这个属性就不会引起问题。另外,要注意Unicode和Ansi的差异,通常,Delphi编译器都使用Ansi版本的API,但是也有可能你不正确的引用了,98下面大多都是Ansi字符串版本的API。Com字符串的传递都是Unicode的,你是否直接引用Com组件的方法,但是没有恰当的处理?编译器可能在在这类问题上犯错误,很有可能在不同版本操作系统上面编译的时候弄错。
        堆栈溢出也有可能是你函数调用层次过多,或者一个递归函数不正常,老是无法返回造成的,你可以尝试增加默认堆栈尺寸,在Project的Option里面设置。但是一般不会是这个问题。要么你在堆栈当中创建了大尺寸的局部变量,不过我觉得你没有这个能力,呵呵,我想你还不会在堆栈中创建大尺寸的变量,Delphi的new是在全局堆上面分配内存的。不过一个大尺寸的结构变量是自动分配在堆栈的,这个注意一下。