关于ADOX的相关知识

 更新时间:2006年12月26日 00:00:00   作者:  
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

转自:http://blog.junstudio.org/article.asp?id=262

一、ADOX 概述
Microsoft? ActiveX? Data Objects Extensions for Data Definition Language and Security (ADOX) 是对 ADO 对象和编程模型的扩展。ADOX 包括用于模式创建和修改的对象,以及安全性。由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中的差异无关。

ADOX 是核心 ADO 对象的扩展库。它显露的其他对象可用于创建、修改和删除模式对象,如表格和过程。它还包括安全对象,可用于维护用户和组,以及授予和撤消对象的权限。

要通过开发工具使用 ADOX,需要建立对 ADOX 类型库的引用。对 ADOX 库的说明为“Microsoft ADO Ext. for DDL and Security.”。ADOX 库文件名为“Msadox.dll”,程序 ID (ProgID) 为“ADOX”。有关建立库引用的详细信息,请参阅开发工具的文档。
二、ADOX 对象
Catalog 包含描述数据源模式目录的集合。
Column 表示表、索引或关键字的列。
Group 表示在安全数据库内有访问权限的组帐号。
Index 表示数据库表中的索引。
Key 表示数据库表中的主关键字、外部关键字或唯一关键字。
Procedure 表示存储的过程。
Table 表示数据库表,包括列、索引和关键字。
User 表示在安全数据库内具有访问权限的用户帐号。
View 表示记录或虚拟表的过滤集。
三、ADOX 方法
Append(Columns) 将新的 Column 对象添加到 Columns 集合。 
Append(Groups) 将新的 Group 对象添加到 Groups 集合。 
Append(Indexes) 将新的 Index 对象添加到 Indexes 集合。 
Append(Keys) 将新的 Key 对象添加到 Keys 集合。 
Append(Procedures) 将新的 Procedure 对象添加到 Procedures 集合。 
Append(Tables) 将新的 Table 对象添加到 Tables 集合。 
Append(Users) 将新的 User 对象添加到 Users 集合。 
Append(Views) 将新的 View 对象添加到 Views 集合。 
ChangePassword 更改用户帐号的密码。 
Create 创建新的目录。 
Delete 删除集合中的对象。 
GetObjectOwner 返回目录中对象的拥有者。 
GetPermissions 获得对象上组或用户的权限。 
Item 按名称或序号返回集合的指定成员。 
Refresh 更新集合中的对象,以反映针对提供者可用的和指定的对象。 
SetObjectOwner 指定目录中对象的拥有者。 
SetPermissions 设置对象上组或用户的权限。 
四、ADOX 属性
ActiveConnection 指示目录所属的 ADO Connection 对象。 
Attributes 描述列特性。 
Clustered 指示索引是否被分簇。 
Command 指定可用于创建或执行过程的 ADO Command 对象。 
Count 指示集合中的对象数量。 
DateCreated 指示创建对象的日期。 
DateModified 指示上一次更改对象的日期。 
DefinedSize 指示列的规定最大大小。 
DeleteRule 指示主关键字被删除时将执行的操作。 
IndexNulls 指示在索引字段中有 Null 值的记录是否有索引项。 
Name 指示对象的名称。 
NumericScale 指示列中数值的范围。 
ParentCatalog 指定表或列的父目录以便访问特定提供者的属性。 
Precision 指示列中数据值的最高精度。 
PrimaryKey 指示索引是否代表表的主关键字。 
RelatedColumn 指示相关表中相关列的名称(仅关键字列)。 
RelatedTable 指示相关表的名称。 
SortOrder 指示列的排序顺序(仅索引列)。 
Type(列) 指示列的数据类型。 
Type(关键字) 指示关键字的数据类型。 
Type(表) 指示表的类型。 
Unique 指示索引关键字是否必须是唯一的。 
UpdateRule 指示主关键字被更新时会执行的操作。 

五、范例
5.1 创建数据库范例
如下代码显示如何通过 Create 方法创建新的 Jet 数据库。
Sub CreateDatabase()

 Dim cat As New ADOX.Catalog
 cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\new.mdb"

End Sub
5.2 创建表范例
Sub CreateTable()

 Dim tbl As New Table
 Dim cat As New ADOX.Catalog

'打开目录。
 ' 打开目录。
 cat.ActiveConnection = _ 
 "Provider=Microsoft.Jet.OLEDB.4.0;" & _
 "Data Source=c:\Program Files\Microsoft Office\" & _
 "Office\Samples\Northwind.mdb;"

 tbl.Name = "MyTable"
 tbl.Columns.Append "Column1", adInteger
 tbl.Columns.Append "Column2", adInteger
 tbl.Columns.Append "Column3", adVarWChar, 50
 cat.Tables.Append tbl

