一个服务程序在后台跑,用到了BDE访问SQLServer,隔了一段时间就会莫名其妙的与数据库连接失败,查了一下BDE,发现已经死掉了,bde administrator也无法打开,报错,重启或注销机器后才正常。头逼得急,让我尽快查出问题,但我一点头绪都没,对BDE这东西以前也没接触过。能否给点线索或启示,想请教一下高手,有哪些原因可能导致BDE死掉啊。谢谢

解决方案 »

  1.   

    现在开发还用BDE?汗~~~
    ADO的好呀,而且连SQL的
      

  2.   

    换一个高一点版本的BDE试试,我也曾经碰到过,不行的话可能就换另外的连接方法吧
      

  3.   

    修改一下BDE的默认参数就可以了,因为默认的BDE的BUFFER只有2M,对于现在的程序实在太小了,
    下面我有BDE修改参数,只供参考,最好根椐自已的服务器的内存大小来设:
    "VERSION"="4.0"
    "LOCAL SHARE"="FALSE"
    "MINBUFSIZE"="4096"
    "MAXBUFSIZE"="16384"
    "LANGDRIVER"="china"
    "MAXFILEHANDLES"="480"
    "SYSFLAGS"="0"
    "LOW MEMORY USAGE LIMIT"="640"
    "AUTO ODBC"="FALSE"
    "DEFAULT DRIVER"="PARADOX"
    "MEMSIZE"="32"
    "SHAREDMEMSIZE"="8192"
    "SHAREDMEMLOCATION"=""
    "DATA REPOSITORY"=""
    "SQLQRYMODE"=""
    "MTS POOLING"="FALSE"打开BDE->>configuration->>system->>INIT选项
      

  4.   

    to:ly_liuyang(Liu Yang)
    你有没有试过有好几十万数据的表,用那种方式快,是BDE还是ADO?
      

  5.   

    to zhaogan(KingFox):以下这些属性设置如何用Delphi程序中实现,谢谢
    "VERSION"="4.0"
    "LOCAL SHARE"="FALSE"
    "MINBUFSIZE"="4096"
    "MAXBUFSIZE"="16384"
    "LANGDRIVER"="china"
    "MAXFILEHANDLES"="480"
    "SYSFLAGS"="0"
    "LOW MEMORY USAGE LIMIT"="640"
    "AUTO ODBC"="FALSE"
    "DEFAULT DRIVER"="PARADOX"
    "MEMSIZE"="32"
    "SHAREDMEMSIZE"="8192"
    "SHAREDMEMLOCATION"=""
    "DATA REPOSITORY"=""
    "SQLQRYMODE"=""
    "MTS POOLING"="FALSE"
      

  6.   

    to  sshzte_cat
    可以是注册表中修改相应的值
      

  7.   

    可以用程序修改注册表中的值,你的BDE是用在服务端还是客户端的?如果是客户端最好手动修改因为每台机子的内存和性能是不一样的
      

  8.   

    我感觉BDE也不可靠.这几天被死锁的问题弄得头也大了.
      

  9.   

    我想死锁的原因不会是BDE的原因吧,多检查一下你的程序代码和SQL语句,还有数据库的优化问题等。