专业服装进销存批发收银管理软件

当前位置: 主页 > 系统更新 > 内核更新 >

adoconnection连接充许脏读

时间:2019-07-02 00:50
1、adoconnection连接共用的情况下,如果一个执行长时间不响应,有可能会影响其他客户端也出现查询等待窗口。 更改成使用连接池的方式。每执行一个OPENSQL,就取一个ADOCONNECTION。用完归


1、adoconnection连接共用的情况下,如果一个执行长时间不响应,有可能会影响其他客户端也出现查询等待窗口。

更改成使用连接池的方式。每执行一个OPENSQL,就取一个ADOCONNECTION。用完归还。

execsql则只占用一个ADOCONNECTION。

2、在每个adoconnection连接成功后(新连或断线重连),都要执行

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ (充许脏读)。保证OPENSQL不受表锁,行锁,事务进行中的影响。


3、如有些客户反应收银系统保存后久点才弹出钱箱,是因为保存成功后等待时间太长.

网络版本进销存客户端在与服务端交换数据时,while  xxxx do等待过程,要加个SLEEP.
不加的时候,如几秒不返回结果,CPU会直接占用25%。
SLEEP(150)。太大时,操作成功会界面卡顿。
SLEEP(50)。时,保存成功就会很快得到响应。

        U_DataOptionFrm.runtype(1);
        while (gexec = False) do
        begin
          if (U_DataOptionFrm.Showing = False) and ((DateTimeToint(Now()) - timess) > 2) then
            U_DataOptionFrm.ShowModal
          else
            sleep(50); // 要加个SLEEP,否则在回不来消息的时候,占用cpu
        end;

该作法经5个收银系统随机压力测试没有出现问题.


4、安装包带有的栏目保存文件,要去除grid.title.caption 的内容,否则在安装繁体版,已保存的模块表格还是显示简单的字。

5、登录窗口表格上个蓝色,之前系统默认灰色

进销存系统登录窗口


6、进销存明细表,查所有编号的进出存明细,COMMANDTIMEOUT 超时就返出错信息,如按某个编号查,超时也不返出错误信息,都是同一个存储过程,参数不一样
------分隔线----------------------------