VB程序中用ADO对象动态创建数据库和表

上传人:平*** 文档编号:9860562 上传时间:2017-10-04 格式:DOC 页数:5 大小:44.13KB
返回 下载 相关 举报
VB程序中用ADO对象动态创建数据库和表_第1页
第1页 / 共5页
VB程序中用ADO对象动态创建数据库和表_第2页
第2页 / 共5页
VB程序中用ADO对象动态创建数据库和表_第3页
第3页 / 共5页
VB程序中用ADO对象动态创建数据库和表_第4页
第4页 / 共5页
VB程序中用ADO对象动态创建数据库和表_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《VB程序中用ADO对象动态创建数据库和表》由会员分享,可在线阅读,更多相关《VB程序中用ADO对象动态创建数据库和表(5页珍藏版)》请在金锄头文库上搜索。

1、VB 程序中用 ADO 对象动态创建数据库和表摘要: 本文阐述了在 VB 程序中利用 ADO 对象动态创建数据库和数据表的方法,这些方法在开发 VB 数据库应用程序中很有实用价值,它可以提高数据库程序灵活性。关键词:数据库、数据表、ADO、ADOX 1: 问题的提出在 Visual Basic 中,常用的数据访问接口有下列三种:数据库访问对象(DAO,Data Access Object)、远程数据库对象(RDO,Remote Data Object)和 ActiveX 数据对象(ADO,ActiveX Data Object )。数据库访问技术一直在不断进步,而这三种接口的每一种都分别代表了

2、该技术的不同发展阶段。最新的是ADO,它是比 RDO 和 DAO 更加简单,然而更加灵活的对象模型。正因如此,越来越多的人在用 VB 开发数据库软件时使用 ADO 作为数据访问接口。在开发过程中,我们通常的使用的方法是:先使用数据库管理系统(例如:Microsoft Access)或 VB 中的可视化数据管理器建立好数据库和数据表结构,然后在程序中通过使用 ADODC 数据库控件或引用 ADO 对象与数据库中的表建立连接,再通过数据库感知控件(例如:文本框、DataGrid 等) 来进行数据库的各种操作。在这种开发过程中,我们有时需要面对这样一个问题:如何让用户在程序运行过程中动态地建立自己所

3、需的数据库和数据表以提高程序的灵活性呢?在程序运行过程中建立自己所需的数据库和数据表,其本质就是用代码(或者说通过编程) 来建立数据库和数据表。众所周知,在 Foxpro 或 ASP 编程中,这是很容易的一件事件。那么在 VB 数据库编程中又是怎样来操作的呢?在 VB 数据库编程中,如果使用 DAO 作为数据库访问接口技术,则可以用CreateDatabase 结合 CreateTableDef 方法来实现,目前已有不少书和杂志都讲到了这种方法,本文就不再讲述了;但你如果使用的是最新的数据库访问接口技术 ADO,你却发现目前的书和杂志上没有文章讲到如何用代码来建立数据库和数据表的方法,可有时我

4、们非常需要用到这种方法,下面我们就来解决这个问题。 2: ADO 与 ADOX我们先来对 ADO 和 ADOX 进行简单的认识。在 VB6 中,使用 ADO 开发数据库应用程序时,我们要引用对象库Microsoft ActiveX Data Objects 2.5 Library, 这个东西的简称就是 ADO,它是 VB6 数据库最核心的对象群,也是 VB 数据库开发人员经常所引用的对象库,在 VB6 中你可以看到它的各种版本,从 2.0 版到 2.6 版都有,很多人对它已经很熟悉,在此我们不再详细介绍。如果要在程序运行过程中创建数据库和表,我们还要引用对象库Microsoft ADO Ext

5、 2.1. For DDL Security,简称为 ADOX,其库文件名为是:Msadox.dll。ADOX 是对 ADO 对象和编程模型的扩展,它将 ADO 扩展为包括创建、修改和删除模式对象,如表格和过程。它还包括安全对象,用于维护用户和组,以及授予和撤消对象的权限。ADOX 的对象如下表所示:对象 说明Catalog 包含描述数据源模式目录的集合。Column 表示表、索引或关键字的列。Group 表示在安全数据库内有访问权限的组帐号。Index 表示数据库表中的索引。Key 表示数据库表中的主关键字、外部关键字或唯一关键字。Procedure 表示存储的过程。Table 表示数据库表

6、,包括列、索引和关键字。User 表示在安全数据库内具有访问权限的用户帐号。View 表示记录或虚拟表的过滤集。ADOX 常用方法有:Append (包括Columns、Groups、Indexes、Keys、Procedures 、Tables、Users、Views) 、Create(创建新的目录)、Delete(删除集合中的对象)、Refresh(更新集合中的对象)等等。有关 ADOX 的详细信息,请在 http:/ 中参阅 Microsoft 发布的有关 ADOX 说明的 Web 页。3: 在原有数据表的基础上产生新的数据表如果仅仅是在已有的数据表的基础上产生新的数据表,我们只要引用对

7、象库Microsoft ActiveX Data Objects 2.5 Library再利用 SelectInto 语句就可以了。例如:有一个名为 Wage.mdb 的数据库,数据库中有一个名为工资表 数据表,该数据表的字段有:编号、姓名、基本工资、津贴、应发工资、扣款、实发工资等,这个表中已经有很多的记录。现在我们把其中的实发工资大于 2000 的记录筛选出来组成一个新表,新表的名称由用户从文本框中输入,新表中我们只要三个字段,它们是:编号、姓名、实发工资。我们用下列程序就可以实现:(事先在窗体中添加一个文本框 Text1 和一个命令按钮 Command1)Dim conn As New

