例如,可以采用如下所示的代码: Private SubTblBrowse_Click() 内容来自www.paper51.com Dim fld1 AsADODB.Field 内容来自www.paper51.com Dim fld2 AsADODB.Field copyright paper51.com Dim rs AsADODB.Recordset paper51.com setrs=g_cn.execute(...) copyright paper51.com 'g_cn为全局对象adodb.connection copyright paper51.com Set fld1 =rs.Fields(“id”) '数据表的字段 paper51.com Set fld2 =rs.Fields(“name”) ’数据表的字段 copyright paper51.com
If rs.BOF =False Then copyright paper51.com
While rs.BOF =False 内容来自论文无忧网 www.paper51.com
Debug.Printfld1.Value 内容来自论文无忧网 www.paper51.com Debug.Printfld2.Value 内容来自论文无忧网 www.paper51.com rs.MoveNext 内容来自论文无忧网 www.paper51.com Wend http://www.paper51.com End If copyright paper51.com rs.Close paper51.com End Sub paper51.com 3.用SQL语句和存储过程进行数据更新 内容来自论文无忧网 www.paper51.com 尽管采用Recordset对象来更新数据是非常方便的,但是它的开销也大,通过数据源对象返回的查询集不仅包含了数据,而且也包含了元数据(metadata), 在有些时候元数据可能比数据本身还要大,所以最好采用SQL语句来更新数据。还有要使用存储过程而不是单一的SQL语句来获取信息。因为存储过程是在服务器端执行的,只把结果返回到客户端,这样一方面可以降低网络进行数据交互的开销,另一方面使系统更加容易维护,并且能保持数据的一致性。 copyright paper51.com 4.使用集合操作单条的SELECT语句 内容来自www.paper51.com 在使用游标时,最好使用集合的方法对单条的SELECT语句进行操作。Recordset:: get_Collect方法和Recordset::put_Collect方法是Recordset 对象的快捷方式,可以快速地得到一个字段的值而不需要获得关于一个字段的引用。例如,可以采用如下代码: http://www.paper51.com Sub Collect() 内容来自论文无忧网 www.paper51.com Dim rs As NewRecordset 内容来自论文无忧网 www.paper51.com rs.ActiveConnection= “...” copyright paper51.com
rs.Source=“一条SQL查询语句” http://www.paper51.com rs.Open 内容来自www.paper51.com
Debug.Printrs.Collect(0),rs.Collect(1),rs.Collect(2) copyright paper51.com Debug.Printrs!au_id, rs!au_fname, rs!au_lname 内容来自论文无忧网 www.paper51.com End Sub copyright paper51.com 5.只查询所需要的数据 copyright paper51.com 尽管很多开发人员都习惯采用“SELECT * FROM TBL”的模式进行查询,但是为了提高系统的效率,如果只需要其中某几个字段的值,最好把这几个字段直接写出来,同时需要限定返回记录集的范围(通过WHERE子句进行限定)。 http://www.paper51.com 6.正确选择游标的位置、类型和锁方式 copyright paper51.com
如果只需要按顺序读取记录并且不需要滚动和更新记录,最好使用服务器端游标(adUseServer)、仅向前游标(adOpenForwardOnly)和读加锁(adLockReadOnly),这样可以获得最好的性能。如果需要滚动记录,采用客户端游标(adUseServer)会比采用服务器端游标所得到的性能要好,因为ADO系统默认是采用服务器端游标类型。当然如果数据集合相当大,采用服务器端游标的性能会好一些。同时需要注意:如果采用客户端游标,最好只采用读加锁(adLockReadOnly)的锁类型,因为如果需要更新数据,客户端游标引擎需要得到额外的信息(元数据),而获取这个信息的代价是非常昂贵的。 copyright paper51.com 7.调整记录集对象的CacheSize属性 copyright paper51.com ADO使用记录集对象的CacheSize属性来决定提取和缓存的记录的数目,当在缓存的范围内浏览数据时,ADO就只从缓存中提取数据。当要浏览的数据超出缓存范围的时候,ADO就释放当前缓存,提取下一些记录(提取的数目为CacheSize所指定的大小),所以必须根据具体的应用程序的情况,来设定CacheSize的大小,保证得到最佳的性能。 copyright paper51.com
|