我用activeform技术开发了一个人事系统,用的是socket通讯协议,其中一个表有3000条数据,在客户端下载时一定要用每次下载50条才可以,否则速度非常慢,有时会出现“Error reading from socket”错误提示,然后死机,我该解决。而且我也只是我自己访问数据库。如何解决“Error reading from socket”,是什么原因出现这样的问题呢?如果不是每次下载50条记录,而是一次性完全下载的话就要话近20秒的时间。又该如何优化呢?

解决方案 »

  1.   

    我用socket通讯协议时,下载数据,每次50笔,一张表中有3000条记录,但有时能完全下载下来,有时只能下载700条记录,有时只能下载1050条记录,就死机,提示错误是“Error reading from socket”,请高手为我解答。
      

  2.   

    activeform 本来有很多缺陷.
    用xml 和internet express更好些.
      

  3.   

    改成多层的应用系统,比方说3Tire structure,在Appserver层中封装商业逻辑和处理数据(过滤数据),这样客户端就不会出现你说的现象。使用 DbExpress组中的通讯组件通讯,可以解决依次下载50笔数据的问题。
    设置:clientdataset1.PacketRecords:=50;
    你参考一下李维的书:《Delphi 7高效数据库程序设计》