中国开发网: 论坛: 程序员情感CBD: 贴子 338007
wynnhjg
NND,偶放狗咬,居然全得到的是ASP的,还有些JAVA相关的东西.
VB与数据库相连,通常有哪些方式?各有什么优缺点?


2.vb对数据库访问的几种方式

  ※使用vb内置的microsoftjetdatabaseengine所带的数据控件(datacontrol);

  ※使用jetengine在vb中所提供的数据访问对象dao(dataaccessobject);

  ※使用odbcapi来访问任何带有odbc驱动程序的外部数据库(odbcapi可以绕过jetengine直接访问odbc驱动程序以及通过它连接的数据库);

  ※使用带有vbsql定制控件的db-libraryapi来访问microsoftsqlsever;

  ※使用第三方厂家提供的定制控件和驱动程序。

  我们比较常用的是前两种方法,而且多数情况下是二者的结合使用。

  第一种方法使用起来最简单,可以不需编程就能完成对数据库的大部分操作。假设我们在form1上引用数据控件data1,并通过它来访问foxpro2.6数据库,则需要对data1如下属性作设置:

  ·设置connect属性:connect是指通过此datacontrol要访问哪一种数据库,缺省的设置是access数据库。点击下拉按钮,从中找到“foxpro2.6”并选中。

  ·设置databasename属性:指向所要访问的数据库名。从中选择所需的数据库。这里需要注意的是,由于在foxpro数据库中,每个表是一个单独的.dbf文件(即foxpro中的数据库文件),与这里的databasename不一致。那么在设置时所有的.dbf文件所在的目录名就成为数据库名,而该目录下的所有.dbf文件就成为所谓的数据表(table)。

  ·设置recordsettype:记录集的类型有三种:0—table、1—dynaset、2—snapshot,缺省为0—table。当然,所选的数据库不同其缺省值也不同。

  ·设置recordsource:这里的情况与数据库为access时不同。因为在选择databasename时已经选择了数据表,因此这里无需再进行设置。如果是access数据库,则还需选择数据表。

  单有了datacontrol还不够,还必须有显示数据的约束控件(boundcontrol)的配合才能完成数据库的大部分功能。约束控件包括:dbcombo、dblist、dbgrid、label、textbox、checkbox、listbox、picturebox和image等。其中前面的五种比较常用。通过把约束控件和数据控件联系起来,即可实现对数据库的各种操作。要实现这种联系,只需设置约束控件的数据源属性,比如控件dbgrid,有的还需要设置数据域属性,比如控件textbox等。

  以上这些都设置好以后,则程序运行时所有的约束控件的内容将自动跟着数据控件而改变。所有的约束控件所显示的是当前的数据;当用户更新或加入了新数据,或当数据控件移到新的记录时,所有的更新将自动存入数据库。

  当然,这种方法并不是万能的,对于一些要求比较灵活且复杂的查询、排序等操作,这种方法似乎无能为力。这就要使用第二种方法。vb4.0共提供19种dao,它们是column、container、database、dbengine、document、error、field、group、index、parameter、property、querydef、recordset、relation、bookmark、tabledef、user。其中,database、querydef、recordset等最为常用。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录