注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 微软开发专栏 > VB.NET 内容正文:VB程序中用ADO对象动态创建数据库和表

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

发布时间:2006-06-15 14:48:32 来源:blog 网友评论 0 条
  摘要: 本文阐述了在VB程序中利用ADO对象动态创建数据库和数据表的方法,这些方法在开发VB数据库应用程序中很有实用价值,它可以提高数据库程序灵活性。

  关键词:数据库、数据表、ADO、ADOX

  1: 问题的提出

  在Visual Basic中,常用的数据访问接口有下列三种:数据库访问对象(DAO,Data Access Object)、远程数据库对象(RDO,Remote Data Object)和ActiveX数据对象(ADO,ActiveX Data Object )。数据库访问技术一直在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它是比RDO和DAO更加简单,然而更加灵活的对象模型。正因如此,越来越多的人在用VB开发数据库软件时使用ADO作为数据访问接口。在开发过程中,我们通常的使用的方法是:先使用数据库管理系统(例如:Microsoft Access)或VB中的可视化数据管理器建立好数据库和数据表结构,然后在程序中通过使用ADODC数据库控件或引用ADO对象与数据库中的表建立连接,再通过数据库感知控件(例如:文本框、DataGrid等)来进行数据库的各种操作。在这种开发过程中,我们有时需要面对这样一个问题:如何让用户在程序运行过程中动态地建立自己所需的数据库和数据表以提高程序的灵活性呢?在程序运行过程中建立自己所需的数据库和数据表,其本质就是用代码(或者说通过编程)来建立数据库和数据表。众所周知,在Foxpro或ASP编程中,这是很容易的一件事件。那么在VB数据库编程中又是怎样来操作的呢?在VB数据库编程中,如果使用DAO作为数据库访问接口技术,则可以用CreateDatabase结合CreateTableDef方法来实现,目前已有不少书和杂志都讲到了这种方法,本文就不再讲述了;但你如果使用的是最新的数据库访问接口技术ADO,你却发现目前的书和杂志上没有文章讲到如何用代码来建立数据库和数据表的方法,可有时我们非常需要用到这种方法,下面我们就来解决这个问题。

  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 2.1. For DDL Security",简称为ADOX,其库文件名为是:Msadox.dll。ADOX是对 ADO 对象和编程模型的扩展,它将 ADO 扩展为包括创建、修改和删除模式对象,如表格和过程。它还包括安全对象,用于维护用户和组,以及授予和撤消对象的权限。ADOX的对象如下表所示:

对象说明
Catalog包含描述数据源模式目录的集合。
Column表示表、索引或关键字的列。
Group 表示在安全数据库内有访问权限的组帐号。
Index 表示数据库表中的索引。
Key 表示数据库表中的主关键字、外部关键字或唯一关键字。
Procedure表示存储的过程。
Table 表示数据库表,包括列、索引和关键字。
User 表示在安全数据库内具有访问权限的用户帐号。
View 表示记录或虚拟表的过滤集。

  ADOX常用方法有:Append(包括Columns、Groups、Indexes、Keys、Procedures、Tables、Users、Views)、Create(创建新的目录)、Delete(删除集合中的对象)、Refresh(更新集合中的对象)等等。有关 ADOX 的详细信息,请在 http://www.microsoft.com/data/ado 中参阅 Microsoft 发布的有关 ADOX说明的 Web 页。

  3: 在原有数据表的基础上产生新的数据表

  如果仅仅是在已有的数据表的基础上产生新的数据表,我们只要引用对象库"Microsoft ActiveX Data Objects 2.5 Library"再利用Select…Into语句就可以了。例如:有一个名为Wage.mdb的数据库,数据库中有一个名为"工资表"数据表,该数据表的字段有:编号、姓名、基本工资、津贴、应发工资、扣款、实发工资等,这个表中已经有很多的记录。现在我们把其中的实发工资大于2000的记录筛选出来组成一个新表,新表的名称由用户从文本框中输入,新表中我们只要三个字段,它们是:编号、姓名、实发工资。我们用下列程序就可以实现:

(事先在窗体中添加一个文本框Text1和一个命令按钮Command1)

Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim command As New ADODB.command

Private Sub Command1_Click()
 Dim bm As String
 Dim sql As String
 If Text1.Text <> "" Then
  bm = Trim(Text1.Text)
  sql= "Select 编号,姓名,实发工资 Into " + bm + " From 工资表 Where 实发工资>2000"
  Set command.ActiveConnection = conn
  command.CommandText = sql
  command.Execute
 Else
  MsgBox "你必须输入一个名字"
 End If

Private Sub Form_Load()
 Dim str As String
 str = App.Path
 If Right(str, 1) <> "/" Then
  str = str + "/"
 End If
 pstr = "Provider=Microsoft.Jet.OLEDB.3.51;"
 pstr = pstr & "Persist Security Info=False;"
 pstr = pstr & "Data Source=" & str & "wage.mdb"
 conn.Open pstr
 rs.CursorLocation = adUseClient
 rs.Open "工资表", conn, adOpenKeyset, adLockPessimistic
 Set DataGrid1.DataSource = rs
End Sub

  当然,我们还可以把程序设计得更好,比如:让用户先在窗口中任意选择所需的字段和一些条件,然后再组合生成一个新表。但无论如何,这种操作只能在从原表的基础上产生一个新表,不能产生一个数据库文件,并且新表和原表放在同一个数据库中。
相关文章
  • 掌握VB中的ADO数据对象编程
  • 轻松玩转花样表单
  • 玩转表格 让你的网页炫起来
  • 9991.com阴魂不散!多多QQ表情病毒
  • 微软向开发者表态:Live不只面向消费者
【评论】【收藏本文】【打印】【关闭】
上一篇文章:在VB 2005中定制自己的异常
下一篇文章:掌握VB中的ADO数据对象编程
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
推荐阅讯
  • 继往开来 Visual Baisc 2005初体验
  • 如何用vbscript实现计算机的关闭或重启
  • 在VB中调用CHM 帮助的几种方法
  • Visual Basic编程的七个优良习惯
  • 用VB判断网页文件是否在IE缓存中
  • Visual Basic数据库操作方法小结
  • VBScript教程第一课 什么是 VBScript
  • VB中用AresButtonPro控件制作漂亮按钮
  • Visual Basic创建“五星”级
  • VB COM基础讲座之创建第一个COM对象
阅读排行
  • 1.通过实例学VB—创建简单的个人通讯录
  • 2.如何编写高质量的VB代码
  • 3.在VB的ListView控件中动态加载记录
  • 4.用VB备份和恢复SQL Server数据库的方法
  • 5.利用VB学做“黑客”程序
  • 6.掌握VB中的ADO数据对象编程
  • 7.将程序加入启动组
  • 8.VB程序中用ADO对象动态创建数据库和表
  • 9.VB与Excel2000实现复杂报表打印
  • 10.六天学会Visual Basic数据库编程
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载