关于ADOX的相关知识
<p>一、ADOX 概述<br>
Microsoft? ActiveX? Data Objects Extensions for Data Definition Language and Security (ADOX) 是对 ADO 对象和编程模型的扩展。ADOX 包括用于模式创建和修改的对象,以及安全性。由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中的差异无关。<br><br>
ADOX 是核心 ADO 对象的扩展库。它显露的其他对象可用于创建、修改和删除模式对象,如表格和过程。它还包括安全对象,可用于维护用户和组,以及授予和撤消对象的权限。<br><br>
要通过开发工具使用 ADOX,需要建立对 ADOX 类型库的引用。对 ADOX 库的说明为“Microsoft ADO Ext. for DDL and Security.”。ADOX 库文件名为“Msadox.dll”,程序 ID (ProgID) 为“ADOX”。有关建立库引用的详细信息,请参阅开发工具的文档。<br>
二、ADOX 对象<br>
Catalog 包含描述数据源模式目录的集合。<br>
Column 表示表、索引或关键字的列。<br>
Group 表示在安全数据库内有访问权限的组帐号。<br>
Index 表示数据库表中的索引。<br>
Key 表示数据库表中的主关键字、外部关键字或唯一关键字。<br>
Procedure 表示存储的过程。<br>
Table 表示数据库表,包括列、索引和关键字。<br>
User 表示在安全数据库内具有访问权限的用户帐号。<br>
View 表示记录或虚拟表的过滤集。<br>
三、ADOX 方法<br>
Append(Columns) 将新的 Column 对象添加到 Columns 集合。 <br>
Append(Groups) 将新的 Group 对象添加到 Groups 集合。 <br>
Append(Indexes) 将新的 Index 对象添加到 Indexes 集合。 <br>
Append(Keys) 将新的 Key 对象添加到 Keys 集合。 <br>
Append(Procedures) 将新的 Procedure 对象添加到 Procedures 集合。 <br>
Append(Tables) 将新的 Table 对象添加到 Tables 集合。 <br>
Append(Users) 将新的 User 对象添加到 Users 集合。 <br>
Append(Views) 将新的 View 对象添加到 Views 集合。 <br>
ChangePassword 更改用户帐号的密码。 <br>
Create 创建新的目录。 <br>
Delete 删除集合中的对象。 <br>
GetObjectOwner 返回目录中对象的拥有者。 <br>
GetPermissions 获得对象上组或用户的权限。 <br>
Item 按名称或序号返回集合的指定成员。 <br>
Refresh 更新集合中的对象,以反映针对提供者可用的和指定的对象。 <br>
SetObjectOwner 指定目录中对象的拥有者。 <br>
SetPermissions 设置对象上组或用户的权限。 <br>
四、ADOX 属性<br>
ActiveConnection 指示目录所属的 ADO Connection 对象。 <br>
Attributes 描述列特性。 <br>
Clustered 指示索引是否被分簇。 <br>
Command 指定可用于创建或执行过程的 ADO Command 对象。 <br>
Count 指示集合中的对象数量。 <br>
DateCreated 指示创建对象的日期。 <br>
DateModified 指示上一次更改对象的日期。 <br>
DefinedSize 指示列的规定最大大小。 <br>
DeleteRule 指示主关键字被删除时将执行的操作。 <br>
IndexNulls 指示在索引字段中有 Null 值的记录是否有索引项。 <br>
Name 指示对象的名称。 <br>
NumericScale 指示列中数值的范围。 <br>
ParentCatalog 指定表或列的父目录以便访问特定提供者的属性。 <br>
Precision 指示列中数据值的最高精度。 <br>
PrimaryKey 指示索引是否代表表的主关键字。 <br>
RelatedColumn 指示相关表中相关列的名称(仅关键字列)。 <br>
RelatedTable 指示相关表的名称。 <br>
SortOrder 指示列的排序顺序(仅索引列)。 <br>
Type(列) 指示列的数据类型。 <br>
Type(关键字) 指示关键字的数据类型。 <br>
Type(表) 指示表的类型。 <br>
Unique 指示索引关键字是否必须是唯一的。 <br>
UpdateRule 指示主关键字被更新时会执行的操作。 <br><br>
五、范例<br>
5.1 创建数据库范例<br>
如下代码显示如何通过 Create 方法创建新的 Jet 数据库。<br>
Sub CreateDatabase()<br><br>
Dim cat As New ADOX.Catalog<br>
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\new.mdb"<br><br>
End Sub<br>
5.2 创建表范例<br>
Sub CreateTable()<br><br>
Dim tbl As New Table<br>
Dim cat As New ADOX.Catalog<br><br>
'打开目录。<br>
' 打开目录。<br>
cat.ActiveConnection = _ <br>
"Provider=Microsoft.Jet.OLEDB.4.0;" & _<br>
"Data Source=c:\Program Files\Microsoft Office\" & _<br>
"Office\Samples\Northwind.mdb;"<br><br>
tbl.Name = "MyTable"<br>
tbl.Columns.Append "Column1", adInteger<br>
tbl.Columns.Append "Column2", adInteger<br>
tbl.Columns.Append "Column3", adVarWChar, 50<br>
cat.Tables.Append tbl<br><br>
End Sub<br>
5.3 创建索引范例<br>
如下代码演示如何创建新的索引。索引针对表的两个列建立。<br>
Sub CreateIndex()<br><br>
Dim tbl As New Table<br>
Dim idx As New ADOX.Index<br>
Dim cat As New ADOX.Catalog<br><br>
' 打开目录。<br>
' 打开目录。<br>
cat.ActiveConnection = _ <br>
"Provider=Microsoft.Jet.OLEDB.4.0;" & _<br>
"Data Source=c:\Program Files\Microsoft Office\" & _<br>
"Office\Samples\Northwind.mdb;"<br><br>
' 定义表并将其追加到目录<br>
tbl.Name = "MyTable"<br>
tbl.Columns.Append "Column1", adInteger<br>
tbl.Columns.Append "Column2", adInteger<br>
tbl.Columns.Append "Column3", adVarWChar, 50<br>
cat.Tables.Append tbl<br><br>
' 定义多列索引<br>
idx.Name = "multicolidx"<br>
idx.Columns.Append "Column1"<br>
idx.Columns.Append "Column2"<br><br>
' 将索引追加到表上<br>
tbl.Indexes.Append idx<br><br>
End Sub<br>
5.4 创建关键字范例<br>
如下代码演示如何创建新的外部关键字。假定已存在两个表(Customers 和 orders)。<br>
Sub CreateKey()<br><br>
Dim kyForeign As New ADOX.Key<br>
Dim cat As New ADOX.Catalog<br><br>
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _<br>
"Data Source=c:\Program Files\Microsoft Office\" & _<br>
"Office\Samples\Northwind.mdb;"<br><br>
kyForeign.Name = "CustOrder"<br>
kyForeign.Type = adKeyForeign<br>
kyForeign.RelatedTable = "Customers"<br>
kyForeign.Columns.Append "CustomerId"<br>
kyForeign.Columns("CustomerId").RelatedColumn = "CustomerId"<br>
kyForeign.UpdateRule = adRICascade<br>
cat.Tables("Orders").Keys.Append kyForeign<br>
End Sub</p>
頁:
[1]