End Sub
5.3 创建索引范例
如下代码演示如何创建新的索引。索引针对表的两个列建立。
Sub CreateIndex()

 Dim tbl As New Table
 Dim idx As New ADOX.Index
 Dim cat As New ADOX.Catalog

' 打开目录。
 ' 打开目录。
 cat.ActiveConnection = _ 
 "Provider=Microsoft.Jet.OLEDB.4.0;" & _
 "Data Source=c:\Program Files\Microsoft Office\" & _
 "Office\Samples\Northwind.mdb;"

 ' 定义表并将其追加到目录
 tbl.Name = "MyTable"
 tbl.Columns.Append "Column1", adInteger
 tbl.Columns.Append "Column2", adInteger
 tbl.Columns.Append "Column3", adVarWChar, 50
 cat.Tables.Append tbl

 ' 定义多列索引
 idx.Name = "multicolidx"
 idx.Columns.Append "Column1"
 idx.Columns.Append "Column2"

 ' 将索引追加到表上
 tbl.Indexes.Append idx

End Sub
5.4 创建关键字范例
如下代码演示如何创建新的外部关键字。假定已存在两个表(Customers 和 orders)。
Sub CreateKey()

 Dim kyForeign As New ADOX.Key
 Dim cat As New ADOX.Catalog

 cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
 "Data Source=c:\Program Files\Microsoft Office\" & _
 "Office\Samples\Northwind.mdb;"

 kyForeign.Name = "CustOrder"
 kyForeign.Type = adKeyForeign
 kyForeign.RelatedTable = "Customers"
 kyForeign.Columns.Append "CustomerId"
 kyForeign.Columns("CustomerId").RelatedColumn = "CustomerId"
 kyForeign.UpdateRule = adRICascade
 cat.Tables("Orders").Keys.Append kyForeign
End Sub

相关文章

  • node-mysql中防止SQL注入的方法总结

    node-mysql中防止SQL注入的方法总结

    大家都知道SQL注入对于网站或者服务器来讲都是一个非常危险的问题,如果这一方面没处理好的话网站可能随时给注入了,所以这篇文章就给大家总结了node-mysql中防止SQL注入的几种常用做法,有需要的朋友们可以参考借鉴。
    2016-10-10
  • 数据库命名规范小结

    数据库命名规范小结

    数据库命名规范,在实际的数据库开发中,需要注意。
    2009-03-03
  • 如何使用navicat远程连接openGauss

    如何使用navicat远程连接openGauss

    公司要在openEuler系统中安装openGauss数据库,经过几天的查资料,终于是安装成功了,并且能在navicat中远程连接使用,本文给大家介绍如何使用navicat远程连接openGauss,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • SQL注入之基于布尔的盲注详解

    SQL注入之基于布尔的盲注详解

    首先说明的盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注。这篇文章主要讲解的是基于布尔的盲注。下面来一起看看吧。
    2016-09-09
  • 数据设计之权限的实现

    数据设计之权限的实现

    这篇文章主要介绍了数据设计之权限的实现,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • 数据库查询优化(主从表的设计)

    数据库查询优化(主从表的设计)

    写过许多的数据库查询语句,面对过许多的问题,也在磕磕碰碰中学到了很多东西。昨天在看系统数据库设计与SQL代码时,突然“发现”了许多平常不屑看到的问题,于是就萌生了把它提出来思考的念头
    2013-08-08
  • SQL注入详解(扫盲篇)

    SQL注入详解(扫盲篇)

    刚进公司的时候,研究的主要是SQL注入,因为之前没有搞过安全,所有费了好长一段时间对SQL注入基本知识进行了解。所以这篇文章并不是什么很深入的技术博客,或许应该叫它‘ SQL注入扫盲 ’有需要的朋友可以参考学习,下面来一起看看吧。
    2017-01-01
  • 时序数据库TDengine写入查询的问题分析

    时序数据库TDengine写入查询的问题分析

    最近TDengine很火,本人也一直很早就有关注,其官方给出的测试性能结果很喜人,所以一开源,本人就进行了相关调研,最终发现还是存在着一定的问题,期待后续的完善吧
    2022-03-03
  • JDBC常用接口总结

    JDBC常用接口总结

    这篇文章主要介绍了JDBC常用接口总结,以及部分使用代码语句,需要的朋友可以参考下。
    2017-09-09
  • 数据库语言分类DDL、DCL、DML详解

    数据库语言分类DDL、DCL、DML详解

    今天小编就为大家分享一篇关于数据库语言分类DDL、DCL、DML详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03

最新评论

?


http://www.vxiaotou.com