报错1:APP exception :EDBClient insufficent memory for this operation.
报错2:在某一个获取数据,操作本地access数据库的时候,报出 insufficent memory for this operation
总之就是提示内存有问题了,无法执行任何数据库操作:
找了一圈问题,程序的问题暂时都排除了,只能从电脑系统考虑:下面是找的一个比较靠谱的解决方案:
判断方法:工作站调用服务器中间层情况下,某些工作站发生连接不上中间层,且不固定,有时是这台,有时是那一台。
解决方法:
在服务器上,打开windows【控制面板】-【BDE Administrator】-【Configuration】-【System】-【INIT】,修改倒数第4项【SHAREDMEMSIZE】为默认值2048的整倍数,如4096、8192,但不能过大。最后点击‘Object’菜单下的‘Apply’保存设置。
若数据库为MS SQL Server,则还可以调节BDE设置中【TDS PACKET SIZE】来解决。在服务器上,打开windows【控制面板】-【BDE Administrator】-【Configuration】-【Drivers】-【Native】-【MSSQL】,修改倒数第2项【TDS PACKET SIZE】为默认值4096的整倍数,如8192、12288,但不能过大。最后点击‘Object’菜单下的‘Apply’保存设置
BDE是Delphi 数据库引擎,相当于ODBC,从报出的错误来看,就是操作数据的时候出现内存问题,因此从数据库引擎出发考虑。
后期结果还需要持续观察,毕竟此报错并不经常,是每隔一段时间会出现一次,因此先改完等待三五个月就能知道此方法是否可行。