1、我在局域网内组了一个小型的C/S软件,目的是让多人同时录入数据。但是在刚录入了一人共才1000条数据时。他们每个在保存时就已经很慢了。请问是何原因?该如何写“保存”模块的代码呀?用recordset.update快,还是用sql快?
2、在查询后。机器变得非常慢。我个人认为查询占用了大量的内存。(不知对否)。如何用代码清除一下内存。当然是前提不造成软件或当前数据的错误。
 谢谢各位的帮忙了。

解决方案 »

  1.   

    1、用SQL语句吧,updata会独占table的,其他人保存的时候只好等待了。
    2、查询?什么样的查询?大的查询就写存储过程吧,速度快
      

  2.   

    先检查你的数据连接对象在程序结束时有没有Close,或者是一个Recordset有没有关闭?
    如果没有问题,我怀疑是你的数据连接做的有问题,最好把你的代码贴出来,这样我可以给你检查一下,关于你的第二个问题,我觉得一般的情况下Update方法和直接用SQL还是SQL要强得多,如果你不是对MDB桌面数据库进行操作的话,如果对桌面MDB进行操作,那么可能UPdate好一些,因为ADO在处理桌面数据库时候要把SQL转换成类似于Update的命令进行操作,所以速度可想而知:)
      

  3.   

    1、在数据库中对一些关键性字段建索引
    2、用recordset.updatebatch
    3、尽量少用select * from ...
      

  4.   

    另外
       用adodc如一关闭,再次打开是须重新连接数据库而adodb.recordset只要不关闭connection,无须再次连接
      

  5.   

    直接些Sql速度比用记录集修改后Update要快的多。
    我是做Erp的,我们开发就直接用Sql语句代替用记录集更新后的Update。
      

  6.   

    直接用SQL语句吧,这要快很多。用UPDATE每次都要读取全部的记录集,太慢了。
    记录集用完了要释放SET...=NOTHING!
    尽量用存储过程,少用循环和游标
      

  7.   

    本人的经验,SQL语句快很多!
      

  8.   

    个人意见:
     用SQL语句!
      

  9.   

    1、尽可能多的用存储过程。
    2、建立的对象(象Recordset)要及时释放!
    3、对于Select 语句中,尽量少用 * .
    4、用ADO联接数据库,选择正确的游标类型!