为VB5辩解:VB处理数据库时求数据表记录总数的最佳方法

2016-02-19 18:11 4 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐为VB5辩解:VB处理数据库时求数据表记录总数的最佳方法,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - 编程语言 】

--------VB主要处理的是MDB格式的数据库,但就在这方面,它就偏偏出了差错,先看看下例:
  
  DimdbAsDatabase
  DimrsAsRecordset
  Setdb=OpenDatabase(App.Path&"zzr.mdb")
  Setrs=db.OpenRecordset("test")
  Debug.Printrs.RecordCount
  
  --------此例假设在应用程序目录下有一个名为"zzr.mdb"的数据库,而且它里边有一个名为"test"的表,此程序的目的就是求出该表中的记录的总数。此处用到的是"表"对象的RecordCount属性,这样用在一般性况下是正确的,但并不能保证在所有的情况下都能得出正确的结果,比如说表中的数据量很大,或者是数据库受到过什么损害等等。如果碰到这种情况,我们可以换一个角度来处理。请看下面的程序:
  DimdbAsDatabase
  DimrsAsRecordset
  DimNumAsLong
  Setdb=OpenDatabase(App.Path&"zzr.mdb")
  Setrs=db.OpenRecordset("test")
  Num=0
  rs.MoveFirst
  DoWhileNotrs.EOF()
  Num=Num 1
  rs.MoveNext
  Loop
  Debug.PrintNum
  
  --------这样,最后得到的Num即为正解结果,这种方法的思路是从表的开始处一直顺序走到结尾,就可以"数"出表中到底有多少条记录。这种方法看起来很笨,但是它却是一个相当准确的方法,大家不防可以试一下。
  ----再看笔者的说法:
  
  ----先看上面一行程序:Debug.Printrs.RecordCount,VB5在读取数据表时并非一次性将全部记录均读入内存(想想看如果有一个表,里面有一百万个记录甚至一亿个或更多,要想全部读入内存,你的机器能承受得了吗?),只是先读入一部分(在下认为这是VB的优异这处),recordset对象并非表的全部记录,只是已读入内存的部分,故用rs.recordcount得到的不是表的记录总数。
  
  ----再看上面程序的改良部份:
  
  
  DoWhileNotrs.EOF()
  Num=Num 1
  rs.MoveNext
  Loop
  Debug.PrintNum
  
  ----在下用十万个记录的表对上面这段程序做了个测试,结果花了六分半钟(intel166,32M内存),如此的等待,阁下有耐心无?请看在下的对策:
  ----假设数据表已打开,用
  
  rs.Recordset.MoveLast'将指针移到表的最后一笔记录
  debug.printrs.Recordset.RecordCount
  即可得出正确结果。
  
  或者用下一种方法亦可
  
  rs.Recordset.MoveLast
  debug.printrs.Recordset.AbsolutePosition 1
  '调用绝对位置,因vb的第一笔记录是由零算起,故要 1。->

来源:http://www.tulaoshi.com/n/20160219/1616966.html

延伸阅读
网上经常有人问如何把图像存入数据库中,原先我也是不得要领。经过多方指点和自己在开发过程中的摸索,终于解决这一问题。下面给出用VC,VB如何操作图像文件存取数据库的原码,帮助一些还没有掌握方法的朋友(均用ADO连接数据库)。 一、VC把一个文件存入数据库 CFile imagefile; if(0 == imagefile.Open("d:usermp.bmp",CFile::modeRead)) ...
在VB中,用microsoftjet数据库引擎和数据访问对象DAO(dataaccessobject)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在VB中用DAO通过miscrosoftjet数据库引擎访问远程数据库的方法。 用DAO访问远程数据库大体上可以通过三步来实现,即数据连接、数据处理和断开连接。下面主...
ODBC数据源 1. 什么是ODBC ODBC(Open Database Connectivity,开放式数据库互联),是目前国际上通用的数据库访问标准。 2. 什么是ODBC数据源 就是计算机上的ODBC配置和管理的工具,利用这个工具,用户就可以定制使用ODBC来连接数据库。 Oracle 9i客户机 VB程序连接数据库的过程分析 1. VB程序指定...
Visual Basic对Access数据库的集成非常紧密,通常由以下几个部分组成。 引用DAO类型库 1、从“工程”菜单中选择“引用”菜单项; 2、在可引用列表框中选择“Microsoft DAO 3.51 Object Library”项。 3、最后“确定”即可 设置DAO数据类型变量 DAO数据类型变量共分成两种: 1、Database变量 ...
PrivateSubCommand1_Click() OnErrorGoToErr100 '定义表与字段 DimDefDatabaseAsDatabase DimDefTableAsTableDef,DefFieldAsField SetDefDatabase=Workspaces(0).OpenDatabase(App.Path&"vbeden.mdb",0,False) SetDefTable=DefDatabase.CreateTableDef("VB编程乐园") 'dbBinary=9 ...

经验教程

124

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部