8、ADODB.ConnectionDim rs As New ADODB.RecordsetDim command As New ADODB.commandPrivate Sub Command1_Click()Dim bm As StringDim sql As StringIf Text1.Text 2000Set command.ActiveConnection = conncommand.CommandText = sqlcommand.ExecuteElseMsgBox 你必须输入一个名字End IfPrivate Sub Form_Load()Dim str As Stringstr

9、 = App.PathIf Right(str, 1) Thenstr = str + End Ifpstr = Provider=Microsoft.Jet.OLEDB.3.51;pstr = pstr & Persist Security Info=False;pstr = pstr & Data Source= & str & wage.mdbconn.Open pstr rs.CursorLocation = adUseClientrs.Open 工资表, conn, adOpenKeyset, adLockPessimisticSet DataGrid1.DataSource = r

10、sEnd Sub当然,我们还可以把程序设计得更好,比如:让用户先在窗口中任意选择所需的字段和一些条件,然后再组合生成一个新表。但无论如何,这种操作只能在从原表的基础上产生一个新表,不能产生一个数据库文件,并且新表和原表放在同一个数据库中。4: 建立新的数据库和表前面讲到的方法有一定的局限性,它不能让用户产生自己所需的数据库文件,即使能产生数据表也只能在原有表的基础上生成。我们现在的目的就是让用户利用 ADO 对象在程序运行过程中创建数据库和表,就好象他利用 Access 来建立数据库和表一样。为此,我们应该引用对象库 Microsoft ActiveX Data Objects 2.5 Lib

11、rary和Microsoft ADO Ext 2.1. For DDL Security我们不妨用一个实例来说明具体的操作过程和方法。我们的实例要达到目的是:在程序运行过程中建立一个数据库,数据库的名称由用户输入。然后在数据库中建立一个名为MyTable的数据表,数据表中有三个字段,它们分别是:编号(整数型)、 姓名(字符型,宽度为 8)、 住址 (字符型,宽度为 50),接着在数据表中添加一条记录,最后在 DataGrid 控件中把记录的内容显示出来,并且让用户在 DataGrid控件中任意修改、添加记录。首先在 VB 中新建一个窗体,然后在 工程菜单中引用对象库Microsoft Acti

12、veX Data Objects 2.5 Library和Microsoft ADO Ext 2.1. For DDL Security。接着定义三个窗体级的对象变量和一个窗体级的字符串变量,它们的具体定义是:Dim cat As New ADOX.Catalog 不用 cat 用另外一个名字也可以Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim pstr As String 定义该变量是为了后面的书写方便为了更灵活地创建数据库,我们可以在窗体中加入一个通用对话框、一个 DataGrid 控件,三个命令按钮,它们的

13、标题分别是:创建数据库和表、查看、更新。通用对话框的作用是给用户输入数据库文件名和决定数据库的存放位置。 创建数据库和表 命令按钮对应的代码是:Private Sub Command1_Click()Dim fm As String fm 变量用来获取用户输入的文件名CommonDialog1.Filter = MDB 文件(*.mdb)|*.mdb|AllFiles(*.*)|*.*|CommonDialog1.FilterIndex = 1CommonDialog1.InitDir = D:JthpaperCommonDialog1.Flags = 6CommonDialog1.Actio

14、n = 2If CommonDialog1.FileName = ThenMsgBox 你必须输入一个文件名,请重新保存一次! Exit SubElse fm = CommonDialog1.FileNameEnd Ifpstr = Provider=Microsoft.Jet.OLEDB.4.0; 不能把这里的 4.0 改为 3.51pstr = pstr & Data Source= & fmcat.Create pstr 创建数据库Dim tbl As New Tablecat.ActiveConnection = pstr tbl.Name = MyTable 表的名称 tbl.Col

15、umns.Append 编号, adInteger 表的第一个字段tbl.Columns.Append 姓名, adVarWChar, 8 表的第二个字段tbl.Columns.Append 住址, adVarWChar, 50 表的第三个字段cat.Tables.Append tbl 建立数据表conn.Open pstrrs.CursorLocation = adUseClientrs.Open MyTable, conn, adOpenKeyset, adLockPessimisticrs.AddNew 往表中添加新记录rs.Fields(0).Value = 9801rs.Fields

16、(1).Value = 孙悟空rs.Fields(2).Value = 广州市花果山rs.UpdateEnd Sub上面程序中有一个需要说明的地方,这就是语句:pstr = Provider=Microsoft.Jet.OLEDB.4.0;,这个语句表示 Microsoft Jet OLEDB 驱动程序的版本是 4.0,这是目前最新的版本,利用它你可以用 VB 中的 ADO 对象访问 Access2000 及其以下版本所建立的数据库。你不能把这里的 4.0改为3.51,否则程序不能正常运行;在 VB6 中, 3.51 版本的 Microsoft Jet OLEDB 驱动程序对应的是 Access97 数据库。换而言之,用这种方法建立的数据库和表跟用 Access2000 所建立的数据库和表是同一类

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号