ObjectCol 对象

请参阅         属性         方法         集合

对象集合是一组可枚举的对象关系库对象。对象关系库支持两种集合对象：

1. 关系集合中对应关系的目标对象集合。RelationshipCol 对象用于管理这类集合。

2. 对象关系库中，符合特定类或显露特定接口的所有对象的集合。

应用

ObjectCol 对象用于枚举符合特定类或显露特定接口的对象关系库对象集合。用此对象可以：

•	获取集合中对象的数目。

•	检索集合中的对象。

•	刷新对象集合的缓存图像。

属性

属性	描述
Count	集合中的项数。
Item	从集合中检索指定对象。
方法

方法	描述
Refresh	刷新集合的缓存图像。


ObjectCol Count 属性

请参阅

包含集合中项数的长整数，是只读属性。

语法

object.Count

Count 属性语法包含以下部分：

部分	描述
object	对象集合。


ObjectCol Item 属性

请参阅

此属性用于从集合中检索对象，是只读属性，有三个变型。

语法

Set variable  =  object.Item( index  )

Set variable  =  object.Item( objName )

Set variable  =  object.Item( objId )

Item 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收指定的对象关系库对象。
Object	对象集合。
index	集合中待检索对象关系库对象的索引。
objName	集合中待检索对象关系库对象的名称。
objId	集合中待检索对象关系库对象的对象标识符。
说明

如果对象是命名关系的从对象，则只能按名称检索。


ObjectCol Refresh 方法

请参阅

此方法用于刷新对象集合的缓存图像。只有未被当前进程修改的缓存数据能够得到刷新。

语法

Call object.Refresh( milliSecs )

Refresh 方法语法包含以下部分：

部分	描述
object	对象集合。
milliSecs	所有与缓存中项相关的未更新数据在 millisecs 毫秒后将被刷新。设置为零则刷新所有未更新数据。


ReposProperties 对象

请参阅         属性         方法         集合

对象关系库属性集合是通过特定接口附加到对象关系库对象或关系的一组永久属性和集合。

应用

ReposProperties 对象用于枚举附加到特定对象关系库对象或关系的对象关系库属性集合。

属性

属性	描述
Count	集合中的项数。
Item	从集合中检索指定属性。


ReposProperties Count 属性

请参阅

表示集合中项数的长整数，是只读属性。

语法

object.Count

Count 属性语法包含以下部分：

部分	描述
object	对象关系库属性集合。


ReposProperties Item 属性

请参阅

Item 用于在集合中检索对象关系库的属性，是只读属性。此属性有两个变型。

语法

Set variable  =  object.Item( index  )

Set variable  =  object.Item( objName )

Item 属性语法包含以下部分：

部分	描述
variable	对象表达式，值为 ReposProperty 对象。接收指定的对象关系库属性。
Object	对象关系库属性集合。
index	集合中待检索对象关系库属性的索引。
objName	集合中待检索对象关系库属性的名称。


ReposProperty 对象

请参阅         属性         方法         集合

对象关系库属性是附加在对象上的永久属性或集合。

应用

ReposProperty 对象用于检索对象关系库属性的名称、类型或值，或者用于设置属性的值。

属性

属性	描述
Name	属性名称。
Type	属性类型。
Value	属性值。


ReposProperty Name 属性

请参阅

对象关系库属性名称，是只读属性。

语法

object.Name

Name 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 ReposProperty 对象。


ReposProperty Type 属性

请参阅

对象关系库属性的类型，即对象关系库属性所符合的属性定义对象的对象标识符，是只读属性。Type 属性由 Variant 变量接收。

语法

object.Type

Type 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 ReposProperty 对象。


ReposProperty Value 属性

请参阅

对象关系库属性的值。如果不知道属性的类型，可以用 Variant 变量接收此属性值。

语法

object.Value

object.Value  =  newValue

Value 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 ReposProperty 对象。
newValue	对象表达式，值为适当的对象关系库属性类型值。


Relationship 对象

请参阅         属性         方法         集合

关系在对象关系库数据库中连接着两个对象。每个关系都符合特定的关系类型，并包含一个主对象、一个从对象和一组属性。

应用

Relationship 对象用于操作关系的属性、删除关系或刷新关系的缓存图像。

属性

属性	描述
Destination	关系的从对象。
Interface	指定的对象接口。
Name	关系从对象的名称。
Origin	关系的主对象。
Repository	打开的对象关系库实例，用于实现此关系。
Source	关系的源对象。
Target	关系的目标对象。
Type	关系的类型。
方法

方法	描述
Delete	删除关系。
Lock	锁定关系。
Refresh	刷新关系的缓存图像。
集合

集合	描述
Properties	附加在关系上的所有属性的集合。


Relationship Delete 方法

请参阅

此方法用于从关系集合中删除关系。如果关系的目标对象同时也是从对象，并且关系类型指示传递删除，则关系的目标对象也将被删除。

语法

Call  object.Delete

Delete 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 Relationship 对象。


Relationship Destination 属性

请参阅

此属性是关系的从对象，是只读属性。

语法

Set variable  =  object.Destination

Destination 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收关系的从对象。
object	对象表达式，值为 Relationship 对象。


Relationship Interface 属性

请参阅

此属性用于获取关系对象（该对象使用交互界面作为缺省界面）的视图，是只读属性。此属性有两种变型。

语法

Set variable  =  object.Interface( interfaceId )

Set variable  =  object.Interface( objectId )

Interface 属性语法包含以下部分：

部分	描述
variable	对象变量。接收以指定接口为缺省接口的关系对象。
object	对象表达式，值为 Relationship 对象。
interfaceId	要检索的接口的接口标识符。
objectId	接口的对象标识符，该接口符合要检索的接口定义。


Relationship Lock 方法

请参阅

此方法用于锁定关系。使用关系时锁定它可以防其他进程对它更新。结束当前事务时锁定被释放。

Call object.Lock

Lock 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 Relationship 对象。


Relationship Name 属性

请参阅

包含关系为从对象指定的名称的字符串。

语法

object.Name

Name 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 Relationship 对象。


Relationship Origin 属性

请参阅

此属性是关系的主对象，是只读属性。

语法

Set variable  =  object.Origin

Origin 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收关系的主对象。
object	对象表达式，值为 Relationship 对象。


Relationship Refresh 方法

请参阅

此方法用于刷新关系的缓存图像。只有未被当前进程修改的缓存数据能被刷新。

语法

Call object.Refresh( milliSecs )

Refresh 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 Relationship 对象。
milliSecs	所有与缓存中项相关的未更新数据在 millisecs 毫秒后将被刷新。设置为零则刷新所有未更新数据。


Relationship Repository 属性

请参阅

Repository 属性是打开的对象关系库实例，通过它可实现此关系，是只读属性。

语法

Set variable  =  object.Repository

Repository 属性语法包含以下部分：

部分	描述
variable	变量，声明为 Repository 类的实例。接收表示打开的对象关系库实例的对象。
object	对象表达式，值为 Relationship 对象。


Relationship Properties 集合

请参阅

Properties 集合包含通过特定接口附加在对象上的所有永久属性和集合。Relationship 对象显露两个独立的 Properties 集合。以下接口显露该集合：

1. IRelationship 接口（缺省）。

2. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 的对象。接收指定的属性。
Object	对象表达式，其值为显露： • Irelationship ，或 • IannotationalProps 为缺省接口的对象。
Index	标识集合中被定址属性的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员方法的详细内容，请参阅访问 Automation 对象成员。


Relationship Source 属性

请参阅

此属性是关系的源对象，是只读属性。

语法

Set variable  =  object.Source

Source 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收关系的源对象。
object	对象表达式，值为 Relationship 对象。


Relationship Target 属性

请参阅

此属性是关系的目标对象，是只读属性。

语法

Set variable  =  object.Target

Target 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收关系的目标对象。
object	对象表达式值为 Relationship 对象。


Relationship Type 属性

请参阅

此属性指定关系的类型。具体而言，它是关系定义对象的对象标识符。Type 是只读属性。使用 Variant 变量可把此属性复制给另一个变量。

语法

object.Type

Type 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 Relationship 对象。


RelationshipCol 对象

请参阅         属性         方法         集合

关系集合是一组附加在特定源对象关系库对象上的关系。集合中所有的关系必须符合同一关系类型。

应用

此对象用于管理属于特定关系集合的关系。用此对象可以：

•	获取集合中关系的数目。

•	向集合中添加关系或从集合中删除关系。

•	如果集合是有序的，把关系放到集合序列中指定的位置。

•	从集合中检索指定关系或目标对象。

•	刷新集合的缓存图像。

•	获取集合的类型。

属性

属性	描述
Count	集合中的项数。
Item	从集合中检索指定关系或目标对象。
Source	关系集合的源对象。
Type	集合定义对象的对象标识符。
方法

方法	描述
Add	向集合中添加关系。
Insert	在有序集合的指定位置插入关系。
Move	在有序集合中移动关系。
Refresh	刷新集合的缓存图像。
Remove	从集合中删除关系。


RelationshipCol Add 方法

请参阅

当集合中的关系次序不重要时，可用此方法向关系集合中添加新的项。新的关系将 reposObj 对象连接到集合的源对象，然后该关系被返回到调用者。

语法

Set variable  =  object.Add( reposObj, objName )

Add 方法语法包含以下部分：

部分	描述
variable	声明为 Relationship 的变量。接收为 reposObj 对象关系库对象创建的新关系。
object	关系集合。
reposObj	对象关系库对象，其关系被添加到集合。
objName	（可选）用于 reposObj 对象的新关系的名称。


RelationshipCol Count 属性

请参阅

包含集合中项数的长整数，是只读属性。

语法

object.Count

Count 属性语法包含以下部分：

部分	描述
object	关系集合。


RelationshipCol Insert 方法

请参阅

此方法用于将关系添加到集合序列的指定位置。新的关系将 reposObj 对象连接到集合的源对象，然后该关系被返回到调用者。

语法

Set variable  =  object.Insert( reposObj, index, objName )

Insert 方法语法包含以下部分：

部分	描述
variable	声明为 Relationship 的变量。接收为 reposObj 对象关系库对象创建的新关系。
object	关系集合。
ReposObj	对象关系库对象，其关系被添加到集合。
Index	要插入关系的序列位置的索引。如果此序列位置上已经存在另一个关系，则新关系将被插入到现有关系的前面。
objName	（可选）用于 reposObj 对象的新关系名称。
说明

此方法仅适用于有序集合。


RelationshipCol Item 属性

请参阅

此属性用于从集合中检索目标对象或关系，是只读属性。此属性有三种变型。

语法

Set variable  =  object.Item( index  )

Set variable  =  object.Item( objName )

Set variable  =  object.Item( objId )

Item 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收指定关系的目标对象。请参阅附加说明部分。
object	关系集合。
index	用于在集合中检索关系的索引。
objName	关系的名称，该关系用于引用定义对象。此变型仅在目标对象同时也是从对象，并且集合需要定义唯一的对象名称时适用
objId	用于在集合中检索目标对象的对象标识符。
说明

此属性在两种接口中可用：缺省接口 ITargetObjectCol 和替补接口 IRelationshipCol 。如果选择了访问 IRelationshipCol 接口显露的属性，则变量将接收指定关系而不是关系的目标对象。在此情况下，应将变量声明为 Relationship 而不是 RepositoryObject 。

有关访问非缺省接口成员的方法，请参阅访问 Automaiton 对象成员。


RelationshipCol Move 方法

请参阅

此方法用于在集合序列中移动关系。

语法

Call object.Move( indexFrom, indexTo )

Move 方法语法包含以下部分：

部分	描述
object	关系集合。
indexFrom	集合序列中待移动关系的索引。
indexTo	关系要移动到的序列位置的索引。
说明

此方法仅适用于有序集合。


RelationshipCol Refresh 方法

请参阅

此方法用于刷新关系集合的缓存图像。仅未被当前进程修改的缓存数据被刷新。

语法

Call object.Refresh( milliSecs )

Refresh 方法语法包含以下部分：

部分	描述
object	关系集合。
milliSecs	所有与缓存中项相关的未更新数据在 millisecs 毫秒后被被刷新。设置为零则刷新所有未更新数据。


RelationshipCol Remove 方法

请参阅

此方法用于从集合中删除指定的关系。如果目标对象同时又是从对象，并且关系类型指示传递删除，则该目标对象也被删除。此方法有两种变型。

语法

Call object.Remove( index )

Call object.Remove( objName )

Remove 方法语法包含以下部分：

部分	描述
object	关系集合。
index	要从集合中删除的关系的索引。
objName	用此作其定义对象名称的关系将被从集合中删除。
说明

此方法的第二个变型（按名称指定关系）仅在集合要求定义对象的唯一名称时适用。


RelationshipCol Source 属性

请参阅

此属性用于检索关系集合的源对象，是只读属性。

语法

Set variable  =  object.Source

Source 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收关系集合的源对象。
Object	关系集合。


RelationshipCol Type 属性

请参阅

此属性用于指定集合类型。具体而言，它是集合定义对象的对象标识符。Type 是只读属性。使用 Variant 变量可将此属性复制到另一变量。

语法

object.Type

Type 属性语法包含以下部分：

部分	描述
object	关系集合。


Repository 对象

请参阅         属性         方法         集合

定义工具信息模型时，模型的类、关系、属性和集合都存储在对象关系库中。多个工具信息模型可以存储在同一个对象关系库中。

访问对象关系库是通过 Repository 实例进行的。

应用

Repository 实例用于：

•	创建新的对象关系库数据库。

•	连接到对象关系库。

•	访问对象关系库根对象。

•	检索指定的对象关系库对象。

•	创建新的对象关系库对象。

•	刷新对象关系库的高速缓存数据。

•	管理对象关系库事务。

属性

属性	描述
ConnectionString	对象关系库引擎用于获取 ODBC 连接的 ODBC 连接字符串。此属性不是缺省接口成员。
Object	检索指定的对象关系库对象。
ReposConnection	对象关系库引擎用于访问对象关系库数据库的 ODBC 连接句柄。此属性不是缺省接口成员。
RootObject	当前打开的对象关系库的根对象。
Transaction	事务处理接口。
方法

方法	描述
Create	创建新的对象关系数据库。
CreateObject	在当前打开的对象关系库中创建新对象。
FreeConnection	释放 ODBC 连接句柄。此属性不是缺省接口成员。
GetNewConnection	用与对象关系库引擎用以访问 对象关系数据库相同的连接设置获取新的 ODBC 连接句柄。此属性不是缺省接口成员。
InternalIDToObjectID	转换内部标识符为对象标识符。
ObjectIDToInternalID	转换对象标识符为内部标识符。
Open	打开指定的对象关系库。
Refresh	刷新当前打开的对象关系库中所有数据的缓存图像。


Repository ConnectionString 属性

请参阅

此属性包含对象关系库引擎，用于获取 ODBC 与对象关系数据库连接的 ODBC 连接字符串，是只读属性。

此属性不是附加在 Repository Automation 对象的缺省接口，而是附加在 IRepositoryODBC 接口上的。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

语法

object.ConnectionString

ConnectionString 属性语法包含以下部分：

部分	描述
object	表示打开的对象关系库实例的对象，此程序正通过它与对象关系库交互操作。
说明

ODBC 连接字符串可以包含用户标识和口令信息。请注意保护此信息以防泄露给未授权的访问者。


访问 Automation 对象成员

请参阅

Microsoft Repository 包含了一些支持多接口的 Automation 对象。每个 Automation 对象定义有一个缺省接口，而且附加在该接口上的成员（属性、方法和集合）可以通过标准 Visual Basic 机制来访问。

当访问附加在 Automation 对象非缺省接口上的成员时，必须使用其他访问技术。附加的对象引用必须声明为显式调用非缺省接口。以后，就可以通过新的对象引用来访问非缺省接口成员。

以下示例说明了如何访问附加在 Automation 对象非缺省接口上的属性。在此例中，用于连接对象关系数据库的连接字符串被检索。Repository 对象实现了 IRepositoryODBC 接口，此接口不是缺省接口。ConnectionString 属性被附加在 IRepositoryODBC 接口上。ConnectionString 属性是连接数据库服务器时对象关系库使用的 ODBC 连接字符串。

Dim myRepos     As Repository

Dim nonDefIfc   As IRepositoryODBC

'  通过打开与对象关系库数据库的连接

'  初始化 myRepos 对象。

Set nonDefIfc = myRepos

connect$ = nonDefIfc.ConnectionString

在此例中，nonDefIfc 对象没有占用额外资源，它只是 myRepos 对象的另一个视图。


Repository Create 方法

请参阅

此方法用于创建新的对象关系库数据库。基本对象关系库表被自动创建。新对象关系库的根对象被返回给调用者。

语法

Set variable  =  object.Create( connect, user, password, flags )

Create 方法语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收新对象关系库的根对象。
object	正在用于创建新对象关系数据库的 Repository 类的实例。
connect	用于访问作为新对象关系库主机的数据库服务器的 ODBC 连接字符串。
user	用于数据库服务器上用户标识符的用户名称。
password	与输入参数 user 匹配的口令。
flags	决定打开的对象关系库数据库访问和高速缓存功能的标志，有关的详细内容，请参阅 ConnectionFlags 枚举集合。


连接 Repository 数据库
连接对象关系数据库

Microsoft Repository 可以访问由 Microsoft Jet 或 Microsoft SQL 服务器管理的对象关系数据库。ODBC 连接字符串用于指定对象关系数据库位置，它起决于管理对象关系数据库的服务器。

ODBC 连接字符串包含被分号分隔的 keyword=keyValue 表达式。

连接到 Jet 对象关系数据库

要连接到 Jet 对象关系数据库，请使用 DBQ 关键字指定数据库文件路径。如果存在 DBQ 关键字，则它必须是连接字符串中第一个关键字。如果不存在 DBQ 关键字，则假定连接字符串仅包含数据库路径的说明。在这种情况下，对象关系库会在把 ODBC 连接字符串传送到数据库服务器之前，将 DBQ 关键字添加到它的前面。

连接到 SQL 服务器对象关系数据库

要连接到 SQL 服务器的对象关系数据库，请使用 SERVER 关键字指定 SQL 服务器名称和数据库名称（可选）。要指定数据库名，请使用如下语法：

SERVER=serverName;DATABASE=databaseName

如果未指定数据库名称，则打开该操作的缺省数据库。

注意   如果选择使用 SQL 服务器的对象关系数据库，则必须创建一个空数据库并指定可以访问数据库的用户。对象关系库引擎不会自动创建这个数据库。

通过数据源名称连接

可以用 DSN 关键字指定数据源名称 (DSN, Data Source Name) 以连接到 Jet 或 SQL 服务器的对象关系数据库。DSN 关键字指定通过 ODBC 数据源管理器配置的数据源名称。

缺省对象关系数据库

如果没有按上述方法指定对象关系数据库，将会建立到缺省对象关系数据库的连接。缺省对象关系数据库的位置存储在系统注册表的注册键中：

HKEY_LOCAL_MACHINE\

Software\

Microsoft\

Repository\

Current Location

这个注册键必须包含 DBQ 主键 - 键值对、SERVER 主键 - 键值对、DSN 主键 - 键值对或到 Jet 对象关系库数据库的路径之一。此注册键的缺省值为：

windowsDirectory\MsApps\Repostry\Repostry.mdb

windowsDirectory 是 Windows NT 或 Windows 95 安装的详细路径。除非在安装 Microsoft Repository 之后改变此注册键的值，否则缺省的数据库服务器为 Microsoft Jet 。

注意   Microsoft Repository 在安装时会创建缺省的对象关系库数据库。此数据库为 Microsoft Jet 所管理。它的位置取决于 Current Location 注册键的缺省值。


Repository CreateObject 方法

请参阅

此方法用于创建指定类型的新对象关系库对象。

语法

Set variable  =  object.CreateObject( typeId, objectId )

CreateObject 方法语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收新的对象关系库对象。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
typeId	新对象的类型，即新对象所符合对象定义的对象标识符。
objectId	为新对象指定的对象标识符。如果将此可选参数赋值为 ObjID_NULL 或不提供此参数，则由对象关系库指定一个对象标识符。


Repository FreeConnection 方法

请参阅

此方法用于释放 ODBC 连接句柄。

此属性不是附加在 Repository Automation 对象的缺省接口上，而是附加在 IRepositoryODBC 接口上的。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

语法

Call  object.FreeConnection( hdbc )

FreeConnection 方法语法包含以下部分：

部分	描述
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
hdbc	被释放的 ODBC 连接句柄。
说明

在释放打开的对象关系库实例之前，用此方法释放通过 ReposConnection 属性或 GetNewConnection 方法获取的句柄。


Repository GetNewConnection 方法

请参阅

此方法使用 ODBC 连接字符串以获取新的 ODBC 连接句柄，对象关系库引擎也使用同一连接字符串访问对象关系数据库。新的 ODBC 连接句柄使您可以不必了解对象关系库引擎所做的改变。

此属性不是附加在 Repository Automation 对象的缺省接口上，而是附加在 IRepositoryODBC 接口上的。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

语法

variable  =  object.GetNewConnection

GetNewConnection 方法语法包含以下部分：

部分	描述
variable	接收新的连接句柄。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
说明

在释放打开的对象关系库实例之前，务必释放通过此方法获得的句柄。可用 FreeConnection 方法释放连接句柄。


Repository InternalIDToObjectID 方法

请参阅

此方法用于把内部标识符转换为对象标识符。对象关系库引擎使用内部标识符来标识对象关系库对象。

语法

variable  =  object.InternalIDToObjectID( internalId )

InternalIDToObjectID 方法语法包含以下部分：

部分	描述
variable	接收对象标识符。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
InternalId	要转换的内部标识符。
说明

对象关系库对象标识符在所有对象关系库中都唯一，而内部标识符仅在单个对象关系库范围内是唯一的。

此方法执行的转换不必加载相关对象就可进行。这使数据库查询可以包括要构造的对象或关系类型标识符，而不必加载相应的定义对象。


Repository Object 属性

请参阅

此属性用于检索特定的对象关系库对象，是只读属性。

语法

Set variable  =  object.Object( objectId )

Object 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收对象关系库对象。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
objectId	待检索对象关系库对象的对象标识符。


Repository ObjectIDToInternalID 方法

请参阅

此方法用于把对象标识符转换为内部标识符。对象关系库引擎使用内部标识符来标识对象关系库对象。

语法

variable  =  object.ObjectIDToInternalID( objectId )

ObjectIDToInternalID 方法语法包含以下部分：

部分	描述
variable	接收内部标识符。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
objectId	要转换的对象标识符。
说明

对象关系库对象标识符在所有对象关系库中都唯一，而内部标识符仅在单个对象关系库范围内是唯一的。

此方法执行的转换不必加载相关对象就可进行。这使得数据库查询可以包括要构造的对象或关系类型标识符，而不必加载相应的定义对象。


Repository Open 方法

请参阅

此方法用于打开（或连接到）对象关系库。对象关系库根对象被返回给调用者。

语法

Set  variable  =  object.Open( connect, user, password, flags )

Open 方法语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收对象关系库的根对象。
Object	正在用于连接到对象关系库的 Repository 类的实例。
Connect	用于访问作为对象关系库主机的数据库服务器的 ODBC 连接字符串。
User	用于数据库服务器标识的用户名称。
password	与用户输入参数匹配的口令。
Flags	决定所打开对象关系数据库访问和高速缓存功能的标志，有关的详细内容，请参阅 ConnectionFlags 枚举集合。


Repository Refresh 方法

请参阅

此方法用于刷新所有打开的对象关系库实例的缓存数据。只有未被当前进程更新的缓存数据会得到刷新。

语法

Call  object.Refresh( milliSeconds )

Refresh 方法语法包含以下部分：

部分	描述
object	表示打开的对象关系库实例的对象，此程序正通过与对象关系库交互作用。
milliSecs	所有缓存中未更新的对象关系库数据在 millisecs 毫秒后将会得到刷新。设置为零则刷新所有未更新数据。


Repository ReposConnection 属性

请参阅

此属性包含用于获取对象关系库引擎以访问对象关系数据库的 ODBC 连接句柄，是只读属性。

此属性不是附加在 Repository Automation 对象的缺省接口上，而是附加在 IRepositoryODBC 接口上的。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

语法

object.ReposConnection

ReposConnection 属性语法包含以下部分：

部分	描述
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
说明

如果使用对象关系库引擎的 ODBC 连接句柄，您就需要了解对象关系库所做的修改。例如，您的程序将涉及对象关系库引擎所做的内部修改。

使用对象关系库引擎的 ODBC 连接句柄时，不能使用与对象关系库引擎不兼容的方法改变句柄的状态。尤其不能：

•	改变任何 ODBC 连接选项。

•	对象关系库调用的同时执行任何访问。

•	直接提交或返回数据库事务。IRepositoryTransaction 接口必须一直用于管理事务。

在释放打开的对象关系库实例之前，务必释放通过此方法获得的句柄。使用 FreeConnection 方法释放连接句柄。


Repository RootObject 属性

请参阅

此属性是当前打开的对象关系库的根对象，是只读属性。

语法

Set variable  =  object.RootObject

RootObject 属性语法包含以下部分：

部分	描述
variable	声明为 RepositoryObject 的变量。接收根对象关系库对象。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。


Repository Transaction 属性

请参阅

此属性是打开的对象关系库实例的 RepositoryTransaction 对象，是只读属性。

语法

Set variable  =  object.Transaction

Transaction 属性语法包含以下部分：

部分	描述
variable	声明为 Object 的变量。为此对象关系库实例接收 RepositoryTransaction 对象。
object	表示打开的对象关系库实例的对象，此程序正通过此实例与对象关系库交互作用。
说明

可以用上述语法获得对 RepositoryTransaction 对象的访问。然后可以通过 variable.method 和 variable.property 语法访问 RepositoryTransaction 对象的属性和方法，也可以用下列语法直接访问：

Call object.Transaction.method

或：

variable  =  object.Transaction.property

有关它所提供的方法和属性的详细内容，请参阅 RepositoryTransaction 对象。


RepositoryObject 对象

请参阅         属性         方法         集合

对象关系库对象存储在对象关系数据库中，由对象关系库引擎管理。对象关系库对象也是 Automation 对象。

应用

RepositoryObject 对象用于对象关系库对象的属性操作、删除或缓存图像的刷新。

属性

属性	描述
Interface	指定的对象接口。
InternalID	对象关系库用于引用对象关系库对象的内部标识符。
Name	对象关系库对象的名称。
ObjectID	对象关系库对象的对象标识符。
Repository	对象关系库对象实例化的打开的实例。
Type	对象关系库对象的类型。
方法

方法	描述
Delete	删除对象关系库对象。
Lock	锁定对象关系库对象。
Refresh	刷新对象关系库对象的缓存图像。
集合

集合	描述
Properties	附加到对象关系库对象的所有属性的集合。


RepositoryObject Delete 方法

请参阅

此方法用于从对象关系库中删除对象。所有连接该对象与其他对象的关系都将被删除。如果该对象关系库对象是一个关系集合的主对象，并且关系是可传递删除的类型，则所有从对象也被删除。

语法

Call  object.Delete

Delete 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 RepositoryObject 对象。


RepositoryObject Interface 属性

请参阅

此属性用于获取使用替补接口作为缺省接口的对象关系库对象的视图，是只读属性。此属性有两种变型。

语法

Set variable  =  object.Interface( interfaceId )

Set variable  =  object.Interface( objectId )

Interface 属性语法包含以下部分：

部分	描述
variable	对象变量。接收把指定接口作为缺省接口的对象关系库对象。
object	对象表达式，值为 RepositoryObject 对象。
interfaceId	被检索接口的接口标识符。
objectId	符合被检索接口定义的接口的对象标识符。


RepositoryObject InternalID 属性

请参阅

此属性是对象关系库引擎用于引用此对象的内部标识符，是只读属性。内部标识符在对象关系库内是唯一的，但不是在所有对象关系库中都唯一。用声明为 Variant 的变量可以把此属性复制给其他变量。

语法

object.InternalID

InternalID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 RepositoryObject 对象。


RepositoryObject Lock 方法

请参阅

此方法用于锁定对象关系库对象。锁定对象可以在使用此对象时防止其他进程对其进行修改。结束当前事务时，锁定将被解除。

Call object.Lock

Lock 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 RepositoryObject 对象。


RepositoryObject Name 属性

请参阅

包含对象关系库对象名称的字符串。

名称属性通常是此对象为从对象的关系的属性。当此名称被检索时，返回从第一个命名关系中找到的名称。如果此对象不是任何命名关系的从对象，则返回一个空名称。此名称被设置时，也将设置此对象为从对象的所有命名关系的新名称。

语法

object.Name

Name 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 RepositoryObject 对象。
说明

如果对象关系库对象显露 INamedObject 接口，则被检索的名称就一直是 INamedObject 接口的 Name 属性。同样，当此属性设置时，INamedObject 接口的 Name 属性和与所有命名关系关联的名称都将设置为新值。


RepositoryObject ObjectID 属性

请参阅

此属性是对象关系库对象的对象标识符，是只读属性。对象标识符在所有对象关系库中唯一。用声明为 Variant 的变量可以把此属性复制给其他变量。

语法

object.ObjectID

ObjectID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 RepositoryObject 对象。


RepositoryObject Refresh 方法

请参阅

此方法用于刷新对象关系库对象的缓存图像。只有未被当前进程改变的缓存数据会得到刷新。

语法

Call object.Refresh( milliSecs )

Refresh 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 RepositoryObject 对象。
milliSecs	缓存中所有与项相关的未更新数据在 millisecs 毫秒后被刷新。设置为零则刷新所有未更新数据。


RepositoryObject Repository 属性

请参阅

Repository 属性是打开的对象关系库实例，对象关系库对象通过该实例得以实现。它是只读属性。

语法

Set variable  =  object.Repository

Repository 属性语法包含以下部分：

部分	描述
variable	声明为 Repository 类实例的变量。接收表示打开的对象关系库实例的对象。
object	对象表达式，值为 RepositoryObject 对象。


RepositoryObject Properties 集合

请参阅

Properties 集合包含通过 IRepositoryObject 接口附加到对象关系库对象的所有永久属性。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定属性。
object	对象表达式，值为 RepositoryObject 对象。
index	标识集合中被定址属性的整型索引。有效范围从 1 到由 object.Properties.Count 指定的集合元素数。


RepositoryObject Type 属性

请参阅

此属性用于指定对象关系库对象的类型。具体而言，它是对象关系库对象定义对象的标识符。Type 是只读属性。可用声明为 Variant 的变量把此属性复制给其他变量。

语法

object.Type

Type 属性语法包含以下部分：

部分	描述
object	值为 RepositoryObject 对象的对象表达式。
说明

对象关系库中的对象是对象关系库对象、Automation 对象，同时也是符合特定模型类型的对象。

对象关系库对象的特定模型类型由它的对象定义来指定。每个对象定义本身也是对象关系库对象，并且拥有指定的对象标识符。即，对象定义对象的 ObjectID 属性值用作所有符合该对象定义的所有对象关系库对象的 Type 属性值。


RepositoryTransaction 对象

请参阅         属性         方法         集合

对象关系库支持在一个事务内包含多个改变。根据事务结束方式的不同，事务中对对象关系库的改变或者都提交或者都撤消。从对象关系库中读取数据的 Repository 方法可以在事务外执行，但是写入数据的方法必须包含在事务内部。

不能直接把 RepositoryTransaction 对象实例化。连接到对象关系库时将创建 RepositoryTransaction 对象。可以通过 Repository Transaction 属性访问它。

应用

RepositoryTransaction 对象用于管理对象关系库事务。

属性

属性	描述
Status	对象关系库事务状态。
方法

方法	描述
Abort	取消当前事务。
Begin	开始新事务。
Commit	提交当前事务。
Flush	刷新对象关系库数据库未提交的更改。
GetOption	检索不同的事务选项。
SetOption	设置不同的事务选项。
说明

对于每个打开的对象关系库实例，同一时刻只能有一个事务是活动的。允许嵌套调用 Begin/Commit 方法，但并没有真正出现事务嵌套。


RepositoryTransaction Abort 方法

请参阅

此方法用于取消打开的对象关系库的当前活动事务。事务过程中的所有更新也被撤消。嵌套事务计数被设置为零。

语法

Call  object.Abort

Abort 方法语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。


RepositoryTransaction Begin 方法

请参阅

此方法用于递增嵌套事务计数。如果没有活动事务，则此方法为打开的对象关系库实例启动新的事务。

语法

Call  object.Begin

Begin 方法语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。


RepositoryTransaction Commit 方法

请参阅

此方法用于递减打开的对象关系库实例的嵌套事务计数。如果当前活动事务不是嵌套的，则在事务中对对象关系库数据所做的全部更改都将被提交给对象关系数据库。如果嵌套事务计数为一，则事务是非嵌套的。

语法

Call  object.Commit

Commit 方法语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。


RepositoryTransaction Flush 方法

请参阅

此方法用于刷新缓存中对象关系数据库更改。

除非已经设置 exclusive-write-through-mode 事务选项，否则在事务内所做的更改将被存在缓存中，直到提交事务时才写入数据库。如果在对象关系数据库中执行并发 SQL 查询，则查询结果不会反映出未提交的更改，这是通常所期望的情况。

如果对象关系库应用程序必须能够在 SQL 查询中显示未提交的更改，可以使用 Flush 方法把未提交的更改写入对象关系数据库。在当前事务中所做的全部更改都将被刷新。刷新未提交的更改不会影响使用 Abort 方法取消事务。

语法

Call  object.Flush

Flush 方法语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。


RepositoryTransaction GetOption 方法

请参阅

此方法用于检索不同的事务选项。事务选项有：

1. 无论是否是并发事务，都在非独占回写模式下执行。非独占回写模式允许其他对象关系库实例的事务同时执行，并且缓存会在此事务提交时更新此对象关系库实例。

2. 无论是否是并发事务，都在独占回写模式下执行。独占回写模式不允许其他对象关系库实例的事务同时执行，并且缓存会在此事务提交时更新此对象关系库实例。

3. 无论是否是并发事务，都在独占通写模式下执行。独占通写模式不允许其他对象关系库实例的事务同时执行，而且一有可能就立即把更改写入对象关系库并永久存储。

4. 并发事务等待获得锁定的最长时间。

5. 并发事务等待开始的最长时间。

这些选项中的前三项是互斥的，只能一次设置其中一个。第三个选项设置是缺省设置。后两个选项与其他选项无关。

语法

variable  =  object.GetOption( whichOption )

GetOption 属性语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。
WhichOption	此参数用于指定被检索或设置的选项。有关有效值及其含义，请参阅 TransactionFlags 枚举集合。
Variable	声明为 Variant 的变量。接收指定选项值。


RepositoryTransaction SetOption 方法

请参阅

此方法用于设置不同的事务选项。事务选项是：

1. 无论是否是并发事务都在非独占回写模式下执行。非独占回写模式允许其他对象关系库实例的事务同时执行，并且缓存会在此事务提交时更新此对象关系库实例。

2. 无论是否是并发事务都在独占回写模式下执行。独占回写模式不允许其他对象关系库实例的事务同时执行，并且缓存会在此事务提交时更新此对象关系库实例。

3. 无论是否是并发事务都在独占通写模式下执行。独占通写模式不允许其他对象关系库实例的事务同时执行，而且一有可能就立即把更改写入对象关系库并永久存储。

4. 并发事务等待获得锁定的最长时间。

5. 并发事务等待开始的最长时间。

这些选项中的前三个是相互排斥的，只能一次设置其中的一个。第三个选项设置是缺省设置。后两个选项与其他选项无关。

语法

Call  object.SetOption( whichOption, optionValue )

SetOption 方法语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。
WhichOption	此参数用于指定被检索或设置的选项。有关有效值及其含义，请参阅 TransactionFlags 枚举集合。
OptionValue	选项的新值。


RepositoryTransaction Status 属性

请参阅

此属性用于指示对象关系库实例的当前事务状态。如果值为零，则没有活动的事务；否则，有活动的事务。这是只读属性。用声明为 Variant 的变量可以把此属性复制到其他变量。

语法

object.Status

Status 属性语法包含以下部分：

部分	描述
object	当前打开的对象关系库实例的 RepositoryTransaction 对象。
说明

在 Commit 方法成功执行并且嵌套事务计数递减到零之前，事务被认作是活动的。根据下一级数据库服务器的数据刷新功能的不同，可以在 Commit 方法将控制权返回到调用者时，决定是否把与被提交事务关联的数据写入物理存储设备。


ClassDef 对象

请参阅         属性         方法         集合

ClassDef 对象通过向类添加接口以帮助创建工具信息模型。使用 ReposTypeLib 对象可向工具信息模型插入新类定义。

添加所有接口后，提交包含对类定义作修改的事务，即完成一个类的定义。

ClassDef 对象也是 RepositoryObject 对象 。除这里所描述的成员外，ClassDef 对象还提供为对象关系库对象定义的成员。

应用

ClassDef 对象用于：

•	向类定义添加新的或已有的接口。

•	检索类的全局标识符。

•	访问作为类定义一部分的接口集合。

属性

属性	描述
ClassID	类的全局标识符。
方法

方法	描述
AddInterface	向类定义添加已有的接口。
CreateInterfaceDef	创建新的接口并添加到类定义中。
ObjectInstances	创建一个对象集合，该集合包含对象关系库中所有符合此类的对象。
集合

集合	描述
Interfaces	由类提供的所有接口的集合。
ItemInCollections	此集合是空的类定义，留作以后使用。
Properties	所有附加在 ClassDef 对象上的永久属性的集合。
ReposTypeLibScopes	包含此定义的所有对象关系类型库的集合。


ClassDef ClassID 属性

请参阅

此属性包含指定此类的全局标识符。用声明为 Variant 的变量可以把此属性复制给其他变量。

语法

object.ClassID

ClassID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 ClassDef 对象。


ClassDef AddInterface 方法

请参阅

AddInterface 方法用于向由特定类提供的接口集合添加现有接口 。

语法

Call  object.AddInterface( interfaceDef, flag )

AddInterface 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 ClassDef 对象。
interfaceDef	被添加到由此类提供的接口集合的接口的 InterfaceDef 定义对象。
Flag	如果添加的接口是类的缺省接口，则接收字符串“ Default ”，否则接收空字符串。


ClassDef CreateInterfaceDef 方法

请参阅

CreateInterfaceDef 方法用于创建新的接口定义，并添加接口到由类提供的接口集合。

语法

Set  variable = object.CreateInterfaceDef( sObjId, name, interfaceId, ancestor, flag )

CreateInterfaceDef 方法语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量。接收新的接口定义。
object	对象表达式，值为 ClassDef 对象。
sObjId	用于指定新接口定义对象的对象标识符。如果此参数设置为 OBJID_NULL ，则对象关系库将为您指定一个对象标识符。
name	被创建的接口名称。
interfaceId	此接口的接口标识符。如果没有，设此参数为零。
ancestor	派生被创建接口的基接口的 InterfaceDef 定义对象。
flag	如果创建的接口是类的缺省接口，则接收字符串 “Default”，否则接收空字符串。


ClassDef ObjectInstances 方法

请参阅

此方法用于创建对象集合的实例，该集合包含对象关系库中所有符合该类的对象。

语法

Set  variable  =  object.ObjectInstances

ObjectInstances 方法语法包含以下部分：

部分	描述
variable	声明为 ObjectCol 对象的变量。接收与此类一致的对象集合。
object	对象表达式，值为 ClassDef 对象。


ClassDef Interfaces 集合

请参阅

所有由此类提供的接口的集合。

集合描述符	描述符值
Relationship Type	Class-Implements-Interface
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not applicable
Unique Names	Not applicable
语法

Set  variable  =  object.Interfaces( index )

Interfaces 集合语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量。接收指定接口。
object	对象表达式，值为 ClassDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数，集合中的元素个数由 object.Interfaces.Count 指定。


ClassDef Properties 集合

请参阅

Properties 集合包含通过特定接口附加在对象上的所有永久属性和集合。ClassDef 对象显露四个独立的 Properties 集合。这些集合由以下接口显露：

1. IClassDef 接口（缺省）。

2. IReposTypeInfo 接口。

3. IRepositoryObject 接口。

4. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定属性。
object	对象表达式，其值为显露： • IclassDef 、 • IreposTypeInfo 、 • IrepositoryObject 或  • IannotationalProps 为缺省接口的对象。
index	标识集合中被定址属性的整型索引。有效范围从 1 到集合中的元素个数，集合中的元素个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


ClassDef ReposTypeLibScopes 集合

请参阅

对象关系类型库集合包含以下定义。

集合描述符	描述符值
Relationship Type	ReposTypeLib-ScopeFor-ReposTypeInfo
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.ReposTypeLibScopes( index )

ReposTypeLibScopes 集合语法包含以下部分：

部分	描述
variable	声明为 ReposTypeLib 对象的变量。接收指定的对象关系类型库对象。
object	对象表达式，值为 ClassDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数，集合中的元素个数由 object.TypeLibScopes.Count 指定。


CollectionDef 对象

请参阅         属性         方法         集合

集合类型（也作为集合定义引用）用于定义集合特定类型实例的功能。集合类型的属性决定：

•	集合中最大和最小的项数。

•	集合类型是否是主集合类型。

•	集合类型是否允许命名从对象。如果是，这些名称是否区分大小写并要求唯一。

•	集合类型是否允许集合中项的显式序列。

•	集合中的对象或关系被删除时，对相关对象的影响。

特定关系类型用于关联对象的关系种类由其 CollectionItem 集合决定。CollectionItem 集合将单一关系类型与集合类型相关联。

用 InterfaceDef 对象添加新的集合类型。

CollectionDef 对象也是 RepositoryObject 。除这里描述的成员外，CollectionDef 对象还提供为对象关系库对象定义的成员。

应用

CollectionDef 对象用于检索或修改集合类型的属性，决定集合实现的关系类型，或决定集合附加到的接口。

属性

属性	描述
DispatchID	访问此类型集合的实例时使用的调度标识符。
Flags	指定此集合定义详细内容的标志。
IsOrigin	指示此类型集合是否是主集合。
MaxCount	此类型集合可以包含的最大目标对象数。
MinCount	此类型集合必须包含的最小目标对象数。
集合

集合	描述
CollectionItem	定义此类型集合的目标对象和单个源对象间关系的关系类型集合。
Interface	此集合定义附加到的接口。
Properties	附加于 CollectionDef 对象的所有永久属性的集合。


CollectionDef DispatchID 属性

请参阅

此属性包含了访问此类型集合时使用的调度标识符。

此属性不是附加于 CollectionDef Automation 对象的缺省接口，而是附加于 IInterfaceMember 接口。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

语法

object.DispatchID

DispatchID 属性语法语法包含以下部分：

部分	描述
object	对象表达式，其值为显露 IInterfaceMember 接口为缺省接口的对象。


CollectionDef Flags 属性

请参阅

CollectionDef 对象显露两个独立的 Flags 属性。一个属性由缺省接口显露，另一个由 IInterfaceMember 接口显露。这里将对它们进行描述。

缺省 Flags 属性决定：

•	集合类型是否允许命名从对象，如果是，则这些名称是否区分大小写并要求唯一。

•	集合类型是否允许集合中项的显式序列。

•	集合中的对象或关系被删除时，相关对象会怎样。

有关值及其功能，请参阅 CollectionDefFlags 枚举集合。

IInterfaceDef Flags 属性是指定对于 Automation 查询接口成员是否可见的标志。有关值及其功能，请参阅 InterfaceMemberFlags 枚举集合。

语法

object.Flags

Flags 属性语法包含以下部分：

部分	描述
object	对象表达式： 对于缺省 Flags 属性，值为 CollectionDef 对象。 对于替补 Flags 属性，值为显露 IinterfaceMember 为缺省接口的对象。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


CollectionDef IsOrigin 属性

请参阅

此属性用于指示此类型集合是否是主集合。可用声明为 Boolean 的变量把此属性复制到其他变量。

语法

object.IsOrigin

IsOrigin 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 CollectionDef 对象。


CollectionDef MaxCount 属性

请参阅

此属性用于指定此类型集合可以包含的目标对象的最大个数。维护此属性是出于信息方面的考虑，对象关系库引擎对此没有硬性规定。

语法

object.MaxCount

MaxCount 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 CollectionDef 对象。


CollectionDef MinCount 属性

请参阅

此属性用于指定此类型集合必须包含的目标对象的最大个数。维护此属性是出于信息方面的考虑，对象关系库引擎对此没有硬性规定。

语法

object.MinCount

MinCount 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 CollectionDef 对象。


CollectionDef CollectionItem 集合

请参阅

定义此类型集合的目标对象和单个源对象之间关系的关系类型的集合。

集合描述符	描述符值
Relationship Type	Collection-Contains-Items
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	One
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not applicable
Unique Names	Not applicable
语法

Set  variable  =  object.CollectionItem( index )

CollectionItem 集合语法包含以下部分：

部分	描述
variable	声明为 RelationshipDef 对象的变量。接收指定的关系定义对象。
object	对象表达式，值为 CollectionDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数，集合中的元素个数由 object.CollectionItem.Count 指定。


CollectionDef Interface 集合

请参阅

对于特定的集合定义，Interface 集合指定显露此集合成员的接口。

此集合不是附加于 CollectionDef Automation 对象的缺省接口，而是附加于 IInterfaceMember 接口。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

集合描述符	描述符值
Relationship Type	Interface-Has-Members
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	One
Sequenced Collection	Yes
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.Interface( index )

Interface 集合语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量，接收指定的接口定义。
object	对象表达式，值为实现 IinterfaceMember 接口为缺省接口的对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数，集合中的元素个数由 object.Interface.Count 指定。


CollectionDef Properties 集合

请参阅

Properties 集合包含通过特定接口附加于对象的所有永久属性和集合。CollectionDef 对象显露四个独立的 Properties 集合。这些集合由下列接口显露：

1. ICollectionDef 接口（缺省）。

2. IInterfaceMember 接口。

3. IRepositoryObject 接口。

4. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定的属性。
object	对象表达式，其值为显露： • IcollectionDef 、 • IinterfaceMember 、 • IrepositoryObject 、  • IannotationalProps 为缺省接口的对象。
Index	标识集合中被定址属性的整型索引。有效范围从 1 到集合中的元素个数，集合中的元素个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


InterfaceDef 对象

请参阅         属性         方法         集合

由类实现的属性方法和集合被组织为功能相关的组。每个组被实现为对象关系库接口。每个接口的属性、方法和集合都是接口的成员。接口定义是接口符合的模板。

使用 ClassDef 对象或 ReposTypeLib 对象向对象关系库中添加新的接口。

InterfaceDef 对象也是 RepositoryObject 对象。除这里所描述的成员外，InterfaceDef 对象还提供为对象关系库对象定义的成员。

应用

InterfaceDef 类用于：

•	检索或修改接口定义的属性。

•	决定附加于接口定义的成员。

•	决定实现接口的类。

•	决定派生接口的基接口。

•	决定特定接口的派生接口。

•	决定显露特定接口的对象关系库对象。

•	向接口定义中添加新的属性、方法或集合类型。

属性

属性	描述
Flags	指定接口是否可以扩展以及接口对于 Automation 接口查询是否可见的标志。
InterfaceID	接口的全局标识符。
TableName	存储接口属性实例信息的 SQL 表的名称。
方法

方法	描述
CreateMethodDef	创建新的方法定义并将它附加到接口定义。
CreatePropertyDef	创建新的属性定义并将它附加到接口定义。
CreateRelationshipColDef	创建关系集合类型。集合类型附加于接口定义。
ObjectInstances	实现对象关系库中所有显露此接口的对象的 ObjectCol 集合。
集合

集合	描述
Ancestor	派生此接口的基接口的集合。
Classes	实现该接口的类的集合。
Descendants	由此接口派生的其他接口的集合。
Members	接口显露的成员的集合。
ItemInCollections	对于接口定义此集合为空。
Properties	附加到 InterfaceDef 对象的所有永久属性的集合。
ReposTypeLibScopes	包含此定义的所有对象关系类型库的集合。


InterfaceDef Flags 属性

请参阅

此属性包含指定接口是否可以扩展以及对于 Automation 接口查询该接口是否可见的标志。有关值及其功能，请参阅 InterfaceDefFlags 枚举对象。

语法

object.Flags

Flags 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 InterfaceDef 对象。


InterfaceDef InterfaceID 属性

请参阅

此属性是接口的全局接口标识符。如果要将此属性复制到变量中，请把该变量声明为 Variant 。

语法

object.InterfaceID

InterfaceID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 InterfaceDef 对象。


InterfaceDef TableName 属性

请参阅

此字符串属性包含存储接口属性实例信息的 SQL 表的名称，其长度不能超过 30 个字符。

语法

object.TableName

TableName 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 InterfaceDef 对象。


InterfaceDef CreateMethodDef 方法

请参阅

此方法创建新的方法定义并将它附加到接口定义上。

语法

Set  variable  =  object.CreateMethodDef( sObjId, name, dispId )

CreateMethodDef 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 InterfaceDef 对象。
variable	声明为 MethodDef 对象的变量。接收新的方法定义。
sObjId	新的方法定义对象的对象标识符。如果将此参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。
name	新方法的名称。
dispId	用于访问新方法的调度标识符。


InterfaceDef CreatePropertyDef 方法

请参阅

此方法创建新的属性定义并将它附加到接口定义上。

语法

Set  variable  =  object.CreatePropertyDef( sObjId, name, dispId, CType )

CreatePropertyDef 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 InterfaceDef 对象。
variable	声明为 PropertyDef 对象的变量。接收新的属性定义。
sObjId	新属性定义对象的对象标识符。如果将此参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。
name	新属性的名称。
dispId	用于访问新属性的调度标识符。
CType	属性的 C 数据类型。有关有效值的定义，请参阅 ODBC Programmer�s Reference 。


InterfaceDef CreateRelationshipColDef 方法

请参阅

此方法创建新的集合类型，将它附加到此接口上，并把它与指定关系类型相连。

语法

Set  variable  =  object.CreateRelationshipColDef( sObjId, name, dispId, isOrigin, flags, relshipDef )

CreateRelationshipColDef 方法语法包含以下部分：

部分	描述
object	值为 InterfaceDef 对象的对象表达式。
variable	声明为 CollectionDef 对象的变量。接收新的集合定义。
sObjId	集合类型的对象标识符。如果将参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。
name	新集合类型的名称。
dispId	Automation 用于访问此类型集合的调度标识符。
isOrigin	指定此类型集合是否是主集合，是一个 Boolean 参数。
flags	为集合类型指定命名、排序和删除传递行为的标志。有关值及其功能，请参阅 CollectionDefFlags 枚举对象。
RelshipDef	此集合类型连接到的关系定义对象。
说明

缺省时，集合定义指定此集合类型中的许多项可以为零。要为新集合类型指定最大和最小项数，可以在提交包含此方法调用的事务前修改 MinCount 和 MaxCount 属性。


InterfaceDef ObjectInstances 方法

请参阅

此方法实现对象关系库中显露此接口的所有对象的 ObjectCol 集合。

语法

Set  variable  =  object.ObjectInstances

ObjectInstances 方法语法包含以下部分：

部分	描述
object	对象表达式，值为 InterfaceDef 对象。
variable	声明为 ObjectCol 的对象。接收显露此接口的对象的集合。


InterfaceDef Ancestor 集合

请参阅

此集合指定派生此接口的基接口。

集合描述符	描述符值
Relationship Type	Interface-InheritsFrom-Interface
Source Is Origin	Yes
Minimum Collection Size	One
Maximum Collection Size	One
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not applicable
Unique Names	Not applicable
语法

Set  variable  =  object.Ancestor( index )

Ancestor 集合语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 的对象。接收指定的基接口定义。
object	对象表达式，值为 InterfaceDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.Ancestor.Count 指定。


InterfaceDef Classes 集合

请参阅

此集合指定实现该接口的类。

集合描述符	描述符值
Relationship Type	Class-Implements-Interface
Source Is Origin	No
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not applicable
Unique Names	Not applicable
语法

Set  variable  =  object.Classes( index )

Classes 集合语法包含以下部分：

部分	描述
variable	声明为 ClassDef 对象的变量。接收指定的类定义。
object	对象表达式，值为 InterfaceDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.Classes.Count 指定。


InterfaceDef Descendants 集合

请参阅

此集合指定由此接口派生的其他接口。

集合描述符	描述符值
Relationship Type	Interface-InheritsFrom-Interface
Source Is Origin	No
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not applicable
Unique Names	Not applicable
语法

Set  variable  =  object.Descendants( index )

Descendants 集合语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量。接收指定的接口定义。
object	对象表达式，值为 InterfaceDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.Descendants.Count 指定。


InterfaceDef Members 集合

请参阅

此集合指定附加于该接口的成员。

集合描述符	描述符值
Relationship Type	Interface-Has-Members
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	Yes
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.Members( index )

Members 集合语法包含以下部分：

部分	描述
variable	声明为对象的变量。接收指定的属性定义、方法定义或集合定义。
object	对象表达式，值为 InterfaceDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.Members.Count 指定。


InterfaceDef Properties 集合

请参阅

Properties 集合包含了通过特定接口附加于对象的所有永久属性和集合。InterfaceDef  对象显露了四个独立的 Properties 集合。这些集合由下列接口显露：

1. IInterfaceDef 接口（缺省）。

2. IReposTypeInfo 接口。

3. IRepositoryObject 接口。

4. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定的属性。
object	对象表达式，其值为显露 • IinterfaceDef 、 • IreposTypeInfo 、 • IrepositoryObject 、 • IannotationalProps 为缺省接口的对象。
Index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


InterfaceDef ReposTypeLibScopes 集合

请参阅

包含此定义的对象关系类型库集合。

集合描述符	描述符值
Relationship Type	ReposTypeLib-ScopeFor-ReposTypeInfo
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.ReposTypeLibScopes( index )

ReposTypeLibScopes 集合语法包含以下部分：

部分	描述
variable	声明为 ReposTypeLib 对象的变量。接收指定的对象关系类型库对象。
object	对象表达式，值为 InterfaceDef 对象。
index	标识集合中被定址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.TypeLibScopes.Count 指定。


MethodDef 对象

请参阅         属性         方法         集合

在为工具信息模型定义类时，请指定类所提供的接口。对于其中的每一个接口，请指定附加在接口上的成员（属性、方法和集合）。

把方法定义为接口成员不会导致逻辑存储在对象关系库中的方法的实现。但是，这一定义将方法名加入接口的已定义成员名组，同时在接口的已定义调度标识符组中保留了方法的调度标识符。

方法定义（ MethodDef 对象）同时也是 RepositoryObject 对象。除这里描述的成员外，MethodDef 对象还提供为对象关系库对象定义的成员。

InterfaceDef 对象的 CreateMethodDef 方法用于向接口附加新方法。

应用

用 MethodDef 对象访问或修改方法定义特性，或决定特定方法所附加到的接口定义。

属性

属性	描述
DispatchID	调度标识符，用于调用符合此方法定义的方法。
Flags	指定此方法定义详细内容的标志。
集合

集合	描述
Interface	此方法定义所附加到的接口。
Properties	附加于 MethodDef 对象的所有永久属性集合。


MethodDef DispatchID 属性

请参阅

此属性包含用于调用符合此方法定义的方法的调度标识符。

语法

object.DispatchID

DispatchID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 MethodDef 对象。


MethodDef Flags 属性

请参阅

此属性是指定接口成员对于 Automation 查询是否可见的标志。有关值及其指定目标的列表的详细内容，请参阅 InterfaceMemberFlags 枚举对象。

语法

object.Flags

Flags 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 MethodDef 对象。


MethodDef Interface 集合

请参阅

对于特定的方法定义，Interface 集合指定了显露此类型成员的接口。

集合描述符	描述符值
Relationship Type	Interface-Has-Members
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	One
Sequenced Collection	Yes
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.Interface( index )

Interface 方法语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量。接收指定接口定义。
Object	对象表达式，值为 MethodDef 对象。
index	标志集合中被定址属性的整型索引。有效范围从 1 到集合中元素的个数。集合中的元素个数由 object.Interface.Count 指定。


MethodDef Properties 集合

请参阅

Properties 集合包含通过特定接口附加到对象上的所有永久属性和集合。MethodDef 对象显露了三个独立的 Properties 集合，这些集合通过以下接口显露：

1. IInterfaceMember 接口（缺省）。

2. IRepositoryObject 接口。

3. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 方法语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定属性。
Object	对象表达式，其值为显露： • IinterfaceMember 、 • IrepositoryObject 、 • IannotationalProps 为缺省接口的对象。
Index	标志集合中被定址属性的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


PropertyDef 对象

请参阅         属性         方法         集合

在为工具信息模型定义类时，请指定类所实现的接口。对于其中的每一个接口，请指定附加在接口上的成员（属性、方法和集合）。

为了向接口附加属性，属性必须已有属性定义。属性的特性（名称、发送标识符、数据类型和各种存储细节）存储在属性定义对象中。这些特性是由属性定义对象的属性定义的。

要创建新的属性定义，可以：

1. 使用 InterfaceDef 对象的 CreatePropertyDef 方法。

2. 通过对属性定义对象的属性进行操作，定义新属性定义的任何非缺省特性。

3. 向对象关系数据库提交所做的修改。

PropertyDef 对象也是 RepositoryObject 对象。除这里描述的成员外，PropertyDef 对象还提供了为对象关系库对象定义的成员。

应用

PropertyDef 对象用于检索或修改属性定义的特性，或用于决定显露特定属性的接口。

属性

属性	描述
APIType	数据的 C 数据类型。
ColumnName	SQL 表中此属性列的名称。
DispatchID	用于访问此类型属性实例时的调度标识符。
Flags	指定此属性定义详细资料的标志。
SQLScale	数值属性中小数点右侧的数字。
SQLSize	属性的字节长度。
SQLType	属性的 SQL 数据类型。
集合

集合	描述
Interface	此属性定义所附加到的接口。
Properties	附加到 PropertyDef 对象的所有永久属性的集合。


PropertyDef APIType 属性

请参阅

属性的 C 数据类型。有关其有效值的定义，请参阅 ODBC Programmer�s Reference 。

语法

object.APIType

APIType 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 PropertyDef 对象。


PropertyDef ColumnName 属性

请参阅

SQL 表用于为接口属性存储实例信息。缺省地，每一定义为接口成员的属性在表中为一列。ColumnName 串属性在 SQL 表中为属性定义指定了列的名称。名称的长度不得多于 30 个字符。

语法

object.ColumnName

ColumnName 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 PropertyDef 对象。


PropertyDef DispatchID 属性

请参阅

此属性包含用于访问此类型成员实例的调度标识符。

此属性不是附加于PropertyDef Automation 对象的缺省接口，而是附加于 IInterfaceMember 接口。有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。

语法

object.DispatchID

DispatchID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为显露 IInterfaceMember 接口为缺省接口的对象。


PropertyDef Flags 属性

请参阅

PropertyDef 对象显露了两个独立的 Flags 属性。一个属性由缺省接口显露，另一个由 IInterfaceMember 接口显露。下面是对它们的说明。

1. 缺省 Flags 属性：标志，指定在 SQL 表中是否为此属性所附加到的接口创建列。当为特定对象设置属性值时，如果不创建列，则此属性的实例仅附加在单独的对象上。缺省地，为每个属性创建列。有关此标志的符号和数值型值，请参阅 PropertyDefFlags 枚举对象。

2. IInterfaceDef Flags 属性：指定接口成员对于 Automation 查询是否可见的标志。有关值和其指定目标列表的详细内容，请参阅 InterfaceMemberFlags 枚举对象。

语法

object.Flags

Flags 属性语法包含以下部分：

部分	描述
object	对象表达式，对于缺省 Flags 属性，其值为 PropertyDef 对象； 对于Alternate Flags 属性，其值为显露 IinterfaceMember 接口为缺省接口的对象。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


PropertyDef SQLScale 属性

请参阅

数值属性中小数点右侧的数字。此参数可忽略，除非 SQLType 属性指定了 SQL_NUMERIC 、SQL_DECIMAL 或 SQL_TIME 数据类型。

语法

object.SQLScale

SQLScale 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 PropertyDef 对象。


PropertyDef SQLSize 属性

请参阅

属性的字节长度。在属性的数据类型已经指定了属性的字节长度时，此参数被忽略。

语法

object.SQLSize

SQLSize 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 PropertyDef 对象。


PropertyDef SQLType 属性

请参阅

属性的 SQL 数据类型。有关其有效值的定义，请参阅 ODBC Programmer�s Reference 。

语法

object.SQLType

SQLType 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 PropertyDef 对象。


PropertyDef Interface 集合

请参阅

对于特定的属性定义，Interface 集合指定显露此类型成员的接口。

此集合不是附加于 PropertyDef Automation 对象的缺省接口，而是附加于 IInterfaceMember 接口。有关访问非缺省接口成员方法的详细内容，请参阅 访问 Automation 对象成员。

集合描述符	描述符值
Relationship Type	Interface-Has-Members
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	One
Sequenced Collection	Yes
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.Interface( index )

Interface 集合语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量。接收指定接口定义。
object	对象表达式，值为实现 IInterfaceMember 接口为缺省接口的对象。
Index	标志集合中被定址元素的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.Interface.Count 指定。


PropertyDef Properties 集合

请参阅

Properties 集合，包含了通过特定接口附加于对象的永久属性和集合。 PropertyDef 对象描述了四个独立的 Properties 集合。这些集合通过以下接口显露：

1. IPropertyDef 接口（缺省）。

2. IRepositoryObject 接口。

3. IInterfaceMember 接口。

4. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定属性。
object	对象表达式，值为显露： • IpropertyDef 、 • IrepositoryObject 、 • IinterfaceMember 、 • IannotationalProps 接口为缺省接口的对象。
index	标志集合中被定址属性的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员方法的详细内容，请参阅访问 Automation 对象成员。


ReposTypeLib 对象

请参阅         属性         方法         集合

包含在对象关系数据库中的每个工具信息模型都有一个对象关系类型库。每个工具信息模型都提供了所有与某个特定工具（或工具组）相关的类型定义的逻辑分组。对象关系类型库由 ReposTypeLib 对象来表示。

ReposTypeLib 对象也是 RepositoryObject 。除这里描述的成员外，ReposTypeLib 对象还提供为对象关系库对象定义的成员。

用 ReposRoot 对象向对象关系数据库中插入新的工具信息模型。

应用

使用 ReposTypeLib 对象可以：

•	为工具信息模型定义新的类、关系类型和接口。

•	检索或修改与对象关系类型库相关的全局标识符。

•	决定与特定对象关系类型库相关的类型定义。

属性

属性	描述
TypeLibID	对象关系类型库的全局标识符。
方法

方法	描述
CreateClassDef	创建新的类定义对象。
CreateInterfaceDef	创建新的接口定义对象。
CreateRelationshipDef	创建新的关系定义对象。
集合

集合	描述
ReposTypeInfos	在对象关系类型库中定义的所有类、接口和关系类型的集合。
ReposTypeLibContexts	作为对象关系类型库上下文的某个根对象的集合。
Properties	附加于 ReposTypeLib 对象的所有永久属性的集合。


ReposTypeLib TypeLibID 属性

请参阅

此属性是对象关系类型库的全局标识符。用声明为 Variant 的变量可以将此属性复制到其他变量。

语法

object.TypeLibID

TypeLibID 属性语法包含以下部分：

部分	描述
object	对象表达式，值为 ReposTypeLib 对象。


ReposTypeLib CreateClassDef 方法

请参阅

此方法用于创建新的类定义对象。此类未附加任何接口。

语法

Set  variable  =  object.CreateClassDef( sObjId, Name, sClsId )

CreateClassDef 方法语法包含以下部分：

部分	描述
variable	声明为 ClassDef 对象的变量。接收新的类定义。
object	对象表达式，值为 ReposTypeLib 对象。
sObjId	新的类定义对象的对象标识符。如果将此参数设置为 OBJID_NULL ，则对象关系库引擎将指定一个对象标识符。
Name	新类的名称。
sClsId	引用此类的全局标识符。


ReposTypeLib CreateInterfaceDef 方法

请参阅

CreateInterfaceDef 方法用于创建新的接口定义对象。用 ClassDef 对象的 AddInterface 方法把接口附加到类定义对象上。

语法

Set  variable  =  object.CreateInterfaceDef( sObjId, Name, sIId, Ancestor )

CreateInterfaceDef 方法语法包含以下部分：

部分	描述
variable	声明为 InterfaceDef 对象的变量。接收新的接口定义。
object	对象表达式，值为 ReposTypeLib 对象。
sObjId	为新的接口定义对象指定的对象标识符。如果此参数设置为 OBJID_NULL，则对象关系库将指定对象标识符。
Name	被创建的接口的名称。
sIId	与此接口署名关联的接口标识符。如果没有，则此参数设置为 0 。
Ancestor	派生新接口的基本接口。


ReposTypeLib CreateRelationshipDef 方法

请参阅

此方法用于为新关系类型创建关系定义对象。关系定义创建后，可用 InterfaceDef 对象的 CreateRelationshipColDef 方法为新关系类型创建主集合和从集合的定义。

语法

Set  variable  =  object.CreateRelationshipDef( sObjId, Name )

CreateRelationshipDef 方法语法包含以下部分：

部分	描述
variable	声明为 RelationshipDef 对象的变量。接收新的关系定义。
object	对象表达式，值为 ReposTypeLib 对象。
sObjId	新关系类型的对象标识符。如果此参数设置为 OBJID_NULL，则对象关系库引擎将指定对象标识符。
Name	新关系类型的名称。


ReposTypeLib ReposTypeInfos 集合

请参阅

与对象关系类型库关联的所有类、接口和关系类型的集合。对象关系库引擎用此集合来强制地唯一命名对象关系类型库的所有类、接口和关系类型。

集合描述符	描述符值
Relationship Type	ReposTypeLib-ScopeFor-ReposTypeInfo
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.ReposTypeInfos( index )

ReposTypeInfos 方法语法包含以下部分：

部分	描述
variable	声明为 Object 的变量。接收指定的类定义、接口定义或关系定义。
object	对象表达式，值为 ReposTypeLib 对象。
index	标志集合中被定址元素的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.ReposTypeInfos.Count 指定。


ReposTypeLib ReposTypeLibContexts 集合

请参阅

作为对象关系类型库上下文的某个对象关系库根的集合。

集合描述符	描述符值
Relationship Type	TlbManager-ContextFor-ReposTypeLibs
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.ReposTypeLibContexts( index )

ReposTypeLibContexts 方法语法包含以下部分：

部分	描述
variable	声明为 ReposRoot 对象的变量。接收对象关系库根对象。
object	对象表达式，值为 ReposTypeLib 对象。
index	标志集合中被定址元素的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.ReposTypeLibContexts.Count 指定。


ReposTypeLib Properties 集合

请参阅

Properties 集合，包含通过特定接口附加到对象上的所有永久属性和集合。ReposTypeLib 对象显露三个独立的 Properties 集合。这些集合由以下接口显露：

1. IReposTypeLib 接口（缺省）。

2. IRepositoryObject 接口。

3. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 方法语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定属性。
object	对象表达式，其值为显露： • IreposTypeLib 、 • IrepositoryObject 、 • IannotationalProps 接口为缺省接口的对象。
Index	标志集合中被定址属性的整型索引。有效范围从 1 到集合中元素的个数。集合中元素的个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


ReposRoot 对象

请参阅         属性         方法         集合

每个对象关系库中都有一个根对象。根对象是在对象关系库中定位其他对象的起点。定位类型和实例数据的起点都是根对象。

•	类型数据定位：

创建工具信息模型时，对应的对象关系类型库就通过 ReposTypeLibs 集合附加到根对象上。此集合可以用于枚举对象关系库中的所有工具信息模型（类型数据）。

•	实例数据定位：

工具信息模型一经定义，即可以用实例数据填充对象关系库。实例数据由符合工具信息模型类和关系类型的对象和关系组成。

由于对象是通过关系连接的，所以可以在此数据中定位。可是，要用一般目标对象关系库浏览器定位此数据，第一步必须是从对象关系库的根对象通过根关系集合到工具信息模型的主对象。主对象是定位工具信息模型其他对象的良好起点。

由于此根关系集合对于每个工具信息模型是不同的，所以必须由工具信息模型来定义。要将此关系集合附加到根对象上，有两个选项：

•	ReposRoot 类实现 IReposRoot 接口。此接口作为连接点提供给工具信息模型的创建者。可以向此接口添加连接关系集合。

•	可以扩展 ReposRoot 类以实现工具信息模型中定义的新的接口。此接口实现将根对象附加于工具信息模型中的主对象的关系集合。

为了便于定位，可让所有对象关系库中的根对象使用相同的对象标识符。此对象标识符的符号名为 OBJID_ReposRootObj 。

ReposRoot 对象也是 RepositoryObject 对象。除这里描述的成员外，ReposRoot 对象还提供为对象关系库对象定义的成员。

应用

使用 ReposRoot 对象可以：

•	在对象关系库中获得定位对象的起点。

•	创建新的工具信息模型。

•	附加关系集合到连接工具信息模型主对象的对象关系库根对象。

•	决定当前存储在对象关系库中的工具信息模型。

方法

方法	描述
CreateTypeLib	为新的工具信息模型创建对象关系类型库。
集合

集合	描述
ReposTypeLibs	当前存储在对象关系库中的类型库的集合。
Properties	附加在 ReposRoot 对象上的所有永久属性的集合。


ReposRoot CreateTypeLib 方法

请参阅

此方法用于创建新的对象关系类型库并将其附加到对象关系库的根。每个类型库表示一个工具信息模型。

语法

Set  variable  =  object.CreateTypeLib( sObjId, Name, TypeLibId )

CreateTypeLib 方法语法包含以下部分：

部分	描述
variable	声明为 ReposTypeLib 对象的变量。接收新的对象关系类型库。
Object	对象表达式，值为 ReposRoot 对象。
sObjId	用于新的对象关系类型库对象的对象标识符。如果将此参数设置为 OBJID_NULL，则对象关系库引擎将指定对象标识符。
Name	新对象关系类型库的名称。
TypeLibId	引用此对象关系类型库的全局标识符。
说明

此方法不用于创建外部类型库，而用于在对象关系数据库中创建 ReposTypeLib 对象。


ReposRoot ReposTypeLibs 集合

请参阅

当前存储在对象关系库中的类型库集合。每个对象关系类型库代表一个工具信息模型。

集合描述符	描述符值
Relationship Type	TlbManager-ContextFor-ReposTypeLibs
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.ReposTypeLibs( index )

ReposTypeLibs 集合语法包含以下部分：

部分	描述
variable	声明为 ReposTypeLib 对象的变量。接收指定的对象关系类型库。
object	对象表达式，值为 ReposRoot 对象。
index	标志集合中被定址元素的整型索引。有效范围从 1 到集合中元素的个数。集合中的元素个数由 object.ReposTypeLibs.Count 指定。


ReposRoot Properties 集合

请参阅

Properties 集合，包含通过特定接口附加到对象的所有永久属性和集合。ReposRoot 对象显露四个独立的 Properties 集合。这些集合由以下接口显露：

1. IManageReposTypeLib 接口（缺省）。

2. IReposRoot 接口。

3. IRepositoryObject 接口。

4. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定属性。
object	对象表达式，其值为显露： • ImanageReposTypeLib 、 • IreposRoot 、 • IrepositoryObject 、 • IannotationalProps 为缺省接口的对象。
index	标志集合中被定址的属性的整型索引。有效范围从 1 到集合中元素的数目。集合中元素的数目由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员的方法，请参阅访问 Automation 对象成员。


RelationshipDef 对象

请参阅         属性         方法         集合

在对象关系库中定义工具信息模型时，也就定义了对象的类、对象间关系的类型以及附加在这些对象的类和关系类型上的各种不同的属性。在工具信息模型中定义的关系类型由 RelationshipDef 类的实例表示。

使用 ReposTypeLib 对象的 CreateRelationshipDef 方法向工具信息模型添加新的关系类型（也作为关系定义引用）。

RelationshipDef 对象也是 RepositoryObject 。 除这里描述的成员外，RelationshipDef 还提供为对象关系库对象定义的成员。

应用

使用 RelationshipDef 对象可以：

•	访问附加到关系定义的任何永久属性。

•	决定与关系定义关联的集合类型。

•	决定包含关系定义的对象关系类型库。

属性

属性	描述
ClassID	此属性留作以后使用。
集合

集合	描述
Interfaces	此集合对于关系定义为空，留作以后使用。
ItemInCollections	与此关系定义关联的两个集合类型的集合。
Properties	附加到 RelationshipDef 对象的所有永久属性的集合。
ReposTypeLibScopes	包含此定义的所有对象关系类型库的集合。


RelationshipDef ItemInCollections 集合

请参阅

一个关系类型与两个集合类型关联。主集合符合一个集合类型（主集合类型），从集合符合另一个集合类型（从集合类型）。ItemInCollections 集合包含了表示主、从集合类型的两个集合定义对象。

集合描述符	描述符值
Relationship Type	Collection-Contains-Items
Source Is Origin	No
Minimum Collection Size	Zero
Maximum Collection Size	Two
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not applicable
Unique Names	Not applicable
语法

Set  variable  =  object.ItemInCollections( index )

ItemInCollections 集合语法包含以下部分：

部分	描述
variable	声明为 CollectionDef 对象的变量。接收指定的集合定义。
object	对象表达式，值为 RelationshipDef 对象。
index	标志集合中被寻址元素的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.ItemInCollections.Count 指定。
说明

如果关系类型还未被连接到它的主、从集合类型，则此集合包含的集合类型可以少于两个。


RelationshipDef Properties 集合

请参阅

Properties 集合包含通过特定接口附加到对象的所有永久属性和集合。RelationshipDef 对象显露三个独立的 Properties 集合。这些集合由以下接口显露：

1. IReposTypeInfo 接口（缺省）。

2. IRepositoryObject 接口。

3. IAnnotationalProps 接口。

语法

Set  variable  =  object.Properties( index )

Properties 集合语法包含以下部分：

部分	描述
variable	声明为 ReposProperty 对象的变量。接收指定的属性。
Object	对象表达式，其值为显露： • IreposTypeInfo 、 • IrepositoryObject 、 • IannotationalProps 为缺省接口的对象。
Index	标志集合中被寻址属性的整型索引。有效范围从 1 到集合中的元素个数。集合中的元素个数由 object.Properties.Count 指定。
说明

有关访问非缺省接口成员方法的详细内容，请参阅访问 Automation 对象成员。


RelationshipDef ReposTypeLibScopes 集合

请参阅

包含此定义的对象关系类型库的集合。

集合描述符	描述符值
Relationship Type	ReposTypeLib-ScopeFor-ReposTypeInfo
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes
语法

Set  variable  =  object.ReposTypeLibScopes( index )

ReposTypeLibScopes 集合语法包含以下部分：

部分	描述
variable	声明为 ReposTypeLib 对象的变量。接收指定的对象关系类型库对象。
object	对象表达式，值为 RelationshipDef 对象。
index	标志集合中被寻址元素的整型索引。有效范围为从 1 到集合中的元素个数。集合中的元素个数由 object.TypeLibScopes.Count 指定。


Repository Engine Classes
Repository Engine 类

Repository Engine 类用于在对象关系库中添加、检索和修改工具信息模型数据。使用 Type Information Model 类创建新的或扩展已有的工具信息模型。

所有对象关系库的类都显露提供基本 COM 和 Automation 支持的标准 IUnknown 和 IDispatch 接口。

类

ObjectCol

Relationship

RelationshipCol

Repository

RepositoryObject

ReposProperties

ReposProperty


ObjectCol 类

请参阅         接口

对象集合是一组可以枚举的对象关系库对象。对象关系库支持以下两种对象集合：

1. 对应关系集合中关系的从对象的集合。可用 RelationshipCol 类管理此类集合。

2. 对象关系库中提供特定接口的所有对象的集合。可用 ObjectCol 类枚举此类集合中的对象。

IInterfaceDef::ObjectInstances 方法用于实现此类的实例。

应用

ObjectCol 类用于访问显露特定接口的对象关系库对象集合。

接口

接口	描述
IObjectCol	管理集合中的对象。
IRepositoryDispatch	提供增强调度支持。


Relationship 类

请参阅         接口

一个关系在对象关系数据库中连接两个对象关系库对象，它有一个主对象、一个从对象和一组属性。

应用

Relationship 类用于对关系进行操作，或检索关系的源、目标、主或从对象。

接口

接口	描述
IAnnotationalProps	获取和设置标注属性。
Irelationship	检索关系的信息。
IRepositoryDispatch	提供增强调度支持。
IRepositoryItem	管理对象关系库对象和关系。


在每个对象关系库关系中，都有一个主对象和从对象。考虑如下示例：Fred 驾驶一辆黑色的卡车。“人驾驶车辆”是关系类型，Fred 是关系的主对象，黑色卡车是关系的从对象。

不要混淆主、从和源、目标这些术语。对于任何特定的关系，源和目标依赖于是否您正在通过主对象和从对象集合进行定位。而关系的主和从对象并不依赖于正在定位的集合。


当切换对象关系库集合时，源对象是与集合中所有对象相关的一个对象。目标对象可以是集合中任何一个对象。

不要混淆源、目标和主、从这些术语。对于任何特定关系，源和目标取决于您是否正在通过主对象和从对象集合进行定位。而关系的主和从对象并不依赖于正在定位的集合。


RelationshipCol 类

请参阅         接口

关系集合是一组连接一个特定的源对象关系库对象和一个或多个目标对象的对象关系库关系。集合中所有的关系必须符合相同的关系类型。

应用

RelationshipCol 类用于在对象关系数据库中管理关系集合。

接口

接口	描述
IrelationshipCol	管理关系集合。
IrepositoryDispatch	提供增强调度支持。
ITargetObjectCol	管理目标对象集合中的对象。


Repository 类

请参阅         接口

充填工具信息模型时，符合模型的对象和关系被存储在一个对象关系库中。多工具信息模型可以存储在同一个对象关系库中。Repository 类表示与特定对象关系库的连接。

应用

Repository 类用于连接到一个对象关系库，检索库的根对象，创建新的库对象，管理库事务和错误处理。

接口

接口	描述
Irepository	创建并充填一个对象关系库。
IrepositoryDispatch	提供增强调度支持。
IrepositoryErrorQueueHandler	创建和指定错误队列。
IrepositoryODBC	提供对对象关系数据库连接信息的访问。
IrepositoryTransaction	控制对象关系库事务。


RepositoryObject 类

请参阅         接口

在对象关系库中定义工具信息模型的同时，也定义了对象的类、存在于对象间的关系类型、附加在这些对象的类和关系类型上的各种不同属性。定义在工具信息模型中的对象的类从 RepositoryObject 类派生它们的基本特性。

应用

RepositoryObject 类用于访问、修改或删除对象关系库中的对象。

接口

接口	描述
IrepositoryDispatch	提供增强调度支持。
IrepositoryItem	管理对象关系库对象和关系。
IrepositoryObject	检索对象关系库对象标识符。
IrepositoryObjectStorage	创建和加载对象关系库对象。


ReposProperties 类

请参阅         接口

ReposProperties 对象提供对 Properties 集合的访问。Properties 集合提供了方便的机制来枚举接口的所有永久属性和集合。 ReposProperty 类可用于单独访问 Properties 集合中的各个成员。

应用

ReposProperties 类用于在没有自定义实现可用，并且不知道对象接口显露的成员时，访问对象关系库对象的属性和集合。

接口

接口	描述
IReposProperties	提供对附加到接口的成员的访问。
IrepositoryDispatch	提供增强调度支持。


ReposProperty 类

请参阅         接口

ReposProperty 类提供对工具信息模型接口的永久成员（属性或集合）的访问。

应用

ReposProperty 类用于在没有自定义实现可用，并且不知道成员的类型或名称时，访问永久接口成员。

接口

接口	描述
IReposProperty	提供对附加到接口的成员的访问。
IrepositoryDispatch	提供增强调度支持。


Type Information Model 类

Type Information Model 是对象关系库用于存储工具信息模型的对象模型。Type Information Model 类用于创建或扩展工具信息模型。这些类均以 Repository Engine 类为基础。

所有对象关系库类都显露提供基本 COM 和 Automation 支持的标准 IUnknown 和 IDispatch 接口。

类

ClassDef

CollectionDef

InterfaceDef

MethodDef

PropertyDef

RelationshipDef

ReposRoot

ReposTypeLib


ClassDef 类

请参阅         接口

在对象关系库中定义工具信息模型的同时，也定义了对象的类、存在于对象间的关系类型以及附加在这些对象的类和关系类型上的不同属性。定义在工具信息模型中的对象的类由 ClassDef 类的实例表示。

使用 ReposTypeLib 类可以向工具信息模型插入新的类定义。

应用

ClassDef 类用于完成新对象关系库类的定义。可以定义新的接口并将它们附加到类定义上，也可以将已有接口附加到类定义上。

接口

接口	描述
IAnnotationalProps	获取和设置标注属性。
IClassDef	管理类定义。
IRepositoryDispatch	提供增强调度支持。
IRepositoryItem	管理对象关系库对象和关系。
IRepositoryObject	检索对象关系库对象标识符。
IRepositoryObjectStorage	创建和加载对象关系库对象。
IReposTypeInfo	包含与工具信息模型的对象关系类型库关联的定义对象集合。


CollectionDef 类

请参阅         接口

对象关系库对象通过关系相互联系。把一个对象与其他零或多个对象关联的所有同类型关系构成一个关系集合。

关系集合（也作为集合定义引用）定义了特定关系类型的实例的行为。集合类型的特性决定：

•	集合中最大和最小项数。

•	集合类型是否为主集合类型。

•	集合类型是否允许命名从对象。如果是，则其名称是否区分大小写，并要求是唯一的。

•	集合类型是否允许集合中项的外部排序。

•	集合中对象或关系被删除时，对相关对象影响。

•	特定集合类型用于关联对象的关系的种类。

一个集合被作为接口的成员附加到接口上。使用 InterfaceDef 类可以向接口定义添加新的集合类型。

应用

CollectionDef 类用于检索或修改集合类型的属性，或决定集合提供的关系种类。

接口

接口	描述
IAnnotationalProps	获取和设置标注属性。
ICollectionDef	管理集合定义。
IInterfaceMember	将成员与接口相关。
IRepositoryDispatch	提供增强调度支持。
IRepositoryItem	管理对象关系库对象和关系。
IRepositoryObject	检索对象关系库对象标识符。
IRepositoryObjectStorage	创建和加载对象关系库对象。


InterfaceDef 类

请参阅         接口

属性方法和由类提供的集合被分成功能相关的组。每个组被作为一个 COM 接口提供。每个接口的属性、方法和集合都是接口的成员。接口定义是接口所符合的摸板，是 InterfaceDef 类的实例。

使用 ClassDef 类或 ReposTypeLib 类可以创建新的接口定义。

应用

InterfaceDef 类用于：

•	检索或修改接口定义的属性。

•	决定附加到接口定义的成员。

•	决定提供接口的类。

•	决定派生接口的基本接口。

•	决定特定接口派生的接口。

•	决定显露特定接口的对象关系库对象。

•	向接口定义添加新的属性、方法和集合类型。

接口

接口	描述
IAnnotationalProps	获取和设置标注属性。
IInterfaceDef	管理接口定义。
IRepositoryDispatch	提供增强调度支持。
IRepositoryItem	管理对象关系库对象和关系。
IRepositoryObject	检索对象关系库对象标识符。
IRepositoryObjectStorage	创建和加载对象关系库对象。
IReposTypeInfo	包含与工具信息模型的对象关系类型库关联的定义对象集合。


MethodDef 类

请参阅         接口

为工具信息模型定义类的同时，也指定了类所提供的接口。对于其中每个接口，指定附加在接口上的成员（属性、方法和集合）。

作为接口成员的方法定义不会导致方法的实现逻辑存储在对象关系库中。然而，它会为接口向已定义成员名称组添加方法名称。它还为接口在已定义调度标识符组中保留了方法的调度标识符。

MethodDef 类的实例表示方法定义。

使用 InterfaceDef 类可以将新方法附加到接口。

应用

MethodDef 类用于访问或修改方法定义的特性，或决定特定方法所附加的接口定义。.

接口

接口	描述
IannotationalProps	获取和设置标注属性。
IinterfaceMember	将成员与接口相关。
IrepositoryDispatch	提供增强调度支持。
IrepositoryItem	管理对象关系库对象和关系。
IrepositoryObject	检索对象关系库对象标识符。
IrepositoryObjectStorage	创建和加载对象关系库对象。


PropertyDef 类

请参阅         接口

为工具信息模型定义类的同时，也指定了类提供的接口。对于其中每个接口，指定附加到接口的成员（属性、方法和集合）。

为了将属性附加到接口，属性的属性定义必须已经存在。属性的特性（名称、调度标识符、数据类型和不同的有关存储的详细内容）存储在属性定义中。属性定义是 PropertyDef 类的实例。

使用 InterfaceDef 类可以将新属性附加到接口。

应用

PropertyDef 类用于访问或修改属性定义的特性，或决定特定属性所附加的接口定义。

接口

接口	描述
IAnnotationalProps	获取和设置标注属性。
IInterfaceMember	将成员与接口相关。
IPropertyDef	保持属性特性。
IRepositoryDispatch	提供增强调度支持。
IRepositoryItem	管理对象关系库对象和关系。
IRepositoryObject	检索对象关系库对象标识符。
IRepositoryObjectStorage	创建和加载对象关系库对象。


RelationshipDef 类

请参阅         接口

在对象关系库中定义工具信息模型的同时，也定义了对象的类、对象间关系的类型以及附加在这些对象类和关系类型的不同的属性。定义在工具信息模型中的关系类型由 RelationshipDef 类的实例提供。

应用

RelationshipDef 类用于访问关系定义的属性（也作为关系类型引用）。

ReposTypeLib 类用于向工具信息模型插入新的关系类型。

接口

接口	描述
IAnnotationalProps	获取和设置标注属性。
IRepositoryDispatch	提供增强调度支持。
IRepositoryItem	管理对象关系库对象和关系。
IRepositoryObject	检索对象关系库对象标识符。
IRepositoryObjectStorage	创建和加载对象关系库对象。
IReposTypeInfo	包含与工具信息模型的对象关系类型库关联的定义对象集合。


ReposRoot 类

请参阅         接口

每个对象关系库中都由一个根对象。根对象是在对象关系库中定位对象的起点。定位类型和实例数据都以根对象为起点。

•	类型数据定位：

创建工具信息模型时，对应的对象关系类型库通过 ReposTypeLibs 集合被附加到根对象。此集合可以用于枚举所有包含在对象关系库中的工具信息模型（类型数据）。

•	实例数据定位：

工具信息模型一经定义，就可以用实例数据充填对象关系库。此实例数据由符合工具信息模型的类和关系类型的对象和关系组成。

由于对象通过关系连接，所以可以在此数据中定位。然而，要使一般目标对象关系库浏览器能够定位此数据，则第一步必须是从对象关系库的根对象通过根关系集合到工具信息模型的主对象。主对象是定位工具信息模型中其他对象的良好起点。

由于此根关系集合对象每个工具信息模型都是不同的，所以它必须由工具信息模型定义。向根对象附加此关系集合，有两个选项：

•	ReposRoot 类提供 IReposRoot 接口。此接口作为连接点为工具信息模型的创建者提供。可以向此接口添加连接关系集合。

•	可以扩展 ReposRoot 类以提供定义在工具信息模型中的新的接口。此接口提供在工具信息模型中附加根对象到主对象的关系集合。

为有助于定位，所有对象关系库中的根对象通常采用相同的对象标识符。此对象标识符的符号名称为 OBJID_ReposRootObj。

应用

ReposRoot 类用于：

•	为在对象关系库中定位对象获取一个起点。

•	创建新的工具信息模型。

•	向连接工具信息模型主对象的对象关系库根对象附加关系集合。

接口

接口	描述
IannotationalProps	获取和设置标注属性。
ImanageReposTypeLib	向对象关系库添加工具信息模型（对象关系类型库）。
IrepositoryDispatch	提供增强调度支持。
IrepositoryItem	管理对象关系库对象和关系。
IrepositoryObject	检索对象关系库对象标识符。
IrepositoryObjectStorage	创建和加载对象关系库对象。
IreposRoot	为工具信息模型实例数据提供说明。


ReposTypeLib 类

请参阅         接口

每个包含在对象关系数据库中的工具信息模型都有一个对应的对象关系类型库。每个工具信息模型提供与特定工具（或工具组）相关的所有类型定义的逻辑组。对象关系类型库是 ReposTypeLib 类的实例。

ReposRoot 类用于向对象关系数据库插入新的工具信息模型。

应用

ReposTypeLib 类用于：

•	决定工具信息模型新的类、关系类型和接口。

•	检索或修改与对象关系类型库关联的全局标识符。

•	决定与特定对象关系类型库关联的类型定义。

接口

接口	描述
IannotationalProps	获取和设置标注属性。
IrepositoryDispatch	提供增强调度支持。
IrepositoryItem	管理对象关系库对象和关系。
IrepositoryObject	检索对象关系库对象标识符。
IrepositoryObjectStorage	创建和加载对象关系库对象。
IreposTypeLib	创建对象关系类型库的类、接口和关系定义。


Repository 数据结构和常数

以下文件包含 Microsoft Repository 的各种声明和定义：

•	REPAPI.H 源文件包含指定对象关系库引擎的 C++ 定义。

•	REPTIM.H 包含指定类型信息模型的常数定义。大多数有用的标识符（类、接口、对象、本地、内部和调度）在此文件中定义。

•	REPAUTO.H 文件包含对象关系库引擎和类型信息模型的外部枚举、类和接口的定义。此文件中的所有接口都支持 Automation 级的访问。


Repository 常数

请参阅

这些常数是为 Microsoft Repository 应用程序设计接口定义的。

常数	值	描述
CARD_NOLIMIT	0xFFFF	不限制项数目集合的最大数值。
COLUMNNAMESIZE	32	SQL 列名称的最大字节长度。
INTID_NULL	0xFFFFFFFF	空内部标识符。
MEMBERNAMESIZE	64	属性、方法或集合类型名称的最大字节长度。
OBJID_NULL	See reptim.h	空对象标识符。希望由对象关系库指定对象标识符时使用。
PASSWORDSIZE	64	连接对象关系数据库的口令字符串的最大字节长度。
PROPVALSIZE	255	标注属性字符串的最大字节长度。
RELSHIPNAMESIZE	260	关系用于指定从对象的名称的最大字节长度。
REPOSERROR_OBJKNOWN	0x00000001L	在 REPOSERROR 结构的 fFlags 字段中返回。指示对象的标识符已知。
REPOSERROR_SQLINFO	0x00000002L	在 REPOSERROR 结构的 fFlags 字段中返回。指示 SQL 错误信息有效。
REPOSERROR_HELPAVAIL	0x00000004L	在 REPOSERROR 结构的 fFlags 字段中返回。指示 rcHelpFile 和 dwHelpContext 字段有效。
REPOSERROR_MSG_SIZE	256	REPOSERROR 结构的 rcMsg 字段中信息的最大字节长度。
TABLENAMESIZE	32	SQL 表名称的最大字节长度。
TYPEINFONAMESIZE	64	类、接口或关系类型名称的最大字节长度。
TYPELIBNAMESIZE	64	对象关系类型库名称的最大字节长度。
USERSIZE	64	连接对象关系数据库的用户名称的最大字节长度。


CollectionDefFlags 枚举对象

请参阅

这些值用于定义关系集合的行为。这些标志是位标志，并可以组合来设置多重选项。没有标志表示选项没有设置。

enum { COLLECTION_NAMING          = 1,

       COLLECTION_UNIQUENAMING    = 2,

       COLLECTION_CASESENSITIVE   = 4,

       COLLECTION_SEQUENCED       = 8

       COLLECTION_PROPAGATEDELETE = 16

} CollectionDefFlags;

值	描述
COLLECTION_CASESENSITIVE	指定集合的关系类型允许从对象使用区分大小写的名称。此描述符仅对其关系类型允许命名从对象的集合有意义。
COLLECTION_NAMING	指定集合的关系类型允许命名从对象。
COLLECTION_SEQUENCED	指定集合中的项有一个显式定义序列。主对象集合不排序。
COLLECTION_UNIQUENAMING	指定集合的关系类型要求从对象的名称在从对象集合中是唯一的。此描述符仅对其关系类型允许命名从对象的集合有意义。
COLLECTION_PROPAGATEDELETE	指定集合的关系类型要求将删除传递给从对象。如果这是连接到对象的此类型的最后关系，从对象将被删除。


ConnectionFlags 枚举对象

请参阅

这些值用于定义对象关系数据库连接的特性。这些标志是位标志，并可以组合来设置多重选项。没有标志表示选项没有设置。

enum { REPOS_CONN_EXCLUSIVE  = 1,

       REPOS_CONN_NEWCACHE   = 2

} ConnectionFlags;

值	描述
REPOS_CONN_EXCLUSIVE	以独占模式打开对象关系数据库。其他用户不能访问该数据库。
REPOS_CONN_NEWCACHE	为此打开的对象关系库实例创建新的缓存。这将消耗附加资源。


InterfaceDefFlags 枚举对象

请参阅

这些值用于定义接口定义的指定特性。这些标志是位标志，并可以组合来设置多重选项。没有标志表示选项没有设置。

enum { INTERFACE_EXTENSIBLE  = 1,

       INTERFACE_HIDDEN      = 2

} InterfaceDefFlags;

值	描述
INTERFACE_EXTENSIBLE	指定接口支持扩展名。
INTERFACE_HIDDEN	指定接口对于 Automation 查询为不可见。


InterfaceMemberFlags 枚举对象

请参阅

此枚举用于定义接口成员的指定特性。没有标志表示选项没有设置。

enum { INTERFACEMEMBER_HIDDEN  = 1

} InterfaceMemberFlags;

值	描述
INTERFACEMEMBER_HIDDEN	指定接口成员对于 Automation 查询为不可见。


PropertyDefFlags 枚举对象

请参阅

此枚举用于定义属性定义的指定特性。没有标志表示没有设置选项。

enum { PROPERTY_INVERTED  = 1

} PropertyDefFlags;

值	描述
PROPERTY_INVERTED	指定属性存储在反转窗体中；也就是， 在包含实现接口属性的 SQL 表中没有保存列。此属性的实例仅对已有属性值组的对象存在。属性被限制为字符串数据类型。


TransactionFlags 枚举对象

请参阅

此枚举用于指定被检索或设置的事务选项。

enum { TXN_RESET_OPTIONS           = 1,

       TXN_NORMAL                  = 2,

       TXN_EXCLUSIVE_WRITEBACK     = 3,

       TXN_EXCLUSIVE_WRITETHROUGH  = 4,

       TXN_TIMEOUT_DURATION        = 5,

       TXN_START_TIMEOUT           = 6

} TransactionFlags;

值	描述
TXN_RESET_OPTIONS	仅对设置事务选项有效。指定所有选项被重新设置为缺省值。任何关联选项的数值将被忽略。
TXN_NORMAL	指定非独占回写模式事务选项。
TXN_EXCLUSIVE_WRITEBACK	指定独占回写模式事务选项。
TXN_EXCLUSIVE_WRITETHROUGH	指定独占通写模式事务选项。
TXN_TIMEOUT_DURATION	指定决定等待锁定的最大时间的事务选项。
TXN_START_TIMEOUT	指定决定等待开始事务的最大时间的事务选项。


Repository 数据类型

请参阅

以下的结构和数据类型是为 Microsoft Repository 应用程序设计接口定义的。

内部标识符

struct INTID

{

   ULONG  iSiteID;

   ULONG  iLocalID;

};

typedef const INTID &REFINTID;

INTID 或 REFINTID 变量是指定对象关系库对象的内部标识符，在特定对象关系数据库中唯一地标识对象。在所有对象关系库中它不是唯一的。这与接口的接口标识符，或用于创建类实例的类标识符不同。

内部标识符有内部位置标识符 (iSiteID) 和内部本地标识符 (iLocalID) 。

对象标识符

typedef const OBJECTID OBJID;

typedef const OBJID&   REFOBJID;

OBJID 或 REFOBJID 变量是特定对象关系数据库中指定对象关系库对象的对象标识符。对象标识符在所有对象关系库中是唯一的。对象标识符与接口的接口标识符、或用于创建类实例的类标识符不同。

对象标识符由全局标识符 (GUID) 和追加到 GUID 的四字节本地标识符组成。对象标识符的 GUID 部分指定对象标识符创建的位置，本地标识符在对象关系数据库中的值唯一。


REPOSERROR 数据结构

请参阅

对象关系库方法返回一个指示方法是否完成的 HRESULT 值。如果对象关系库方法失败，就创建一个包含有关失败细节的错误对象。REPOSERR 数据结构包含这些细节。

struct REPOSERROR

{

   ULONG    iSize;

   ULONG    fFlags;

   HRESULT  hr;

   TCHAR    rcMsg[REPOSERROR_MSG_SIZE];

   TCHAR    rcHelpFile[_MAX_PATH];

   ULONG    dwHelpContext;

   long     iNativeError;

   TCHAR    rcSqlState[6];

   short    iReserved;

   OBJID    sObjID;

   GUID     clsid;

   GUID     iid;

};

iSize
此数据结构的字节大小。

fFlags
定义此数据结构某一成员有效性的位标志。有效值为 REPOSERROR_OBJKNOWN 、REPOSERROR_SQLINFO 和 REPOSERROR_HELPAVAIL 。有关这些常数的含义，请参阅 Repository 常数。

hr
HRESULT 返回值，此值从记录此错误的方法返回。

rcMsg
与此错误对应的文本信息。

rcHelpFile
包含有关此错误详细信息的帮助文件名称。

dwHelpContext
关联此错误的帮助上下文标识符。

iNativeError
由数据库引擎返回的错误代码。此成员的值仅在 fFlags 成员指示 SQL 信息存在时有效。

rcSqlState
SQL 状态信息由数据库引擎支持。此成员的值仅在 fFlags 成员指示 SQL 信息存在时有效。

iReserved
为对象关系库引擎保留。

sObjID
关联此错误的对象的对象标识符。此成员的值仅在 fFlags 成员指示对象为已知时有效。

clsid
关联此错误的对象的类标识符。此成员的值仅在 fFlags 成员指示对象为已知时有效。

iid
关联此错误的接口的接口标识符。如果接口未知，或不可用，则此成员值设为 GUID_NULL。


Repository 错误

请参阅

几乎所有的对象关系库方法都返回一个 HRESULT 值，以指示方法是否成功地执行功能。这些 HRESULT 值的 Facility 字段通常设置为 FACILITY_ITF，此值表明：任何给定错误代码值的含义只针对出现该错误的接口。所有标准对象关系库接口（即由对象关系库自动提供的接口）使用相同的错误代码组。这里分别按数值顺序和字母顺序列出这些代码。


Repository 错误（数值顺序）

请参阅

可以作为 HRESULT 返回值的一部分被对象关系库方法返回的错误代码按数值顺序列表如下。这些代码也可按字母顺序排列。

(0x1000)  EREP_BADPARAMS

(0x1001)  EREP_BADNAME

(0x1002)  EREP_BADDRIVER

(0x1011)  EREP_NOROWSFOUND

(0x1012)  EREP_ODBC_CERROR

(0x1013)  EREP_ODBC_MDBNOTFOUND

(0x1015)  EREP_ODBC_UNKNOWNDRIVER

(0x1030)  EREP_DB_EXISTS

(0x1031)  EREP_DB_NOTCONNECTED

(0x1032)  EREP_DB_ALREADYCONNECTED

(0x1033)  EREP_DB_DBMSONETHREAD

(0x1034)  EREP_DB_CORRUPT

(0x1035)  EREP_DB_NOSCHEMA

(0x1041)  EREP_TXN_NOTXNACTIVE

(0x1042)  EREP_TXN_AUTOABORT

(0x1043)  EREP_TXN_TOOMANY

(0x1044)  EREP_TXN_TIMEOUT

(0x1045)  EREP_TXN_NODATA

(0x1046)  EREP_TXN_NOSETINTXN

(0x1070)  EREP_REPOS_CACHEFULL

(0x1071)  EREP_REPOS_NONEXTDISPID

(0x1100)  EREP_RELSHIP_EXISTS

(0x1101)  EREP_RELSHIP_INVALID_PAIR

(0x1102)  EREP_RELSHIP_NOTFOUND

(0x1105)  EREP_RELSHIP_ORGONLY

(0x1106)  EREP_RELSHIP_OUTOFDATE

(0x1107)  EREP_RELSHIP_INVALIDFLAGS

(0x1108)  EREP_RELSHIP_NAMEINVALID

(0x1109)  EREP_RELSHIP_DUPENAME

(0x1120)  EREP_TYPE_TABLEMISMATCH

(0x1121)  EREP_TYPE_COLMISMATCH

(0x1122)  EREP_TYPE_NOTNULLABLE

(0x1123)  EREP_TYPE_MULTIDEFIFACES

(0x1124)  EREP_TYPE_INVERTEDNOTALLOWED

(0x1125)  EREP_TYPE_INVALIDSCALE

(0x1200)  EREP_LOCK_TIMEOUT

(0x1300)  EREP_OBJ_NOTINITIALIZED

(0x1301)  EREP_OBJ_NOTFOUND

(0x1302)  EREP_OBJ_NONAMINGRELSHIP

(0x1303)  EREP_OBJ_EXISTS

(0x1400)  EREP_PROP_MISMATCH

(0x1401)  EREP_PROP_SETINVALID

(0x1402)  SREP_PROP_TRUNCATION

(0x1403)  EREP_PROP_CANTSETREPTIM

(0x1404)  EREP_PROP_READONLY


Repository 错误（字母顺序）

请参阅

根据每个错误代码的符号名称，可以作为 HRESULT 返回值的一部分被对象关系库方法返回的错误代码按字母顺序列表如下。这些代码也可以按数值顺序排列。

EREP_BADDRIVER  (0x1002)

EREP_BADNAME  (0x1001)

EREP_BADPARAMS  (0x1000)

EREP_DB_ALREADYCONNECTED  (0x1032)

EREP_DB_CORRUPT  (0x1034)

EREP_DB_DBMSONETHREAD  (0x1033)

EREP_DB_EXISTS  (0x1030)

EREP_DB_NOSCHEMA  (0x1035)

EREP_DB_NOTCONNECTED  (0x1031)

EREP_LOCK_TIMEOUT  (0x1200)

EREP_NOROWSFOUND  (0x1011)

EREP_OBJ_EXISTS  (0x1303)

EREP_OBJ_NONAMINGRELSHIP  (0x1302)

EREP_OBJ_NOTFOUND  (0x1301)

EREP_OBJ_NOTINITIALIZED  (0x1300)

EREP_ODBC_CERROR  (0x1012)

EREP_ODBC_MDBNOTFOUND  (0x1013)

EREP_ODBC_UNKNOWNDRIVER  (0x1015)

EREP_PROP_CANTSETREPTIM  (0x1403)

EREP_PROP_MISMATCH  (0x1400)

EREP_PROP_READONLY  (0x1404)

EREP_PROP_SETINVALID  (0x1401)

EREP_RELSHIP_DUPENAME  (0x1109)

EREP_RELSHIP_EXISTS  (0x1100)

EREP_RELSHIP_INVALIDFLAGS  (0x1107)

EREP_RELSHIP_INVALID_PAIR  (0x1101)

EREP_RELSHIP_NAMEINVALID  (0x1108)

EREP_RELSHIP_NOTFOUND  (0x1102)

EREP_RELSHIP_ORGONLY  (0x1105)

EREP_RELSHIP_OUTOFDATE  (0x1106)

EREP_REPOS_CACHEFULL  (0x1070)

EREP_REPOS_NONEXTDISPID  (0x1071)

EREP_TXN_AUTOABORT  (0x1042)

EREP_TXN_NODATA  (0x1045)

EREP_TXN_NOSETINTXN  (0x1046)

EREP_TXN_NOTXNACTIVE  (0x1041)

EREP_TXN_TIMEOUT  (0x1044)

EREP_TXN_TOOMANY  (0x1043)

EREP_TYPE_COLMISMATCH  (0x1121)

EREP_TYPE_INVALIDSCALE  (0x1125)

EREP_TYPE_INVERTEDNOTALLOWED  (0x1124)

EREP_TYPE_MULTIDEFIFACES  (0x1123)

EREP_TYPE_NOTNULLABLE  (0x1122)

EREP_TYPE_TABLEMISMATCH  (0x1120)

SREP_PROP_TRUNCATION  (0x1402)


EREP_BADPARAMS
EREP_BADPARAMS  (0x1000)

传给对象关系库方法的一个或多个参数无效。更正输入参数，然后重试。


EREP_BADNAME
EREP_BADNAME  (0x1001)

为表或列名提供的名称中包含了无效字符，或为数据库管理系统的保留字。更改名称，然后重试。


EREP_BADDRIVER
EREP_BADDRIVER  (0x1002)

当前安装的 ODBC 驱动程序版本太低，与 Microsoft Repository 不兼容。请升级 ODBC 驱动程序。


EREP_NOROWSFOUND
EREP_NOROWSFOUND  (0x1011)

对象关系数据库的查询操作未产生行。请检查查询的构造是否正确。


EREP_ODBC_CERROR
EREP_ODBC_CERROR  (0x1012)

出现数据库错误；检查错误队列以获得更多信息。查找错误的来源，更正后重试。


EREP_ODBC_MDBNOTFOUND
EREP_ODBC_MDBNOTFOUND  (0x1013)

指定的对象关系数据库不存在或不可访问。请确认此数据库存在并且名称正确，然后重试。


EREP_ODBC_UNKNOWNDRIVER
EREP_ODBC_UNKNOWNDRIVER  (0x1015)

指定的 ODBC 驱动程序无效，或对于对象关系库引擎不可知。请使用与 Microsoft Repository 兼容的 ODBC 驱动程序。请参阅产品版本注释以获得兼容驱动程序的信息。


EREP_DB_EXISTS
EREP_DB_EXISTS  (0x1030)

您创建的对象关系数据库的名称与现有数据库名称相同。如果要使用现有数据库，请用 Open 方法代替 Create 方法。如果不再需要现有数据库，请删除它。否则，请另外选择一个名称，然后重试。


EREP_DB_NOTCONNECTED
EREP_DB_NOTCONNECTED  (0x1031)

您所做的操作需要与打开的对象关系数据库连接，而当前这样的连接不存在。使用 Open 打开适当的对象关系库，然后重试。


EREP_DB_ALREADYCONNECTED
EREP_DB_ALREADYCONNECTED  (0x1032)

您试图建立到对象关系数据库的连接，但此连接已存在。跳过冗余的 Open 方法调用，开始 Open 调用后的交互作用过程。


EREP_DB_DBMSONETHREAD
EREP_DB_DBMSONETHREAD  (0x1033)

您试图访问的对象关系数据库由不支持多线程访问的数据库服务器管理。试图访问的线程与当前具有数据库的打开对象关系库实例的线程不一致。将对象关系数据库移动到支持多线索访问的数据库服务器，或修改程序逻辑以用单线程访问对象关系数据库。


EREP_DB_CORRUPT
EREP_DB_CORRUPT  (0x1034)

对象关系数据库已损坏。请参阅您的数据库服务器文档以确定能有效地还原或重建数据库的设备。


EREP_DB_NOSCHEMA
EREP_DB_NOSCHEMA  (0x1035)

对象关系数据库不包含 Type Information Model 方案。如果您的对象关系库还未填充数据，请用 Create 方法安装 Type Information Model 方案以打开对象关系数据库。如果您的对象关系库已经填充了数据，请从备份件还原数据。


EREP_TXN_NOTXNACTIVE
EREP_TXN_NOTXNACTIVE  (0x1041)

您试图更新对象关系数据库，但是没有活动事务。请将对象关系库更新置于 Begin 和 Commit 事务方法调用之间。


EREP_TXN_AUTOABORT
EREP_TXN_AUTOABORT  (0x1042)

您已为一个打开的对象关系库实例释放了资源，但此对象关系库实例有活动事务。事务已经被取消；所有与事务关联的更改将被撤消。您应在释放打开的对象关系库实例之前完成活动事务（通过 Commit 或 Abort 方法）。


EREP_TXN_TOOMANY
EREP_TXN_TOOMANY  (0x1043)

不能开始新事务，因为超过了并发事务的最大数目。请减少当前执行的事务数目（在同一进程中）。


EREP_TXN_TIMEOUT
EREP_TXN_TIMEOUT  (0x1044)

事务在等待开始的过程中超时。可以增加开始事务的超时值，或等待项变为可用，然后重试。有关改变开始事务超时值的详细内容，请参阅 SetOption 方法。


EREP_TXN_NODATA
EREP_TXN_NODATA  (0x1045)

检索值为空或不存在的属性值。请根据任务的要求做出更改。如果属性值为空，请用特殊的进程处理这种情况。


EREP_TXN_NOSETINTXN
EREP_TXN_NOSETINTXN  (0x1046)

您试图在事务活动时修改当前的事务选项设置。请在结束当前事务后再修改选项，或在开始事务前设置选项。


EREP_REPOS_CACHEFULL
EREP_REPOS_CACHEFULL  (0x1070)

对象关系库缓存已满。如果您正在写入或修改对象关系库数据，并且不能减少事务中的步骤，请考虑设置 TXN_EXCLUSIVE_WRITEBACK 或 TXN_EXCLUSIVE_WRITETHROUGH 事务选项以避免此问题。


EREP_REPOS_NONEXTDISPID
EREP_REPOS_NONEXTDISPID  (0x1071)

您试图向在对象关系库中定义的接口添加成员，但是没有可用的调度标识符值。请将接口分解为几个较小的接口。


EREP_RELSHIP_EXISTS
EREP_RELSHIP_EXISTS  (0x1100)

您试图在对象关系库中创建的关系已存在。可以忽略此错误，或从程序中删除冗余的 Add 或 Insert 方法调用。


EREP_RELSHIP_INVALID_PAIR
EREP_RELSHIP_INVALID_PAIR  (0x1101)

不能在两个对象间添加新关系。这些对象符合的一个（或两个）类不支持此关系类型。请确认关系类型和对象的类无误。检查工具信息模型并确认它支持您所要创建的关系类型。


EREP_RELSHIP_NOTFOUND
EREP_RELSHIP_NOTFOUND  (0x1102)

您试图检索一个不存在的特定的关系，或从一个空集合检索关系。如果有多个用户同时访问对象关系库，一个用户删除了某关系，而另一个用户试图检索此关系，则会出现这种错误。如果集合为空，或指定关系不存在，请用特殊的进程处理这种情况。


EREP_RELSHIP_ORGONLY
EREP_RELSHIP_ORGONLY  (0x1105)

不能在有序集合中移动或插入关系，因为 Move 或 Insert 方法通过从对象而不是主对象调度。请使用主对象在有序集合中移动或插入关系。


EREP_RELSHIP_OUTOFDATE
EREP_RELSHIP_OUTOFDATE  (0x1106)

请求失败，因为您试图更新的有序关系集合已经被另一个进程修改。请刷新集合，然后重试。


EREP_RELSHIP_INVALIDFLAGS
EREP_RELSHIP_INVALIDFLAGS  (0x1107)

不能添加或修改关系集合。标志组合无效，或试图对从集合设置标志值。请确认使用主集合进行操作，并且标志组合有效。有关关系集合标志的详细内容，请参阅 CollectionDefFlags 。


EREP_RELSHIP_NAMEINVALID
EREP_RELSHIP_NAMEINVALID  (0x1108)

您试图为从对象添加指定名称无效的关系。请确认此名称非空，并且不超过允许的最大长度。有关对象关系库文本字符串长度的详细内容，请参阅 Repository 常数。


EREP_RELSHIP_DUPENAME
EREP_RELSHIP_DUPENAME  (0x1109)

您试图添加在集合中名称不唯一的关系，而集合要求唯一的名称。请选择另一个关系名称，或删除已有的同名关系。


EREP_TYPE_TABLEMISMATCH
EREP_TYPE_TABLEMISMATCH  (0x1120)

不能扩展工具信息模型的接口。用于为接口存储属性值的 SQL 表不包含预期列。请检查此表是否损坏，或列被从表中丢弃。请将列还原为原状态，然后重试。


EREP_TYPE_COLMISMATCH
EREP_TYPE_COLMISMATCH  (0x1121)

属性值不能在已存储数据类型和调用者指定数据类型之间进行转换。请检查调用者指定的数据类型，以确认其可以被转换为符合相关属性定义对象所定义的存储数据类型。


EREP_TYPE_NOTNULLABLE
EREP_TYPE_NOTNULLABLE  (0x1122)

属性定义不允许设置属性值为空值。请选择一个允许的属性值，然后重试更新操作。


EREP_TYPE_MULTIDEFIFACES
EREP_TYPE_MULTIDEFIFACES  (0x1123)

试图为类定义设置多个接口为缺省接口。请选择其中的一个接口作为缺省接口。


EREP_TYPE_INVERTEDNOTALLOWED
EREP_TYPE_INVERTEDNOTALLOWED  (0x1124)

此接口不允许使用 PROPERTY_INVERTED 选项向接口添加属性。请更正属性定义或接口定义。


EREP_TYPE_INVALIDSCALE
EREP_TYPE_INVALIDSCALE  (0x1125)

您试图设置属性定义的 SQLScale 属性为无效值。请更正此值，然后重试。


EREP_LOCK_TIMEOUT
EREP_LOCK_TIMEOUT  (0x1200)

获取锁定对象关系库的项超时。增加锁定超时值，或等待项变为可用，然后重试。有关修改锁定超时值的详细内容，请参阅 SetOption 方法。


EREP_OBJ_NOTINITIALIZED
EREP_OBJ_NOTINITIALIZED  (0x1300)

试图与未经对象关系数据库中的有效数据初始化的对象关系库对象进行交互作用。请确认在与之交互作用前程序中所有的对象关系库对象已被初始化。


EREP_OBJ_NOTFOUND
EREP_OBJ_NOTFOUND  (0x1301)

您试图检索的对象关系库对象不存在。在以下两种情况下，将会出现这种错误：多个用户同时访问对象关系库，某个用户在另一个用户试图检索对象时删除了此对象；或某一用户使用的对象标识符在原先与对象关系库进行交互作用时已保存，但在获取此对象标识符与试图检索此对象关系库对象的时间间隔内被删除。若对象关系库对象不存在，请用特殊的进程处理此情况。


EREP_OBJ_NONAMINGRELSHIP
EREP_OBJ_NONAMINGRELSHIP  (0x1302)

不能检索与对象关系库项相关的名称，因为此项不是命名关系的一部分。请检查工具信息模型以查看是否正确定义了关系类型。如果是，并且关系类型没有指定要命名的从对象，则在请求对象关系库的项名称前，向程序中加入逻辑以检查命名关系的存在性。


EREP_OBJ_EXISTS
EREP_OBJ_EXISTS  (0x1303)

您试图创建的对象关系库对象已存在。如果多个用户试图向对象关系库添加相同的对象，则会出现这种情况。如果不是这种情况，请从程序中消除冗余的 Add 、CreateObject 或 Insert 方法调用。


EREP_PROP_MISMATCH
EREP_PROP_MISMATCH  (0x1400)

不能更新对象关系库中的属性值。输入属性的数据类型不能转换为存储数据类型。更正输入属性的数据类型，然后重试。


EREP_PROP_SETINVALID
EREP_PROP_SETINVALID  (0x1401)

您试图象修改属性一样修改集合。Microsoft Repository 不支持此项操作。


SREP_PROP_TRUNCATION
SREP_PROP_TRUNCATION  (0x1402)

设置属性值的请求已经完成；但属性值过长，已被截断。


EREP_PROP_CANTSETREPTIM
EREP_PROP_CANTSETREPTIM  (0x1403)

您试图修改作为 Type Information Model 一部分的定义对象的属性。不支持对 Type Information Model 属性作此类修改。


EREP_PROP_READONLY
EREP_PROP_READONLY  (0x1404)

不能设置属性值，因为此属性是只读属性。


Repository 词汇表

A [image] C

标注属性

COM 对象

成员

充填

从对象

从集合

从集合类型

D

定义

对象

对象标识符

对象关系库

对象关系库对象

对象关系库实例

对象关系库项

对象关系库引擎

对象关系类型库

对象关系数据库

F [image] G

方法

工具信息

工具信息模型

关系

关系类型

J [image] L

集合

集合类型

接口

接口定义

类

类型

类型库

类型信息模型

M [image] Q

MDO 模型

命名关系

命名集合

目标对象

内部标识符

全局标识符

缺省接口

R [image] W

RepVB

实例

属性

属性值

微软开发对象模型

唯一命名关系

唯一命名集合

X [image] Z

项

有序关系

有序集合

元数据

源对象

主对象

主集合

主集合类型

转换属性


标注属性 <定义>
标注属性

一种特定对象关系库对象的类，可以与单个对象关系库对象或关系相连。非标注属性可以为所有类对象定义，但不能与关系相连。


类 <定义>
类

COM 对象的定义。类是用来创建对象实例的模板，并指定对象实现的接口。


集合 <定义>
集合

1. 连接到公共源对象的同类型的一组对象关系库关系。

2. 通过相同关系类型的实例与公共源对象相连的一组对象关系库对象。请参阅主集合、从集合。

3. 从查询返回对象关系库的一组项。


集合类型 <定义>
集合类型

某个集合的类型。对象在集合关系中扮演一定的角色（即，主对象或从对象），集合类型即由与此相关的关系类型决定。请参阅主集合类型、从集合类型。


COM 对象 <定义>
COM 对象

符合 COM (Component Object Model) 模型的对象。COM 对象实现支持对象交互作用的 COM 接口以及针对该对象类的接口。所有对象关系库对象都是 COM 对象的实例。


缺省接口 <定义>
缺省接口

类的主接口。Visual Basic 允许用户直接引用缺省接口的成员，而不必用名称指定该接口。


定义 <定义>
定义

有时用作“类型”的同义词，例如，“关系定义”是“关系类型”的同义词。


从集合 <定义>
从集合

具有公共从对象的对象关系库项的集合。


从集合类型 <定义>
从集合类型

从集合的类型。从集合为包含公共从对象的对象关系库项的集合。


从对象 <定义>
从对象

关系中处于从属地位的对象关系库对象。考虑关系：Project-Has-Component 。Project 处于关系的主要地位，而 Component 处于关系的从属地位。


全局标识符 <定义>
全局标识符

全局唯一的标识符或 GUID 。用来唯一标识 COM 类和接口。


实例 <定义>
实例

符合特定定义、类或模板的项。例如，类的实例是对象，关系类型的实例是关系。


接口 <定义>
接口

一组已定义的属性、方法和集合，形成行为和数据的逻辑分组。类由它们实现的接口来定义。同一个接口可以由许多不同的类实现。


接口定义 <定义>
接口定义

接口的同义词。在对象关系库中对接口的定义进行操作时使用此说法，目的是与在程序执行过程中符合的接口相区别。


内部标识符 <定义>
内部标识符

在对象关系库内部标识对象。内部标识符代表对象标识符的一种紧缩格式。内部标识符只需在单个对象关系库中保证唯一即可，而对象标识符必须在所有对象关系库中都保证唯一。


转换属性 <定义>
转换属性

标注属性的同义词。


项 <定义>
项

对象关系库对象或关系。对象关系库提供了实现 IRepositoryItem 接口的类，此类的实例也是项。


MDO 模型 <定义>
MDO 模型

微软开发对象模型 (Microsoft Development Objects Model)。


成员 <定义>
成员

已定义为接口一部分的属性、方法或集合类型。


元数据 <定义>
元数据

描述数据的数据。


方法 <定义>
方法

定义为接口成员的可调用函数。


微软开发对象模型 <定义>
微软开发对象模型

简称 MDO 模型 (Microsoft Development Objects Model) ，是 Repository 提供的工具信息模型，用于建立 Visual Basic 工程的模型。


命名关系 <定义>
命名关系

提供从对象名称的对象关系库关系。


命名集合 <定义>
命名集合

对象关系库项的集合。与其中的项相关的关系需要对其从对象命名。


对象 <定义>
对象

类的实例。对象与对象关系库对象不同。所有对象关系库对象都是对象，而并非所有对象都是对象关系库对象。请参阅 COM 对象、对象关系库对象。


对象标识符 <定义>
对象标识符

对象关系库中对象的标识。对象标识符必须在所有对象关系库中都保证唯一。请参阅内部标识符。


主集合 <定义>
主集合

包含公共主对象的对象关系库项的集合。


主集合类型 <定义>
主集合类型

主集合的类型。主集合是包含公共主对象的对象关系库项的集合。


主对象 <定义>
主对象

在关系中处于主要地位的对象关系库对象。考虑关系：Project-Has-Component 。Project 处于此关系的主要地位，而 Component 处于关系的从属地位。


充填 <定义>
充填

用于提供实例。例如，可以用工程、部件和引用充填 MDO 模型。


属性 <定义>
属性

定义为接口成员的标量性质。属性有一定的数据类型，例如，字符串或 32 位整数。属性是接口定义的一部分。属性值是属性的实例。


属性值 <定义>
属性值

为接口属性的特定实例储存的值。


关系 <定义>
关系

两个对象（主对象和从对象）之间的逻辑联系。关系通过对象关系库成为 COM 对象的示例。


关系类型 <定义>
关系类型

某种关系的定义。


对象关系库 <定义>
对象关系库

Repository，包含数据信息模型的数据库，与管理数据库的可执行软件相关联，或指所安装的 Microsoft Repository 软件。


对象关系库数据库 <定义>
对象关系库数据库

用来长期保存工具信息和类型信息模型的数据库。


对象关系库引擎 <定义>
对象关系库引擎

面向对象的 Microsoft Repository 软件，给管理者提供对对象关系数据库的支持，给客户提供对对象关系数据库的访问。


对象关系库实例 <定义>
对象关系库实例

Repository 类的实例。对象关系库实例代表与特定对象关系数据库的开放式连接。

注意   为了避免混淆 Repository 类的实例和 RepositoryObject 类的实例，Repository 类的实例不引用对象关系库对象。


对象关系库项 <定义>
对象关系库项

一个对象关系库对象或关系。


对象关系库对象 <定义>
对象关系库对象

RepositoryObject 类的实例。所有对象关系库对象都是 COM 对象，但并非所有 COM 对象都是对象关系库对象。请参阅对象、COM 对象。


对象关系库类型库 <定义>
对象关系类型库

用来分组构成工具信息模型的各种定义对象。对象关系库引擎使用对象关系类型库提供对自动化的支持。对象关系类型库与类型库不同，请参阅类型库。


RepVB <定义>
RepVB

为 Visual Basic 设计的 Microsoft Repository 加载宏模块。它用与客户的 Visual Basic 工程相关的工具信息充填和维护 MDO 模型。


有序关系 <定义>
有序关系

在从对象集合中指出从对象的精确位置的对象关系库关系。


有序集合 <定义>
有序集合

对象关系库项的集合，其中的项与支持对从对象精确排序的关系类型相关。


源对象 <定义>
源对象

单个对象，特定集合中的所有对象通过同类型的关系与之相连。对从集合而言，源对象是从对象。对主集合而言，源对象是主对象。


目标对象 <定义>
目标对象

特定集合中与源对象通过关系相连的一个对象。对从集合而言，目标对象是主对象。对主集合而言，目标对象是从对象。


工具信息 <定义>
工具信息

工具信息模型的实例数据。


工具信息模型 <定义>
工具信息模型

存储在对象关系库中的对象模型。使用类型信息模型的基本元素（关系类型、类、接口、属性、方法和集合类型）构成。


类型 <定义>
类型

某种数据的定义。


类型信息模型 <定义>
类型信息模型

对象关系库用来存储工具信息模型的对象模型。


类型库 <定义>
类型库

包含显露的对象、属性、方法和集合的 Automation 标准说明的文件或其他文件的部件。对象库 (.OLB) 文件包含类型库。保存为独立文件的类型库使用扩展名 .TLB 。


唯一命名集合 <定义>
唯一命名集合

对象关系库项的集合，与其相关的关系类型要求对从对象的命名唯一。


唯一命名关系 <定义>
唯一命名关系

对象关系库关系，它提供给从对象的名称，该名称在从对象集合中唯一。


IAnnotationalProps 接口

请参阅         属性         方法         集合

标注属性是对象关系库属性，它可以与单个对象关系库对象或关系相关联。将普通属性定义为对象关系库接口的成员时，实现此接口的所有对象都使用此属性。普通属性不能与对象关系库关系相关联。

要向特定对象关系库对象附加标注属性值，必须符合两个条件：

1. 对象必须符合显露 IAnnotationalProps 接口的类。

2. 必须存在为 IAnnotationalProps 接口属性定义的属性定义对象，并且该接口属性必须与您的标注属性名称相匹配。

如果满足这两个条件，通过使用 IReposProperty::put_Value 方法设置特定对象标注属性的值，可以向对象附加标注属性值。

应用

IAnnotationalProps 接口用于访问对象关系库对象或关系的标注属性。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息数（ 0 或 1 ）。
Invoke	提供访问 Automation 对象显露的属性和方法。
IrepositoryDispatch 方法	描述
get_Properties	检索 IreposProperties 接口指针。IreposProperties 接口提供对 Properties 集合的访问。
说明

Repository 将标注属性当作字符串数据来维护。标注属性的创建者和使用者必须使用属性数据类型通过 VARIANT 结构获取和设置属性值。如果使用非字符串的数据类型时，Repository 将进行适当的数据转换。

因为对象关系库中的所有标注属性都必须定义为 IannotationalProps 接口的成员，所以所有标注属性名称都共享同一命名空间。选择标注属性的名称时，应尽可能使名称具体和唯一。


INamedObject 接口

请参阅         属性         方法         集合

通常通过命名关系使名称与对象关系库对象相关联。这种关系的集合提供了名称的范围，并可以要求其中所有名称唯一。给定对象处于单个命名关系的从属地位时，这是命名对象的较好方法。

如果工具信息模型中包含的某个类不处于命名关系类型中的从属地位，或者该类同时处于多个关系类型中的从属地位，而且没有单独的类型是命名关系类型的明显选项，那么可以向该类附加名称属性。通过定义类实现 INamedObject 接口可以完成附加操作。如果类实现 INameObject 接口，在请求检索或设置对象名称时，Repository 将使用该接口。

应用

INamedObject 接口用于访问显露该接口的对象关系库对象的 Name 属性。

属性

属性	描述
Name	对象名称。
方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射为相应的调度标识符组。
GetTypeInfo	检索可用于获取标识符类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IReposProperties 接口提供对 InamedObject 接口显露的永久成员的访问。
说明

所有标准对象关系库引擎或类型信息模型都不实现 INamedObject 接口。但是，如果 INamedObject 接口是由对象关系库对象显露的，对象关系库就可以使用该接口。

当对象关系库对象调用 IRepositoryItem::get_Name 方法时，对象关系库将执行下列步骤以检索名称：

1. 如果对象显露 INamedObject 接口，则对象关系库引擎返回 Name 属性的值。

2. 否则，对象关系库引擎搜索一个命名关系，在此关系中当前对象是从对象。

3. 如果找到这样的关系，对象关系库引擎返回与此关系相关联的名称。

4. 如果对象不处于命名关系的从属地位，则对象关系库引擎返回空名称。

当对象关系库对象调用 IRepositoryItem::put_Name 方法时，对象关系库引擎将执行下列步骤以设置名称：

1. 如果当前对象在命名关系中是从对象，则对象关系库设置所有这样的命名对象的 Name 属性值。

2. 如果对象显露 INamedObject 接口，对象关系库引擎也设置附加到该接口的 Name 属性值。


INamedObject Name 属性

请参阅

此属性包含显露 INamedObject 接口的对象的名称。名称最多可以包含 200 字节。

调度标识符：DISPID_ObjName (68)

属性数据类型：String


ISummaryInformation 接口

请参阅         属性         方法         集合

ISummaryInformation 接口为显露此接口的对象维护 Comments 和 ShortDescription 属性。

应用

ISummaryInformation 接口用于访问对象关系库对象的 Comments 和 ShortDescription 属性。

属性

属性	描述
Comments	对象的基本注释。
ShortDescription	对象的简要描述。
方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IreposProperties 接口提供对 IsummaryInformation 接口显露的属性的访问。


ISummaryInformation Comments 属性

请参阅

此属性包含对象的基本注释。在此属性中最多可以储存 65,536 字节的信息。

调度标识符：DISPID_Comments (66)

属性数据类型：Long varchar


ISummaryInformation ShortDescription 属性

请参阅

此属性包含对象的简短描述。在此属性中最多可以储存 255 字节的信息。

调度标识符：DISPID_ShortDesc (67)

属性数据类型：varchar


IEnumRepositoryErrors 接口

请参阅         属性         方法         集合

此接口提供枚举对象关系库队列中错误组的途径。

应用

IEnumRepositoryErrors 接口用于访问对象关系库错误队列。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IenumRepositoryErrors 方法	描述
Clone	复制当前枚举。
Next	返回随后的一个或多个元素。
Reset	重设枚举到开头。
Skip	跳过随后的一个或多个元素。


IEnumRepositoryErrors::Clone

请参阅

此方法用于复制 COM 枚举对象。在复制完成后，这两个枚举操作互相独立。

HRESULT Clone( IEnumRepositoryErrors   **ppIEnum );

参数

*ppIEnum [out]
新枚举对象的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IEnumRepositoryErrors::Next

请参阅

此方法用于从枚举集合中检索随后的一个或多个元素。此方法有两种变型。

HRESULT Next(
ULONG          iCount,
REPOSERR   *psErrors,
ULONG          *piFetched
);

HRESULT Next( IErrorInfo   **ppIErrorInfo );

参数

iCount [in]
调用者需要的元素个数。

*psErrors [out]
检索的项的对象关系库错误信息结构数组。

*ppIErrorInfo [out]
接口指针，指向错误队列中第一个元素的错误信息对象。

*piFetched [out]
调用者实际取的元素个数。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IEnumRepositoryErrors::Reset

请参阅

此方法用于将枚举重设到枚举队列的开头。

HRESULT Reset( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IEnumRepositoryErrors::Skip

请参阅

此方法用于跳过枚举集合中随后的一个或多个元素。

HRESULT Skip( ULONG      iCount );

参数

iCount [in]
要跳过的元素个数。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IObjectCol 接口

请参阅         属性         方法         集合

对象集合是一组可枚举的对象关系库对象。对象关系库支持两种对象集合：

1. 与关系集合中的关系相对应的从对象的集合。使用 ITargetObjectCol 接口管理这种集合。

2. 对象关系库中符合特定类或显露特定接口的所有对象的集合。

应用

IObjectCol 接口用于枚举符合特定类或显露特定接口的对象关系库对象集合。用此接口可以：

•	获取集合中对象的计数。

•	枚举集合中的对象。

•	检索集合中某个对象的 IRepositoryObject 指针。

•	刷新对象集合的缓存图像。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用来获取标识符类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IobjectCol 方法	描述
get_Count	检索集合中对象的计数。
get_Item	检索指定集合对象的 IrepositoryObject 接口指针。
_NewEnum	检索集合的枚举对象接口指针。
Refresh	刷新对象集合的缓存图像。


IObjectCol::get_Count

请参阅

此方法用于检索对象集合中对象关系库对象的个数。

HRESULT get_Count(  long    *piCount  );

参数

*piCount [out]
集合中对象的个数。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IObjectCol::_NewEnum

请参阅

此方法用于检索对象集合的枚举接口指针。该接口是标准 Automation 接口。它支持 Clone 、Next 、Reset 和 Skip 方法。可用枚举接口遍历集合对象。

HRESULT _NewEnum(
IUnknown    **ppIEnumObjects
);

参数

*ppIEnumObjects [out]
枚举接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IObjectCol::get_Item

请参阅

此方法用于从集合中检索指定对象。

HRESULT get_Item(
VARIANT                  sItem,
IRepositoryObject   **ppIReposObj
);

参数

sItem [in]
标识集合中要检索的项。此参数可以是项的索引、名称或对象标识符。

*ppIReposObj [out]
集合中指定对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

如果对象是命名关系的从对象，则可以按名称查询。


IObjectCol::Refresh

请参阅

此方法用于刷新集合的缓存图像。集合中所有未改变数据的对象都被从缓存中刷新。

HRESULT Refresh( long    iMilliseconds );

参数

iMilliseconds [in]
在缓存中停留的时间超过 iMilliseconds 微秒而未改变的集合数据将被刷新。若设置为零，则刷新所有未改变的数据。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


ITargetObjectCol 接口

请参阅         属性         方法         集合

目标对象集合是通过关系集合附加到特定源对象的一组对象关系库对象。

应用

ITargetObjectCol 接口用于管理属于特定关系集合的对象关系库对象。用此接口可以：

•	获取集合中对象的计数。

•	枚举集合中的对象。

•	向集合中添加对象或从集合中删除对象。

•	如果集合是有序的，则将对象放到集合序列的指定位置。

•	检索集合中某个对象的 IRepositoryObject 指针。

•	获取集合类型。

•	检索集合源对象的接口指针。

•	刷新目标对象集合的缓存图像。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用来获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IobjectCol 方法	描述
Count	检索集合中对象的计数。
_NewEnum	检索集合的枚举对象接口指针。此接口是标准 Automation 枚举对象接口。它支持 Clone 、Next 、Reset 和 Skip 方法。
Item	检索指定集合对象的 IRepositoryObject 接口指针。
Refresh	刷新目标对象集合的缓存图像。
ItargetObjectCol 方法	描述
Add	向集合中添加对象。
get_Source	检索集合中源对象的接口指针。
get_Type	检索集合中目标对象的对象标识符。
Insert	向有序集合的指定位置插入对象。
Move	在有序集合中移动对象。
Remove	从集合中删除对象。
说明

ITargetObjectCol 接口与 IRelationshipCol 接口很相似。目的在于使用对象时，请使用 ITargetObjectCol 接口。如果目的在于使用对象间关系，则使用 IRelationshipCol 接口。


ITargetObjectCol::Add

请参阅

当集合中对象的次序不重要时，可用此方法向集合中添加新项。一个新关系的接口指针被返回调用者。

HRESULT Add(
IDispatch         *plReposObj,
BSTR               Name,
IRelationship   **pplRelship
);

参数

*plReposObj [in]
要添加到集合中的对象关系库对象。

Name [in]
要添加到集合中的对象的名称。

*pplRelship [out]
新增对象的关系接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

当集合的源对象同时又是集合的主对象时，对象只能添加到一个集合中。


ITargetObjectCol::get_Source

请参阅

此方法用于检索集合源对象的 IRepositoryObject 接口对象指针。

HRESULT get_Source( IRepositoryObject   **ppIInterface );

参数

*ppIInterface [out]
源对象的 IRepositoryObject 接口的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


ITargetObjectCol::get_Type

请参阅

此方法用于检索集合的类型，也就是说，它返回集合定义对象的对象指针。

HRESULT get_Type( VARIANT   *pColDefObjId );

参数

*pColDefObjId [out]
集合定义对象的对象指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


ITargetObjectCol::Insert

请参阅

此方法用于向集合序列的指定位置添加对象。一个新关系的接口指针被返回调用者。

HRESULT Insert(
IDispatch        *pIReposObj,
long                 iIndex,
BSTR               Name,
IRelationship  **ppIRelship
);

参数

*pIReposObj [in]
要插入集合序列的对象关系库对象。

iIndex [in]
要插入对象的序列位置的索引。如果此序列位置中已经存在其他对象，则新对象插入现有对象之前。

Name [in]
对象的名称。如果对象不是按名称查询的，请将此参数设置为空字符串。

*ppIRelship [out]
IRelationship 接口指针，指向新对象与集合的主对象之间的关系。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

当集合的源对象同时又是集合的主对象时，对象只能插入一个集合中。

此方法只能用于有序集合。


ITargetObjectCol::Move

请参阅

此方法用于在集合序列中移动对象。

HRESULT Move( long   iIndexFrom, long   iIndexTo );

参数

iIndexFrom [in]
集合序列中要移动对象的索引。

iIndexTo [in]
对象要移动到的序列位置的索引。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

此方法只能用于有序集合。


ITargetObjectCol::Remove

请参阅

此方法用于从集合中删除指定对象，对象的关系实例也被删除。

HRESULT Remove( VARIANT    sItem );

参数

sItem [in]
标识要从集合中检索的项。此参数可以是项的索引、名称或的对象标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

如果对象是命名关系的从对象，则只能按名称删除。


IReposProperties 接口

请参阅         属性         方法         集合

IReposProperties 用于提供对 Properties 集合的访问。Properties 集合提供一个便利的机制，使得在不知道接口的全部成员名称时，也可以枚举其所有永久属性和永久集合。

在创建代表工具信息模型中对象的 Automation 对象实例时，如果此对象符合一个没有自定义实现的类（也就是说，没有提供类的软件实现），对象关系库将提供一个接口实现。此接口实现使用 IRepositoryDispatch 作为调度接口。此调度接口包含一个附加的 get_Properties 方法，该方法返回 IReposProperties 接口指针。

这使 Automation 程序员能使用这样的语法：

Dim firstProperty As ReposProperty

Set firstProperty = repObject.Properties(1)

第二条语句分析如下：

1. 在此例中，repObject 是用到其缺省实现的对象关系库对象的 Automation 实例。

2. Properties 项是由 IRepositoryDispatch 调度接口提供的 get_Properties 方法的 Automation 级名称。

3. get_Properties 方法返回 IReposProperties 接口的接口指针。

4. IReposProperties 接口的缺省方法是 get_Item 方法，它返回 Properties 集合中指定属性对象的 IReposProperty 接口指针。

这样，Automation 程序员可以通过 firstProperty 对象变量来访问集合中的第一个属性。

应用

在没有自定义的实现，并且不知道对象的接口显露哪些成员的情况下，IReposProperties 接口用于访问对象关系库对象的属性和集合。用 IReposProperties 接口可以：

•	获取集合的成员计数。

•	检索指向集合中成员的 IReposProperty 接口指针。

•	枚举集合中的成员。

方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IReposProperties 方法	描述
get_Count	检索集合中的成员计数。
get_Item	检索集合中指定成员的 IReposProperty 接口指针。
_NewEnum	检索集合的标准 Automation 枚举对象接口指针。
说明

Properties 集合中只有永久成员（即，存储在对象关系库中的成员）。


IReposProperties::get_Count

请参阅

此方法用于检索 Properties 集合的永久成员（属性和集合）的计数。

HRESULT get_Count( long    *piCount );

参数

*piCount [out]
集合中的成员数。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposProperties::get_Item

请参阅

此方法用于从 Properties 集合中检索指定的成员。

HRESULT get_Item(
VARIANT              sItem,
IReposProperty   **ppIReposProperty
);

参数

sItem [in]
标识要从集合中检索的项。此参数可以是成员的索引或名称。.

*ppIReposProperty [out]
指定的集合成员的 IReposProperty 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposProperties::_NewEnum

请参阅

此方法用于检索 Properties 集合的枚举对象接口指针。此接口是一个标准的 Automation 枚举对象接口。它支持 Clone 、Next 、Reset 和 Skip 方法。可用枚举对象接口遍历集合成员。

HRESULT _NewEnum( IUnknown   **ppIEnumProps );

参数

*ppIEnumProps [out]
枚举对象接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposProperty 接口

请参阅         属性         方法         集合

IReposProperty 接口用于提供对工具信息模型接口的永久成员（属性或集合）的访问。

在创建代表工具信息模型中对象的 Automation 对象实例时，如果此对象符合一个没有自定义实现的类（也就是说，没有提供类的软件实现），对象关系库将提供接口实现。此接口实现使用 IRepositoryDispatch 作为调度接口。

IRepositoryDispatch 接口是增强的 IDispatch 接口。除所有标准 IDispatch 方法，IRepositoryDispatch 还提供对 Properties 集合的访问。Properties 集合提供一个便利的机制，用于枚举接口的所有永久属性和永久集合。IReposProperty 接口可用于访问 Properties 集合中的个别成员。

这使 Automation 程序员能使用这样的语法：

Dim firstPropName As String

Let firstPropName = repObject.Properties(1).Name

第二条语句分析如下：

1. 在此例中，repObject 是用到其缺省实现的对象关系库对象的 Automation 实例。

2. Properties 项是由 IRepositoryDispatch 调度接口提供的 get_Properties 方法的 Automation 级名称。

3. get_Properties 方法返回 IReposProperties 接口的接口指针。

4. IReposProperties 接口的缺省方法是 get_Item 方法，它返回 Properties 集合中指定属性对象的 IReposProperty 接口指针。

5. Name 项是由 IReposProperty 接口提供的 get_Name 方法的 Automation 级名称。

这样，Automation 程序员可以通过 firstProperty 对象变量来访问集合中的第一个属性。

应用

在没有自定义的实现，并且不知道成员的类型和名称的情况下，IReposProperty 接口用于访问永久接口成员。用此接口可以：

•	检索属性名或集合名。

•	检索属性类型或集合类型。

•	获取或设置属性值。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IReposProperty 方法	描述
get_Type	检索永久接口成员的类型。
get_Name	检索永久接口成员的名称。
get_Value	检索永久接口成员的值。
put_Value	设置永久属性的值。
说明

通过 IReposProperty 接口只能访问永久成员（即，存储在对象关系库中的成员）。


IReposProperty::get_Name

请参阅

此方法用于检索永久接口成员（属性或集合）的名称。

HRESULT get_Name( BSTR    *pName );

参数

*pName [out]
成员名。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposProperty::get_Type

请参阅

此方法用于检索永久属性或永久集合的类型；即，它返回成员所符定义对象的对象标识符。

HRESULT get_Type( VARIANT   *psTypeId );

参数

*psTypeId [out]
成员的定义对象的对象标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposProperty::get_Value

请参阅

此方法用于检索永久接口成员（属性或集合）的值。如果成员是一个集合，则检索值是一个指针，它指向支持该集合类型的接口。

HRESULT get_Value( VARIANT   *psValue );

参数

*psValue [out]
属性值。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposProperty::put_Value

请参阅

此方法用于设置永久接口属性的值。输入参数的类型转换成属性的存储数据类型。如果转换不成功，此方法返回错误值。

HRESULT put_Value( VARIANT   sValue );

参数

sValue [in]
要设置的属性值。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

不能设置只读属性或只读集合的值。


IRelationship 接口

请参阅         属性         方法         集合

关系用于连接对象关系数据库中的两个对象。关系有一个主对象，一个从对象，以及一组属性。每个关系都符合一个特定的关系类型。

应用

IRelationship 接口用于操作关系，或检索关系的源对象、目标对象、主对象或从对象。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。 IreposProperties 接口提供对 Properties 集合的访问。
IRepositoryItem 方法	描述
Delete	删除对象关系库的项。
get_Interface	检索指定的项接口的接口指针。
get_Name	检索项的名称。
get_Repository	检索打开的对象关系库项实例的 IRepository 接口指针。
get_Type	检索项的类型。
Lock	锁定项。
put_Name	设置项的名称。
Refresh	刷新项的缓存图像。
IRelationship 方法	描述
get_Destination	检索从对象的接口指针。
get_Origin	检索主对象的接口指针。
get_Source	检索源对象的接口指针。
get_Target	检索目标对象的接口指针。


IRelationship::get_Destination

请参阅

用于检索关系的从对象的 IRepositoryObject 接口指针。

HRESULT get_Destination(
IRepositoryObject  **ppIReposObj
);

参数

*ppIRepObj [out]
对象关系库从对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationship::get_Origin

请参阅

用于检索关系的主对象的 IRepositoryObject 接口指针。

HRESULT get_Origin(
IRepositoryObject  **ppIRepObj
);

参数

*ppIRepObj [out]
对象关系库主对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationship::get_Source

请参阅

用于检索关系的源对象的 IRepositoryObject 接口指针。

HRESULT get_Source(
IRepositoryObject  **ppIRepObj
);

参数

*ppIRepObj [out]
对象关系库源对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationship::get_Target

请参阅

用于检索关系的目标对象的 IRepositoryObject 接口指针。

HRESULT get_Target(
IRepositoryObject  **ppIRepObj
);

参数

*ppIRepObj [out]
对象关系库目标对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationshipCol 接口

请参阅         属性         方法         集合

关系集合是对象关系库中一组关系的集合，其中的关系将特定的对象关系库源对象与一组（一个或多个）目标对象相连。集合中的所有关系必须符合同一关系类型。

应用

IRelationshipCol 接口用于管理特定关系集合中的对象关系库关系。用此接口可以：

•	获取集合中的关系计数。

•	枚举集合中的关系。

•	向集合中添加和从集合中删除关系。

•	如果集合是顺序的，向集合序列的指定位置插入关系。

•	检索集合中关系的 IRelationship 指针。

•	获得集合定义对象的标识符。

•	检索集合源对象的接口指针。

方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRelationshipCol 方法	描述
Add	向集合中添加关系。
get_Count	检索集合中的关系计数。
_NewEnum	检索集合的枚举集合接口指针。
get_Source	检索集合源对象的接口指针。
get_Type	检索集合定义对象的对象标识符。
Insert	在顺序集合的指定位置插入关系。
get_Item	检索指定关系的 Irelationship 接口指针。
Move	在有序集合中移动关系。
Refresh	刷新关系集合的缓存图像。
Remove	删除集合中的关系。
说明

IRelationshipCol 接口与 ITargetObjectCol 接口非常相似。请用 IRelationshipCol 接口处理关系，而用 ITargetObjectCol 接口处理对象。


IRelationshipCol::Add

请参阅

此方法用于在集合中关系的顺序不重要时，向对象关系库关系集合中添加新项。新关系的接口指针将被返回调用者。

HRESULT Add(
IDispatch         *plReposObj,
BSTR                Name,
IRelationship   **pplRelship
);

参数

*plReposObj [in]
待加入关系集合的关系的对象。

Name [in]
通过新关系附加到对象上的名称。

*pplRelship [out]
新添加关系的 IRelationship 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

只有当集合的源对象同时也是它的主对象时，关系才能添加到此集合中。


IRelationshipCol::get_Count

请参阅

此方法用于检索关系集合的关系个数。

HRESULT get_Count(
long   *piCount
);

参数

*piCount [out]
集合中的关系数。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationshipCol::_NewEnum

请参阅

此方法用于检索关系集合的枚举集合接口指针。该接口是标准 Automation 枚举对象接口。它支持 Clone 、Next 、Reset 和 Skip 方法。可以通过此枚举对象接口遍历集合中的关系。

HRESULT _NewEnum(
IUnknown    **ppIEnumRelships
);

参数

*ppIEnumRelships [out]
枚举对象的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationshipCol::get_Source

请参阅

此方法用于检索集合的源对象的接口指针。

HRESULT get_Source(
IRepositoryObject   **ppIInterface
);

参数

*ppIInterface [out]
源对象所需接口的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationshipCol::get_Type

请参阅

此方法用于检索集合的类型，即返回集合定义对象的对象标识符。

HRESULT get_Type(
VARIANT    *pColDefObjId
);

参数

*pColDefObjId [out]
集合定义对象的对象标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationshipCol::Insert

请参阅

此方法用于向集合序列的指定位置添加关系。新关系的接口指针被返回调用者。

HRESULT Insert(
IDispatch         *pIReposObj,
long                  iIndex,
BSTR                Name,
IRelationship   **ppIRelship
);

参数

*pIReposObj [in]
要通过新关系插入集合序列的对象关系库对象。

iIndex [in]
待插入关系的序列位置的索引。如果此序列位置上已有另一个关系，则新关系插入现有关系的前面。

Name [in]
通过新关系插入的对象的名称

*ppIRelship [out]
新关系的 IRelationship 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

只有当集合的源对象同时也是它的主对象时，关系才能添加到此集合中。

此方法仅适用于有序集合。


IRelationshipCol::get_Item

请参阅

此方法用于从集合中检索指定的关系。

HRESULT get_Item(
VARIANT          sItem,
IRelationship   **ppIRelship
);

参数

sItem [in]
标识要从集合中检索的项。此参数可以是项的索引、名称或对象标识符。

*ppIRelship [out]
集合中指定关系的 IRelationship 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

此方法的一个变型用从对象的名称指定关系，它仅适用于对象名唯一的集合。


IRelationshipCol::Move

请参阅

此方法用于在集合序列内部移动关系。

HRESULT Move(
long    iIndexFrom,
long    iIndexTo
);

参数

iIndexFrom [in]
要移动的关系在集合序列中的索引。

iIndexTo [in]
关系要移到的序列位置的索引。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

此方法仅适用于有序集合。


IRelationshipCol::Refresh

请参阅

此方法用于刷新集合的缓存图像。集合中关系的所有未修改数据都将被从缓存中刷新。

HRESULT Refresh( long    iMilliseconds );

参数

iMilliseconds [in]
在缓存中超过 iMilliseconds 毫秒而未改变的所有集合数据将被刷新。若设置为零，则刷新所有未修改数据。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRelationshipCol::Remove

请参阅

此方法用于从集合中删除指定的关系。关系的从对象不被删除。

HRESULT Remove( VARIANT    sItem );

参数

sItem [in]
标识要从集合删除的项。此参数可以是项的索引或名称。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

只有命名唯一的关系才能按名称删除。


IRepository 接口

请参阅         属性         方法         集合

定义工具信息模型时，模型的类、关系、属性和集合存储在对象关系库中。同一个对象关系库可以存储多个工具信息模型。

应用

对象关系库接口用于创建和访问对象关系数据库。也可通过对象关系库接口创建和访问对象关系数据库中的对象。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepository 方法	描述
Create	创建对象关系数据库。
CreateObject	创建新的对象关系库对象。
get_Object	检索对象关系库对象的 IrepositoryObject 接口指针。
get_RootObject	检索对象关系库根对象的 IRepositoryObject 接口指针。
get_Transaction	检索对象关系库实例的 IRepositoryTransaction 接口指针。
InternalIDToObjectID	将内部标识符转换成对象标识符。
ObjectIDToInternalID	将对象标识符转换成内部标识符。
Open	打开对象关系数据库。
Refresh	刷新未修改的对象关系库缓存数据。


IRepository::Create

请参阅

此方法用于创建新的对象关系库，在新对象关系库中自动创建基本的对象关系库表。指向对象关系库根对象的 IRepositoryObject 接口指针被返回调用者。

HRESULT Create(
BSTR                       Connect,
BSTR                       User,
BSTR                       Password,
long                         fFlags,
IRepositoryObject  **ppIRootObj
);

参数

Connect [in]
ODBC 连接字符串，用于访问用作新对象关系库主机的数据库服务器。

User [in]
用户名，用于标识数据库服务器的用户。

Password [in]
与用户输入参数相匹配的口令。

fFlags [in]
一个标志，决定打开的对象关系数据库的访问和缓存行为。有关详细内容，请参阅 ConnectionFlags 枚举集合。

*ppIRootObj [out]
新对象关系库的根对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepository::CreateObject

请参阅

用于创建新的对象关系库对象。指向新对象的 COM 接口指针被返回调用者。

HRESULT CreateObject(
VARIANT                 sTypeId,
VARIANT                 sObjId,
IRepositoryObject  *ppIReposObj
);

参数

sTypeId [in]
新对象的类型，即新对象所符合类定义的对象标识符。

sObjId [in]
指定给新对象的对象标识符。若传入 OBJID_NULL ，则由对象关系库指定对象标识符。

*ppIReposObj [out]
新的对象关系库对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

新对象将自动永久存储。


IRepository::get_Object

请参阅

用于检索指向指定对象关系库对象的 IRepositoryObject 接口指针。

HRESULT get_Object(
VARIANT                 sObjectId,
IRepositoryObject  **ppIReposObj
);

参数

sObjectId [in]
要检索的对象关系库对象的对象标识符。

*ppIReposObj [out]
对象关系库对象的 IRepository 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepository::get_RootObject

请参阅

此方法用于获取当前所打开对象关系库的根对象的指针。根对象是一个特殊的对象关系库对象，所有其他对象关系库对象都直接或间接与之相连。

HRESULT get_RootObject(
IRepositoryObject    **ppIRootObj
);

参数

*ppIRootObj [out]
指向对象关系库根对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepository::get_Transaction

请参阅

检索对象关系库实例的 IRepositoryTransaction 接口指针。IRepositoryTransaction 接口用于管理此对象关系库实例的对象关系库事务。

HRESULT get_Transaction(
IRepositoryTransaction    **ppIRepTrans
);

参数

*ppIRepTrans [out]
IRepositoryTransaction 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepository::InternalIDToObjectID

请参阅

此方法用于将内部标识符转换成对象标识符。对象关系库引擎利用内部标识符识别对象关系库对象。

HRESULT InternalIDToObjectID(
VARIANT   sInternalID,
VARIANT   *sObjectId
);

参数

sInternalID [in]
对象关系库对象的内部标识符。

*sObjectId [out]
对象关系库对象的对象标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

对象关系库的对象标识符是全局唯一的，同一对象即使出现在多个对象关系库中也只有一个标识符。对象关系库内部标识符只在单个对象关系库内唯一。.

此方法执行转换时不必加载相关对象。因此不加载定义对象即可构造涉及对象或关系类型标识符的数据库查询。


IRepository::ObjectIDToInternalID

请参阅

此方法用于将对象标识符转换成内部标识符。对象关系库引擎利用内部标识符识别对象关系库对象。

HRESULT ObjectIDToInternalID(
VARIANT   sObjectID,
VARIANT   *sInternalId
);

参数

sObjectID [in]
对象关系库对象的对象标识符。

*sInternalId [out]
对象关系库对象的内部标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

对象关系库的对象标识符是全局唯一的，同一对象即使在多个对象关系库中出现也只有一个标识符。对象关系库内部标识符只在单个对象关系库内唯一。.

此方法执行转换时不必加载相关对象。因此不必加载定义对象集合即可构造涉及对象或关系类型标识符的数据库查询。


IRepository::Open

请参阅

此方法用于打开对象关系库。对象关系库根对象的 IRepositoryObject 接口指针被返回调用者。

HRESULT Open(
BSTR                       Connect,
BSTR                       User,
BSTR                        Password,
long                          fFlags,
IRepositoryObject  **ppIRootObj
);

参数

Connect [in]
ODBC 连接字符串，用于访问用作对象关系库主机的数据库服务器。

User [in]
用户名，用于标识数据库服务器的用户。

Password [in]
与用户输入参数相匹配的口令。

fFlags [in]
一个标志，决定打开的对象关系数据库的访问和缓存行为。有关详细内容，请参阅 ConnectionFlags 枚举集合。

*ppIRootObj [out]
所打开对象关系库的根对象的 IRepositoryObject 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepository::Refresh

请参阅

此方法用于刷新对象关系库实例的所有缓存数据。只有未被当前进程修改过的缓存数据会被刷新。

HRESULT Refresh( long   iMilliseconds );

参数

iMilliseconds [in]
所有在缓存中超过 iMilliseconds 毫秒的未修改数据将被刷新。若将此参数设置为零，则刷新所有的未修改数据。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryDispatch 接口

请参阅         属性         方法         集合

IRepositoryDispatch 接口是增强的 IDispatch 接口。除所有标准 IDispatch 方法，IRepositoryDispatch 还提供对 Properties 集合的访问。Properties 集合提供一种便利的机制，用于枚举一个接口的所有永久属性和永久集合。

创建代表工具信息模型中对象的 Automation 对象实例时，如果此对象符合一个没有自定义实现的类（也就是说，没有提供类的软件实现），对象关系库将提供接口实现。此接口实现使用 IRepositoryDispatch 作为调度接口。

应用

IRepositoryDispatch 接口用于在没有自定义实现的情况下，访问 Repository 对象的属性和集合。

方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IreposProperties 接口指针。IReposProperties 接口提供对 Properties 集合的访问。
说明

如果接口定义为从 IDispatch 或 IRepositoryDispatch 继承，则对象关系库引擎只提供一种接口实现。


IRepositoryDispatch::get_Properties

请参阅

此方法用于检索 IReposProperties 接口指针。IReposProperties 接口提供访问 Properties 集合的方法。Properties 集合提供一种便利的机制，用于枚举一个接口的所有永久属性和永久集合。

HRESULT get_Properties( IReposProperties   **ppIReposProps );

参数

*ppIReposProps [out]
IReposProperties 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueue 接口

请参阅         属性        方法         集合

访问对象关系库时发生的错误保存在对象关系库错误队列中。对象关系库错误队列是 REPOSERROR 结构的集合。可以象其他对象关系库集合中的元素那样管理对象关系库错误队列中的单个元素。此接口提供这些管理功能。

应用

IRepositoryErrorQueue 接口用于管理属于特定对象关系库错误队列的错误。用此接口可以：

•	获取集合中错误元素的计数。

•	枚举集合中的元素。

•	向集合插入或从集合删除元素。

•	检索集合中的错误元素。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IrepositoryErrorQueue 方法	描述
Count	返回队列的错误计数。
Insert	向错误队列的指定位置插入新错误。
Item	从错误队列检索指定的错误。
Remove	从错误队列删除指定的错误。
_NewEnum	为错误队列创建枚举对象。


IRepositoryErrorQueue::Count

请参阅

此方法用于返回错误队列当前包含的错误数。

ULONG Count(void);

返回值

队列中错误元素的个数。


IRepositoryErrorQueue::Insert

请参阅

此方法用于向错误队列插入新元素。元素可以插入队列的指定位置，也可附加在队列末尾。

HRESULT Insert(
ULONG               iIndex,
REPOSERROR   *psError
);

参数

iIndex [in]
错误队列中元素插入位置的索引。要使元素插入错误队列的开头，将此参数设置成一。若参数设置成零，则将元素附加在错误队列的末尾。

*psError [in]
待插入元素的错误信息。此结构的信息被复制，副本置于错误队列中。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueue::Item

请参阅

此方法用于从错误队列检索指定元素，它有两种变型。

HRESULT Item(
ULONG               iIndex,
REPOSERROR   *psError
);

HRESULT Item(
ULONG        iIndex,
IErrorInfo    **ppIErrorInfo
);

参数

iIndex [in]
待检索元素在错误队列中的位置索引。

*ppError [out]
对象关系库错误信息结构，含有检索到的元素的信息。

*ppIErrInfoObj [out]
指向所检索到元素的错误信息对象的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueue::Remove

请参阅

此方法用于从错误队列中删除指定元素。

HRESULT Remove(
ULONG    iIndex
);

参数

iIndex [in]
错误队列中待删除元素的位置索引。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueue::_NewEnum

请参阅

此方法用于创建错误队列的枚举对象。枚举对象的接口指针被返回调用者。

HRESULT _NewEnum(
IEnumRepositoryErrors    **ppIEnum
);

参数

*ppIEnum [out]
枚举集合的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueueHandler 接口

请参阅         属性        方法         集合

访问对象关系库时发生的错误保存在对象关系库错误队列中。对象关系库错误队列是 REPOSERROR 结构的集合。每个执行打开的对象关系库实例的线程一次可以访问一个活动的错误队列。

应用

IRepositoryErrorQueueHandler 接口用于创建对象关系库错误队列，为执行线程指定一个错误队列，或检索指向线程当前指定的错误队列的接口指针。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IrepositoryErrorQueueHandler 方法	描述
CreateErrorQueue	创建新的对象关系库错误队列。
SetErrorQueue	为线程设置活动的错误队列。
GetErrorQeueue	检索指向线程当前活动的错误队列的指针。


IRepositoryErrorQueueHandler::CreateErrorQueue

请参阅

此方法用于创建对象关系库错误队列。一旦创建完毕，该错误队列即可指定给线程环境。

HRESULT CreateErrorQueue(
IRepositoryErrorQueue    **ppIErrorQueue
);

参数

*ppIErrorQueue [out]
新创建的对象关系库错误队列的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueueHandler::GetErrorQueue

请参阅

此方法用于检索指定给当前线程的对象关系库错误队列。

HRESULT GetErrorQueue(
IRepositoryErrorQueue    **ppIErrorQueue
);

参数

*ppIErrorQueue [out]
当前指定给线程的错误队列的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryErrorQueueHandler::SetErrorQueue

请参阅

此方法用于给当前线程环境指定对象关系库错误队列。

HRESULT SetErrorQueue(
IRepositoryErrorQueue    *pIErrorQueue
);

参数

pIErrorQueue [in]
将要指定给线程的错误队列的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryItem 接口

请参阅         属性         方法         集合

IRepositoryItem 接口包含对象关系库对象和关系公用的方法。它包含用于管理对象关系库项的所有通用方法。

应用

IRepositoryItem 接口用于：

•	检索项的类型或名称。

•	获得对项的锁定。

•	更改项的名称。

•	刷新项的缓存图像。

•	删除项。

•	获取项显露的替补接口的指针。

•	获取打开的对象关系库实例，通过此实例访问项。

方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IreposProperties 接口提供对 Properties 集合的访问。
IRepositoryItem 方法	描述
Delete	删除对象关系库的项。
get_Interface	检索指向指定的项接口的接口指针。
get_Name	检索与项关联的名称。
get_Repository	检索项所打开的对象关系库实例的 Irepository 接口指针。
get_Type	检索项的类型。
Lock	锁定项。
put_Name	设置与项关联的名称。
Refresh	刷新项的缓存图像。


IRepositoryItem::Delete

请参阅

此方法用于删除对象关系库的项。如果该项是对象关系库对象，则任何涉及此对象的方法都将被删除。如果该项是对象关系库关系，则从相应的主从集合中删除。

HRESULT Delete( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryItem::get_Interface

请参阅

此方法用于为项显露的替补接口检索接口指针。指定的接口必须是 Automation 接口，即必须支持 IDispatch 接口的方法。

HRESULT get_Interface(
VARIANT     whichInterface,
IDispatch    **ppInterface
);

参数

whichInterface [in]
指定要访问的接口。此参数可以是对象关系库中的接口名、接口标识符或接口定义对象的对象标识符。

*ppInterface [out]
Automation 接口的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

有些对象显露多个接口。此方法使 Automation 程序员在项的类无可用类型库时，能够方便地访问替补接口。


IRepositoryItem::get_Name

请参阅

检索与对象关系库的项关联的名称。对于对象关系库关系，它是由关系定义的名称；对于对象关系库对象，它是下面二者之一：

1. 如果对象显露 INamedObject 接口，它是该接口的 Name 属性。

2. 由关系定义的名称，对象在该关系中是从对象。

HRESULT get_Name( BSTR   *pName );

参数

*pName [out]
与项关联的名称。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

Repository 对象可以作为多个命名关系的从对象，每个关系可用不同的名称引用此对象。对于当前项，此方法返回最先找到的命名关系中的名称。然而，如果对象关系库对象显露 INamedObject 接口，则总是返回该接口的 Name 属性值。


IRepositoryItem::get_Repository

请参阅

用于为打开的对象关系库实例检索 IRepository 接口指针，对象关系库通过此实例展示此项。

HRESULT get_Repository( IRepository   **ppIRepository );

参数

*ppIRepository [out]
打开的对象关系库实例的 IRepository 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryItem::get_Type

请参阅

此方法用于获取对象关系库的项所符合的 Repository 定义对象的对象标识符。这是对象关系库的项的类型。

HRESULT get_Type( VARIANT   *psTypeId );

参数

*psTypeId [out]
对象关系库项的定义对象的对象标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryItem::Lock

请参阅

此方法用于锁定特定的对象关系库的项。锁定项可以防止其他进程在用户使用此项时对其更新。在结束当前事务时解除锁定。

HRESULT Lock( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryItem::put_Name

请参阅

设置与对象关系库的项关联的名称。对于对象关系库关系，它是由关系定义的名称；对于对象关系库对象，它是下面二者之一或同时为下面二者：

1. 如果对象显露 INamedObject 接口，它是该接口的 Name 属性。

2. 由关系定义的名称，对象在该关系中是从对象。

HRESULT put_Name( BSTR   Name );

参数

Name [in]
与项关联的名称。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

Repository 对象可以作为多个命名关系的从对象，每个关系可用不同的名称引用此对象。对于当前项，项的所有名称都被设置成新名称。如果 Repository 对象显露 INamedObject 接口，则 INamedObject 接口的 Name 属性值也被设置成新名称。


IRepositoryItem::Refresh

请参阅

此方法用于刷新对象关系库的特定项的缓存图像。只有未改变的缓存数据会被刷新。

HRESULT Refresh( long   iMilliseconds );

参数

iMilliseconds [in]
刷新在缓存中超过 iMilliseconds 毫秒的关联此项的未修改数据。若设置成零，则刷新所有未修改数据。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryObject 接口

请参阅         属性         方法         集合

IRepositoryObject 接口用于提供管理对象关系库对象的方法。

应用

IRepositoryObject 接口用于：

•	检索对象关系库对象的对象标识符或内部标识符。

•	检索对象关系库对象的类型或名称。

•	锁定对象关系库对象。

•	更改对象关系库对象的名称。

•	刷新对象关系库对象的缓存图像。

•	删除对象关系库对象。

•	获取对象显露的替补接口的指针。

•	获取打开的对象关系库实例，对象通过此实例被访问。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IReposProperties 接口提供对 Properties 集合的访问。
IrepositoryItem 方法	描述
Delete	删除对象关系库的项。
get_Interface	检索指向指定的项接口的接口指针。
get_Name	检索与项关联的名称。
get_Repository	为项所打开的对象关系库实例检索 IRepository 接口指针。
get_Type	检索项的类型。
Lock	锁定项。
put_Name	设置与项关联的名称。
Refresh	刷新项的缓存图像。
IRepositoryObject 方法	描述
get_InternalID	检索对象关系库对象的内部标识符。
get_ObjectID	检索对象关系库对象的对象标识符。


IRepositoryObject::get_InternalID

请参阅

此方法用于获取对象关系库对象的内部标识符。

HRESULT get_InternalID( VARIANT   *psInternalId );

参数

*psInternalId [out]
 对象关系库对象的内部标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryObject::get_ObjectID

请参阅

此方法用于检索对象关系库对象的对象标识符。

HRESULT get_ObjectID( VARIANT   *psObjectId );

参数

*psObjectId [out]
此对象关系库对象的对象标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryObjectStorage 接口

请参阅         属性         方法         集合

IRepositoryObjectStorage 接口为对象关系库对象初始化内存图像。新的对象关系库对象初始化成空对象。对于已存在的对象，对象的状态由对象关系数据库检索。

应用

IRepositoryObjectStorage 接口被对象关系库引擎用于实现内存中的对象关系库对象。对象关系库应用程序不能使用此方法。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryObjectStorage 方法	描述
get_PropertyInterface	检索 IRepositoryDispatch 接口指针，用来访问项所支持接口的永久成员。
InitNew	为新的对象关系库对象初始化内存。
Load	为现有对象关系库对象初始化内存。


IRepositoryObjectStorage::get_PropertyInterface

请参阅

此方法用于检索在访问对象所支持 Automation 接口的永久成员时需要的 IRepoitoryDispatch 接口指针。

IRepositoryDispatch 接口可用于获取和设置由输入参数 InterfaceId 指定的接口的成员值。此接口必须是由此对象所显露的。

HRESULT get_PropertyInterface(
REFIID                         InterfaceId,
IRepositoryDispatch  **ppInterface
);

参数

InterfaceId [in]
将要访问其属性的接口的接口标识符。

*ppInterface [out]
IRepositoryDispatch 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

IRepositoryDispatch 不进行参数验证，不能用于访问自定义方法和非永久属性。自定义类可以扩展此方法。


IRepositoryObjectStorage::InitNew

请参阅

此方法由对象关系库引擎用于初始化内存中的新对象关系库对象。

HRESULT InitNew(
IRepository    *pIRepository,
INTID              sInternalId
);

参数

*pIRepository [in]
包含此对象的对象关系库。

sInternalId [in]
新对象的内部标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryObjectStorage::Load

请参阅

此方法由对象关系库引擎用于将对象关系库对象的状态从对象关系数据库装入内存。

HRESULT Load(
IRepository   *pIRepository,
INTID             sInternalId
);

参数

*pIRepository [in]
包含此对象的对象关系库。

sInternalId [in]
Repository 对象的内部标识符。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryTransaction 接口

请参阅         属性         方法         集合

Repository 支持事务处理。从对象关系数据库中读取数据的对象关系库方法可以在事务外执行，但是写入数据的对象关系库方法必须在事务中执行。对于每个打开的对象关系库实例，一次只能有一个活动事务。允许嵌套调用 Begin/Commit 方法，但实际上不发生事务嵌套。

应用

IRepositoryTransaction 接口用于启动、提交或异常终止对象关系库事务。此接口也可以用于检索打开的对象关系库实例的事务状态信息，或用于设置事务选项。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryTransaction 方法	描述
Abort	取消当前活动事务。
Begin	启动新事务。
Commit	提交活动事务。
Flush	刷新未提交的对象关系数据库修改。
GetOption	检索事务选项。
get_Status	识别是否有当前活动事务。
SetOption	设置事务选项。


IRepositoryTransaction::Abort

请参阅

此方法用于取消打开的对象关系库的当前活动事务。事务中所做的所有更新都被复原。嵌套事务计数设置为零。

HRESULT Abort( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryTransaction::Begin

请参阅

此方法用于递增嵌套事务计数。如果没有活动事务，此方法为打开的对象关系库实例启动一个新事务。

HRESULT Begin( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryTransaction::Commit

请参阅

此方法用于递减打开的对象关系库实例的嵌套事务计数。如果当前活动事务是非嵌套的，则事务内部对对象关系数据所做的修改都被提交给对象关系数据库。如果嵌套事务计数为一，则此事务是非嵌套的。

HRESULT Commit( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryTransaction::Flush

请参阅

此方法用于刷新记录在高速缓存中的对对象关系数据库的修改。

除非设置了 exclusive-write-through-mode 事务选项，否则在事务中所做的修改都是记录在高速缓存中的，直到事务提交时才写入数据库。如果在对象关系数据库上运行一个并行查询，查询结果将不反映未提交的修改，这是通常所期望的。

要使未提交的修改对对象关系库应用程序的 SQL 查询可见，可用 Flush 方法将未提交的修改写入对象关系数据库。当前事务中的所有修改都被刷新。刷新未提交的修改不会影响通过 Abort 方法取消事务的能力。

HRESULT Flush( void );

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryTransaction::GetOption

请参阅

此方法用于检索打开的对象关系库实例的事务选项值。

HRESULT GetOption(
long           iOption,
VARIANT  *psValue
);

参数

iOption [in]
要检索的事务选项。有关有效值及其含义，请参阅 TransactionFlags 枚举对象。

*psValue [out]
指定的事务选项值。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryTransaction::get_Status

请参阅

此方法用于判断是否有当前活动事务。

HRESULT get_Status( long    *piStatus );

参数

*piStatus [out]
当前事务状态。如果此值为零，则无活动事务；否则有一个活动事务。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

事务处于活动状态，直到 Commit 方法执行成功，并且嵌套事务计数递减到零。当 Commit 方法将控制权返回给调用者时，根据下级数据库服务器的数据刷新能力，决定与提交事务相关的数据是否写入物理存储设备。


IRepositoryTransaction::SetOption

请参阅

此方法用于为打开的对象关系库实例设置事务选项。事务处于活动时不能设置事务选项。

HRESULT SetOption(
ULONG      iOption,
VARIANT   sValue
);

参数

iOption [in]
要设置的事务选项。有关有效值及其含义，请参阅 TransactionFlags 枚举对象。

sValue [in]
指定的事务选项值。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IRepositoryODBC 接口

请参阅         属性         方法         集合

对象关系库引擎在 SQL 数据库中存储信息。对象关系库引擎通过 ODBC 连接与数据库服务器相连。IRepositoryODBC 接口提供了通过相同（或相似）ODBC 连接对数据库的访问。

直接访问对象关系库数据库时要小心，特别是在共享对象关系库的 ODBC 连接时。每个接口方法的特定限制都有详细定义。通常认为以只读方式直接访问对象关系数据库是安全的。但是，如果使对象关系库应用程序依赖于数据库服务器的指定特性，那就限制了应用程序的可移植性。

应用

IRepositoryODBC 接口用于获取或释放 ODBC 连接句柄，或用于检索对象关系库引擎使用的连接字符串。

IRepository::QueryInterface 方法用于获取指向此接口的指针。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryODBC 方法	描述
FreeConnection	释放 ODBC 连接句柄。
get_ConnectionString	检索 ODBC 连接字符串，对象关系库引擎用此连接字符串来获取 ODBC 连接。
GetNewConnection	获取新的 ODBC 连接句柄，对象关系库引擎用相同连接设置来访问对象关系数据库。
get_ReposConnection	检索 ODBC 连接句柄，对象关系库引擎用此连接句柄来访问对象关系数据库。


IRepositoryODBC::FreeConnection

请参阅

此方法用于释放 ODBC 连接句柄。

HRESULT FreeConnection( long   Hdbc );

参数

Hdbc [in]
将被释放的 ODBC 连接句柄。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

此方法用于在释放打开的对象关系库实例之前释放由 get_ReposConnection 方法或 GetNewConnection 方法获取的句柄。


IRepositoryODBC::get_ConnectionString

请参阅

此方法用于检索 ODBC 连接字符串，对象关系库引擎用此连接字符串来获取对象关系库数据库的 ODBC 连接。

HRESULT get_ConnectionString( BSTR    szString );

参数

szString [out]
ODBC 连接字符串。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

ODBC 连接字符串可以包含用户标识符和口令信息。请注意保护此信息，防止泄露给未授权的访问。


IRepositoryODBC::GetNewConnection

请参阅

此方法用同样的 ODBC 连接字符串获取新的 ODBC 连接句柄，对象关系库引擎用该连接字符串访问对象关系数据库。用新的 ODBC 连接句柄隔离对象关系库引擎所做修改。

HRESULT GetNewConnection( long   *pHdbc );

参数

*pHdbc [out]
新的 ODBC 连接句柄。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

请确认在释放打开的对象关系库实例之前释放用此方法获取的句柄。FreeConnection 方法用于释放连接句柄。


IRepositoryODBC::get_ReposConnection

请参阅

此方法用于检索 ODBC 连接句柄，对象关系库引擎用此连接句柄访问对象关系数据库。

HRESULT get_ReposConnection( long   *pHdbc );

参数

*pHdbc [out]
对象关系库引擎的 ODBC 连接句柄的副本。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

如果使用对象关系库引擎的 ODBC 连接句柄，就需要了解对象关系库引擎所做的修改。例如，您的应用程序将涉及对象关系库引擎所做的内部修改。

使用对象关系库引擎的 ODBC 连接句柄时，决不能用对象关系库引擎不兼容的方式修改句柄状态。尤其不能：

•	修改任何 ODBC 连接选项。

•	在对象关系库方法调用的同时执行任何访问。

•	直接提交或撤消数据库事务。IRepositoryTransaction 接口必须一直用于事务管理。

请确认在释放打开的对象关系库实例之前释放用此方法获取的句柄。FreeConnection 方法用于释放连接句柄。


IReposTypeInfo 接口

请参阅         属性         方法         集合

此接口将类、接口和关系定义对象与对象关系类型库相连。

应用

IReposTypeInfo 接口用于：

•	决定哪些对象关系类型库包含特定的类、接口或关系类型。

•	决定哪些集合类型与特定关系类型相关联。

方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述符
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IReposProperties 接口提供对 Properties 集合的访问。
集合

集合	描述
ItemInCollections	连接到关系定义对象的主从集合类型。
ReposTypeLibScopes	包含特定类、接口或关系类型的对象关系类型库的集合。


IReposTypeInfo ItemInCollections 集合

请参阅

此集合包含与特定关系类型相关联的主从集合类型。对于非关系定义的定义对象，此集合为空。

调度标识符：DISPID_Collection (39)

集合描述符	描述符值
Relationship Type	Collection-Contains-Items
Source Is Origin	No
Minimum Collection Size	Zero
Maximum Collection Size	Two
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not Applicable
Unique Names	Not Applicable


IReposTypeInfo ReposTypeLibScopes 集合

请参阅

包含特定类、接口或关系类型的类型库的集合。

调度标识符：DISPID_ReposTypeLibScopes (43)

集合描述符	描述符值
Relationship Type	ReposTypeLib-ScopeFor-ReposTypeInfo
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes


IClassDef 接口

请参阅         属性         方法         集合

IClassDef 接口通过添加类的接口来帮助您创建工具信息模型。IReposTypeLib 接口用于向工具信息模型中插入新类。

一旦添加了所有接口，提交包含对类定义修改的事务即可完成类定义。

应用

IClassDef 接口用于：

•	向类定义添加新的或现有的接口。

•	检索类的全局标识符。

•	访问作为类定义一部分的接口的集合

属性

属性	描述
ClassID	类的全局标识符。
方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IreposProperties 接口指针。IreposProperties 接口提供对 Properties 集合的访问。
IclassDef 方法	描述
AddInterface	向类定义添加现有的接口。
CreateInterfaceDef	创建新接口并加入类定义。
ObjectInstances	为对象关系库中符合此类的所有对象的集合实现 IObjectCol 接口指针。
集合

集合	描述
Interfaces	类实现的所有接口的集合。


IClassDef::AddInterface

请参阅

AddInterface 方法用于向特定类所实现的接口集合中添加现有的接口。

HRESULT AddInterface(
IInterfaceDef  *plInterfaceDef,
BSTR             Flags
);

参数

plInterfaceDef [in]
接口指针，指向将要向类所实现的接口集合中添加的接口。

Flags [in]
如果添加的是类的缺省接口，传入字符串“ Default ”，否则传入一个空指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IClassDef ClassID 属性

请参阅

此类的全局标识符。

调度标识符：DISPID_ClassID

属性数据类型：GUID


IClassDef::CreateInterfaceDef

请参阅

CreateInterfaceDef 方法用于创建新的接口定义，并将其加入到由此类实现的接口的集合中。

HRESULT CreateInterfaceDef(
VARIANT        sObjId,
BSTR              Name,
VARIANT        sIID,
IInterfaceDef  *pIAncestor,
BSTR              Flags,
IInterfaceDef  **ppIInterfaceDef
);

参数

sIObjId [in]
赋给新接口定义的对象标识符。如果将此参数设置为 OBJID_NULL ，Repository 将指定一个对象标识符。

Name [in]
要创建的接口的名称。

sIID [in]
与接口署名相关的全局标识符。若无，则将此参数设置为零。

*pIAncestor [in]
指向一个基接口的指针，被添加的接口由该基接口派生。

Flags [in]
如果添加的是类的缺省接口，传入字符串“ Default ”，否则传入一个空指针。

*pplInterfaceDef [out]
新接口的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IClassDef Interfaces 集合

请参阅

由此类所实现的所有接口的集合。

调度标识符：DISPID_Ifaces (32)

集合描述符	描述符值
Relationship Type	Class-Implements-Interface
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not Applicable
Unique Names	Not Applicable


IClassDef::ObjectInstances

请参阅

此方法用于为对象关系库中符合此类的所有对象的集合实现 IObjectCol 接口指针。

HRESULT ObjectInstances( IObjectCol  **ppIObjectCol );

参数

*ppIObjectCol [out]
对象集合的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


ICollectionDef 接口

请参阅         属性         方法         集合

集合类型（也称作集合定义）用于定义特定类型集合实例的行为。集合类型的属性决定：

•	集合中的最大和最小项数。

•	此集合类型是否为主集合类型。

•	此集合类型是否允许命名从对象，如果允许，名称是否区分大小写以及是否要求名称唯一。

•	此集合类型是否允许集合中项的确定顺序。

•	删除集合中的对象或关系时，相关对象将会怎样。

特定集合类型用于关联各个对象的关系的种类由其 CollectionItem 集合决定。CollectionItem 集合将单个关系类型与集合类型关联起来。

IInterfaceDef 接口用于添加新的集合类型。

应用

ICollectionDef 接口用于检索或修改集合类型的属性，或者用于决定集合实现的关系的种类。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch Method	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IreposProperties 接口提供对 Properties 集合的访问。
属性

属性	描述
Flags	决定此类型集合行为的标志。
IsOrigin	指示此类型集合是否为主集合。
MaxCount	此类型集合中最多可包含的目标对象数。
MinCount	此类型集合中最少要包含的目标对象数。
集合

集合	描述
CollectionItem	关系类型的集合，该关系类型定义此类型集合的目标对象与单个源对象间的关系。


ICollectionDef Flags 属性

请参阅

对于特定类型的集合，Flags 属性决定：

•	此集合类型是否允许命名从对象，如果允许，名称是否区分大小写以及是否要求名称唯一。

•	此集合类型是否允许集合中项的确定顺序。

•	删除集合中的对象或关系时，相关对象将会怎样。

有关此标志的数值和功能，请参阅 CollectionDefFlags 枚举对象。

调度标识符：DISPID_ColFlags (54)

属性数据类型：long


ICollectionDef IsOrigin 属性

请参阅

此属性用于指示此类型集合是否为主集合。

调度标识符：DISPID_IsOrigin (57)

属性数据类型：Boolean


ICollectionDef MaxCount 属性

请参阅

此属性用于指定此类型集合中最多可包含的目标对象数。此属性是为信息需要而维护的，对象关系库引擎对此并无硬性规定。

调度标识符：DISPID_MaxCount (56)

属性数据类型：short


ICollectionDef MinCount 属性

请参阅

此属性用于指定此类型集合中最少要包含的目标对象数。此属性是为信息需要而维护的，对象关系库引擎对此并无硬性规定。

调度标识符：DISPID_MinCount (55)

属性数据类型：short


ICollectionDef CollectionItem 集合

请参阅

关系类型的集合，该关系类型定义此类型集合的目标对象与单个源对象间的关系。

调度标识符：DISPID_CollectionItem (38)

集合描述符	描述符值
Relationship Type	Collection-Contains-Items
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	One
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not Applicable
Unique Names	Not Applicable


IInterfaceDef 接口

请参阅         属性         方法         集合

类实现的属性、方法和集合被组织为功能相关的组。每个组实现为 COM 接口。每个接口的属性、方法和集合构成接口的成员。接口定义是接口所符合的模板。

IClassDef 接口和 IReposTypeLib 接口用于向对象关系库中添加新的接口。

应用

IInterfaceDef 接口用于：

•	检索或修改接口定义的属性。

•	决定附加到接口定义的成员。

•	决定实现接口的类。

•	决定派生接口的基接口。

•	决定特定接口的派生接口。

•	决定显露特定接口的对象关系库对象。

•	向接口定义增加新的属性、方法或集合类型。

属性

属性	描述
Flags	用于指示接口是否可扩展及接口是否该对 Automation 接口查询可见的标志。
InterfaceID	接口的全局接口标识符。
TableName	用于存储接口属性实例信息的 SQL 表名。
方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IreposProperties 接口指针。IreposProperties 接口提供对 Properties 集合的访问。
IinterfaceDef 方法	描述
CreateMethodDef	创建新的方法定义，并将其附加到接口定义。
CreatePropertyDef	创建新的属性定义，并将其附加到接口定义。
CreateRelationshipColDef	创建关系集合类型，此集合类型附加到接口定义。
ObjectInstances	为对象关系库中所有显露此接口的对象的集合实现 IobjectCol 接口指针。
集合

集合	描述
Ancestor	派生此接口的基接口的集合。
Classes	实现此接口的类的集合。
Descendants	由此接口派生的其他接口的集合。
Members	附加到接口定义的成员的集合。


IInterfaceDef Flags 属性

请参阅

此属性包含一个标志，用于指示接口是否可扩展及接口是否该对 Automation 接口查询可见。有关它们的数值和功能，请参阅 InterfaceDefFlags 枚举对象。

调度标识符：DISPID_IfaceFlags (50)

属性数据类型：long


IInterfaceDef InterfaceID 属性

请参阅

此属性是接口的全局接口标识符。

调度标识符：DISPID_InterfaceID (48)

属性数据类型：GUID


IInterfaceDef TableName 属性

请参阅

用于存储接口属性实例信息的 SQL 表名。名称长度不能超过 30 个字符。

调度标识符：DISPID_TableName (49)

属性数据类型：string


IInterfaceDef::CreateMethodDef

请参阅

此方法用于创建新的方法定义并将其附加到接口定义。

HRESULT CreateMethodDef(
VARIANT               sObjId,
BSTR                     Name,
long                       iDispId,
IInterfaceMember  **ppIMethodDef
);

参数

sObjId [in]
用于新的方法定义对象的对象标识符。如果将此参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。

Name [in]
新方法名。

iDispId [in]
用于访问新方法的调度标识符。

*ppIMethodDef [out]
新创建方法定义的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IInterfaceDef::CreatePropertyDef

请参阅

此方法用于创建新的属性定义并将其附加到接口定义。

HRESULT CreatePropertyDef (
VARIANT        sObjId,
BSTR              Name,
long                iDispId,
short               iCType,
IPropertyDef  **ppIPropertyDef
);

参数

sObjId [in]
用于新的属性定义对象的对象标识符。如果将此参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。

Name [in]
新属性名。

iDispId [in]
用于访问新属性的调度标识符。

iCType [in]
属性的 C 数据类型。有关有效值的定义，请参阅 ODBC Programmer's Reference 。

*ppIPropertyDef [out]
新创建属性定义的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IInterfaceDef::CreateRelationshipColDef

请参阅

此方法用于创建新的集合类型，将其附加到接口上并与指定的关系类型相关联。

HRESULT CreateRelationshipColDef(
VARIANT              sObjId,
BSTR                    Name,
long                      iDispId,
boolean                IsOrigin,
short                     fFlags,
IReposTypeInfo  *pIRelshipDef,
ICollectionDef     **pICollectionDef
);

参数

sObjId [in]
集合类型的对象标识符。如果将此参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。

Name [in]
新集合类型名。

iDispId [in]
用于 Automation 访问此类型集合的调度标识符。

IsOrigin [in]
指定此类型集合是否为主集合。

fFlags [in]
指示此集合类型命名、排序和删除传递行为的标志。有关它们的数值值和功能，请参阅 CollectionDefFlags 枚举对象。

*pIRelshipDef [in]
与此集合类型相连的关系定义对象的接口指针。

*ppICollectionDef [out]
新集合定义对象的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。

说明

缺省地，集合定义允许此类型的集合中有零到多项。要为新集合类型指定新的最大和最小项数，请在提交包含此方法调用的事务之前修改 MinCount 和 MaxCount 属性。


IInterfaceDef::ObjectInstances

请参阅

此方法用于为对象关系库中所有显露此接口的对象集合实现 IObjectCol 接口指针。

HRESULT ObjectInstances( IObjectCol  **ppIObjectCol );

参数

*ppIObjectCol [out]
对象集合的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IInterfaceDef Classes 集合

请参阅

此集合用于指定实现接口的类。

调度标识符：DISPID_Classes (33)

集合描述符	描述符值
Relationship Type	Class-Implements-Interface
Source Is Origin	No
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not Applicable
Unique Names	Not Applicable


IInterfaceDef Members 集合

请参阅

此集合用于指定附加到接口的成员。

调度标识符：DISPID_Members (36)

集合描述符	描述符值
Relationship Type	Interface-Has-Members
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	Yes
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes


IInterfaceDef Ancestor 集合

请参阅

此集合用于指定派生此接口的基接口。

调度标识符：DISPID_Ancestor (34)

集合描述符	描述符值
Relationship Type	Interface-InheritsFrom-Interface
Source Is Origin	Yes
Minimum Collection Size	One
Maximum Collection Size	One
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not Applicable
Unique Names	Not Applicable


IInterfaceDef Descendants 集合

请参阅

此集合用于指定由此接口派生的其他接口。

调度标识符：DISPID_Descendants (35)

集合描述符	描述符值
Relationship Type	Interface-InheritsFrom-Interface
Source Is Origin	No
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	No
Destinations Named	No
Case Sensitive Names	Not Applicable
Unique Names	Not Applicable


IManageReposTypeLib 接口

请参阅         属性         方法         集合

每个存储在对象关系库中的工具信息模型都由一个对象关系类型库表示。

应用

IManageReposTypeLib 接口用于：

•	为新的工具信息模型创建对象关系类型库。

•	决定当前存储在对象关系库中的工具信息模型。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。IReposProperties 接口提供对 Properties 集合的访问。
IManageReposTypeLib 方法	描述
CreateTypeLib	为新的工具信息模型创建对象关系类型库。
集合

集合	描述
ReposTypeLibs	当前存储在对象关系库中的对象关系类型库的集合。


IManageReposTypeLib::CreateTypeLib

请参阅

此方法创建新的对象关系类型库，并将其附加到对象关系库的根。每个对象关系类型库表示一个工具信息模型。

HRESULT CreateTypeLib(
VARIANT             sObjId,
BSTR                   Name,
VARIANT             TypeLibId,
IReposTypeLib   **ppIRepTypeLib
);

参数

sObjId [in]
用于新对象关系类型库对象的对象标识符。如果将此参数设置为 OBJID_NULL ，对象关系库引擎将为您指定一个对象标识符。

Name [in]
新对象关系类型库的名称。

TypeLibId [in]
引用此对象关系类型库的全局标识符。

*ppIRepTypeLib [out]
指向新对象关系类型库对象的 IReposTypeLib 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IManageReposTypeLib ReposTypeLibs 集合

请参阅

当前存储在对象关系库中的对象关系类型库的集合。每个对象关系类型库表示一个工具信息模型。

调度标识符：DISPID_ReposTypeLibs (40)

集合描述符	描述符值
Relationship Type	TlbManager-ContextFor-ReposTypeLibs
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes


IInterfaceMember 接口

请参阅         属性         方法         集合

类实现的属性、方法和集合被组织为功能相关的组。每个组实现为 COM 接口。每个接口的属性、方法和集合构成接口的成员。

IInterfaceMember 接口为接口成员维护以下信息：

•	成员调度标识符。

•	成员可见性信息。

•	显露特定接口成员的接口关系。

这些信息对于属性、方法和集合类型是公共的。PropertyDef 、MethodDef 和 CollectionDef 类都能实现此接口。

应用

IInterfaceMember 接口用于访问接口成员的公共属性，或者用于判断哪个接口定义包含特定属性、方法或集合类型的成员。

属性

属性	描述
DispatchID	用于访问此类型成员实例的调度标识符。
Flags	指定此类型成员详细信息的标志。
方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IRepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。 IReposProperties 接口提供对 Properties 集合的访问。
集合

集合	描述
Interface	显露此类型成员的接口的集合。


IInterfaceMember DispatchID 属性

请参阅

此属性包含用于访问此类型成员实例的调度标识符。

调度标识符：DISPID_DispID (51)

属性数据类型：long


IInterfaceMember Flags 属性

请参阅

此属性包含一个标志，用于指定接口成员是否该对 Automation 查询可见。有关取值和对应功能，请参阅 InterfaceMemberFlags 枚举对象。

调度标识符：DISPID_IfaceMemFlags (52)

属性数据类型：long


IInterfaceMember Interface 集合

请参阅

对于特定的属性、方法或集合定义，接口集合指定哪个接口显露这种类型的成员。

调度标识符：DISPID_Iface (37)

集合描述符	描述符值
Relationship Type	Interface-Has-Members
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	One
Sequenced Collection	Yes
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes


IPropertyDef 接口

请参阅         属性         方法         集合

属性定义对象用于指定特定类型属性的特征。这些特征由属性定义对象的属性来定义。

要创建新的属性定义：

1. 使用 IInterfaceDef 接口的 CreatePropertyDef 方法。

2. 通过操作属性定义对象的属性，定义新属性定义的非缺省特征。

3. 向对象关系数据库提交所作的更改。

应用

IPropertyDef 接口用于检索或修改属性定义的特征。

属性

属性	描述
APIType	属性的 C 数据类型。
ColumnName	SQL 表中对应此属性的列名。
Flags	指定属性细节。
SQLScale	指定数字属性中小数点右边的数字位数。
SQLSize	属性的字节数。
SQLType	属性的 SQL 数据类型。
方法

IUnknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
IDispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1 ）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IReposProperties 接口指针。 IReposProperties 接口提供对 Properties 集合的访问。


IPropertyDef APIType 属性

请参阅

属性的 C 数据类型。有关有效值的定义，请参阅 ODBC Programmer's Reference 。

调度标识符：DISPID_APIType (59)

属性数据类型：short


IPropertyDef ColumnName 属性

请参阅

SQL 表用于存储接口属性的实例信息。缺省地，对定义为接口成员的每个属性，此表中都有相应的列。ColumnName 属性指定 SQL 表中该属性定义的列名。列名的长度必须不大于 30 个字节。

调度标识符：DISPID_ColumnName (58)

属性数据类型：string


IPropertyDef Flags 属性

请参阅

一个标志，指定是否为此属性附加到的接口在 SQL 表中创建列。若没有创建列，则当属性值是为特定对象而设时，此属性的实例只附加到个别对象。缺省地，列是为属性而创建的。

有关此标志的符号和数值，请参阅 PropertyDefFlags 枚举对象。

调度标识符：DISPID_PropFlags (63)

属性数据类型：long


IPropertyDef SQLScale 属性

请参阅

指定数字属性中小数点右边的数字位数。除非 SQLType 属性指定了 SQL_NUMERIC 、SQL_DECIMAL 或 SQL_TIME 数据类型，否则此参数将被忽略。

调度标识符：DISPID_SQLScale (62)

属性数据类型：short


IPropertyDef SQLSize 属性

请参阅

属性的字节数。若此属性的数据类型本身指定了属性的大小，则此参数将被忽略。

调度标识符：DISPID_SQL_Size (61)

属性数据类型：short


IPropertyDef SQLType 属性

请参阅

属性的 SQL 数据类型。有关有效值的定义，请参阅 ODBC Programmer's Reference 。

调度标识符：DISPID_SQLType (60)

属性数据类型：short


IReposTypeLib 接口

请参阅         属性         方法         集合

对于对象关系库中包含的每个工具信息模型，都存在一个相应的对象关系类型库。每个工具信息模型提供与特定工具（或工具组）相关联的所有类型定义的逻辑分组。

要向对象关系库中添加新的对象关系类型库，请使用 IManageReposTypeLib 接口。

应用

IReposTypeLib 接口用于：

•	为工具信息模型定义新的类、关系类型和接口。

•	检索或修改与对象关系类型库关联的全局标识符。

•	决定哪些类型定义与特定的对象关系类型库相关联。

属性

属性	描述
TypeLibID	对象关系类型库的全局标识符。
方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索 IreposProperties 接口指针。IReposProperties 接口提供对Properties 集合的访问。
IreposTypeLib 方法	描述
CreateClassDef	创建新的类定义对象。
CreateInterfaceDef	创建新的接口定义对象。
CreateRelationshipDef	创建新的关系定义对象。
集合

集合	描述
ReposTypeInfos	对象关系类型库中定义的所有类、接口和关系类型的集合。
ReposTypeLibContexts	用作对象关系类型库环境的对象关系库根对象的集合。


IReposTypeLib TypeLibID 属性

请参阅

此属性是对象关系类型库的全局标识符。

调度标识符：DISPID_TypeLibID (64)

属性数据类型：GUID


IReposTypeLib::CreateClassDef

请参阅

此方法用于创建新的类定义对象。该类无附加接口。

HRESULT CreateClassDef(
VARIANT   sObjId,
BSTR         Name,
VARIANT   sClsId,
IClassDef  **ppIClassDef
);

参数

sObjId [in]
用于新的类定义对象的对象标识符。若将此参数设置为 OBJID_NULL ，对象关系库引擎将指定一个对象标识符。

Name [in]
新类的名称。

sClsId [in]
引用此类的全局标识符。

*ppIClassDef [out]
指向新的类定义对象的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposTypeLib::CreateInterfaceDef

请参阅

此方法用于创建新的接口定义对象。IClassDef::AddInterface 方法用于向类定义对象附加接口。

HRESULT CreateInterfaceDef(
VARIANT         sObjId,
BSTR               Name,
VARIANT         sIId,
IInterfaceDef   *pIAncestor,
IInterfaceDef   **ppIInterfaceDef
);

参数

sObjId [in]
为新接口定义对象指定的对象标识符。若将此参数设置为 OBJID_NULL ，对象关系库将指定一个对象标识符。

Name [in]
待创建接口的名称。

sIId [in]
与接口署名相关联的接口标识符。如果不存在该标识符，则设置此参数为零。

*pIAncestor [in]
用于派生新接口的基接口的 IInterfaceDef 接口指针。

*pplInterfaceDef [out]
新接口的接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposTypeLib::CreateRelationshipDef

请参阅

此方法用于为新关系类型创建关系定义对象。关系定义一旦创建完成，可使用 IInterfaceDef::CreateRelationshipColDef 方法为新关系类型创建主从集合定义。

HRESULT CreateRelationshipDef(
VARIANT             sObjId,
BSTR                   Name,
IReposTypeInfo  **ppIRelshipDef
);

参数

sObjId [in]
新关系类型的对象标识符。若将此参数设置为 OBJID_NULL ，对象关系库引擎将为您指定一个对象标识符。

Name [in]
新关系类型的名称。

*ppIRelshipDef [out]
指向新关系定义的 COM 接口指针。

返回值

S_OK

方法执行成功。

错误值

方法执行失败。


IReposTypeLib ReposTypeLibContexts 集合

请参阅

用作对象关系类型库环境的对象关系库根对象的集合。

调度标识符：DISPID_ReposTLBContexts (41)

集合描述符	描述符值
Relationship Type	TlbManager-ContextFor-ReposTypeLibs
Source Is Origin	No
Minimum Collection Size	One
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes


IReposTypeLib ReposTypeInfos 集合

请参阅

与对象关系类型库相关联的所有类、接口和关系类型的集合。对象关系库引擎用此集合实现对象关系类型库中所有类、接口和关系类型的名称的唯一性。

调度标识符：DISPID_ReposTypeInfos (42)

集合描述符	描述符值
Relationship Type	ReposTypeLib-ScopeFor-ReposTypeInfo
Source Is Origin	Yes
Minimum Collection Size	Zero
Maximum Collection Size	Many
Sequenced Collection	No
Deletes Propagated	Yes
Destinations Named	Yes
Case Sensitive Names	No
Unique Names	Yes


IReposRoot 接口

请参阅         属性         方法         集合

IReposRoot 接口是一个占位符接口，它不包含 Automation 调度方法之外的任何属性、方法或集合。它是为方便与根对象的连接而提供的。创建工具信息模型时，可以向接口附加一个关系集合，用来定位与工具信息模型基对象的联系。

应用

IReposRoot 接口作为起始点用于定位对象关系库中其他对象。

方法

Iunknown 方法	描述
QueryInterface	返回所支持接口的指针。
AddRef	递增引用计数。
Release	递减引用计数。
Idispatch 方法	描述
GetIDsOfNames	将单个成员和一组参数名映射到相应的调度标识符组。
GetTypeInfo	检索可用于获取接口类型信息的类型信息对象。
GetTypeInfoCount	检索对象提供的类型信息接口数（ 0 或 1）。
Invoke	提供对 Automation 对象显露的属性和方法的访问。
IrepositoryDispatch 方法	描述
get_Properties	检索IReposProperties 接口指针。 IReposProperties 接口提供对 Properties 集合的访问。


Relationship Type 描述符

所有集合项用于连接公共源对象的关系类型。


Source Is Origin 描述符

指定集合的源对象是否同时也是主对象。值可设置为 Yes 或 No 。


Maximum Collection Size 描述符

集合中可包含的最大项数。值可设为 Zero 、One 、指定数值或 Many 。对象关系库引擎对最大值无硬性规定。


Minimum Collection Size 描述符

集合中要包含的最小项数。值可设为 Zero 、One 、指定数值或 Many 。对象关系库引擎对最小值无硬性规定。


Deletes Propagated 描述符

指定对集合中主对象或关系的删除是否会引起对相关从对象的删除。 值可设置为 Yes 或 No 。


Sequenced Collection 描述符

指定目标集合中的项是否有确定的顺序。主对象的集合都是无序的。值可设置为 Yes 或 No 。


Destinations Named 描述符

指定集合的关系类型是否允许从对象的命名。值可设置为 Yes 或 No 。


Case Sensitive Names 描述符

指定集合的关系类型是否允许从对象使用区分大小写的名称。此描述符只对关系类型允许命名从对象的集合有意义。值可设置为 Yes 、No 或 Not Applicable 。


Unique Names 描述符

指定集合的关系类型是否要求从对象集合中的从对象名称唯一。此描述符只对关系类型允许命名从对象的集合有意义。值可设置为 Yes 、No 或 Not Applicable 。


Repository SQL 方案

请参阅

对象关系库 SQL 方案由标准方案和扩展方案组成。标准方案由表组成。这些表包含管理所有对象关系库对象、关系和集合所需的核心信息。标准方案还包含对象关系库用于存储工具信息模型定义信息的表。

SQL 扩展方案是由对象关系库引擎在创建或扩展工具信息模型时自动生成的。通常对象关系库为定义的每个接口创建一个表。该表包含接口的永久属性的实例数据，每列包含一个属性。如果接口被定义为没有成员属性，则不创建表。

尽管扩展方案是自动生成的，但如果您是一位经验丰富的 SQL 管理员，就可以协调扩展方案以达到最佳的性能和数据检索。例如，缺省地，每个接口的属性是存储在单独的 SQL 表中的。可以将多个接口的属性映射到单个表，也可以将单个接口的属性映射到多个表。可以指定列名称和属性数据要使用的数据类型。可以直接向表中添加索引，而不必先删除对象关系库自动定义的索引。

如果您对 SQL 方案足够熟悉，则可以构造 SQL 查询以从对象关系库中提取指定信息。下表列出了构成标准方案的 SQL 表。

SQL 表名	描述
RTblClassDefs	包含对象关系库中所定义类的信息。
RTblIfaceDefs	包含对象关系库中所定义接口的信息。
RTblObjects	包含对象关系库对象信息。
RTblPropDefs	包含属性定义信息。
RTblProps	包含附加到对象关系库对象的标注属性的属性值。
RTblRelshipProps	包含附加到关系的标注属性的属性值。
RTblRelships	包含关系信息。
RTblRelColDefs	包含集合类型信息。
RTblRelColPairs	定义何种类型的对象可以作为给定关系类型的主对象和从对象。
RTblSites	将本地站点标识符转换为全局站点标识符。
RTblTypeLibs	包含对象关系类型库信息。
Microsoft Repository 可以访问由 Microsoft Jet 或 Microsoft SQL 服务器管理的对象关系数据库。因为下层数据库管理系统 (DBMS) 的种类很多，所以用于管理对象关系数据库（在数据库级）的工具和实用程序也是多种多样的。例如，如果对象关系数据库由于掉电或系统错而造成了损坏，应该使用 DBMS 提供的恢复工具来修复它。同样，如果对象关系数据库需要定期清理碎片，应该使用 DBMS 提供的碎片清理工具。


Repository SQL 数据类型

请参阅

因为数据类型在各个数据库管理系统中有所不同，所以对象关系库引擎可以将其数据类型映射到下层数据库服务器支持的 SQL 数据类型。

此表将对象关系库数据类型转换为数据库服务器能识别的 SQL 数据类型。对数据库服务器中不同的数据类型，显示每个数据库服务器使用的数据类型。在此情况下，Microsoft SQL 服务器的数据类型后附加 (S) ，而 Jet 服务程序的数据类型后附加 (J) 。

对象关系库 数据类型	数据库 数据类型	描述
RTBoolean	Bit (S) Boolean (J)	真/假值。
RTCount	2 字节 Integer	计数，即集合的基数。
RTDispID	4 字节 Integer	Automation 发送标识符。
RTFlags	2 字节 Integer	定义实体行为的标志位。
RTGUID	16 字节 Binary	全局唯一的标识符。
RTIntID	8 字节 Binary	内部标识符。
RTLocalID	4 字节 Binary	本地标识符，是内部标识符的一部分。
RTLongBinary	Image (S) Longbinary (J)	长二进制数据流。
RTLongString	Text (S) Memo (J)	最大长度约为 1G 字节的字符串。
RTNameString	200 字节 Varchar	用于建立索引的专用紧缩名称字符串。
RTScale	2 字节 Integer	数字数据刻度，即小数点后数字的个数。
RTShortString	240 字节 Varchar	用于建立索引的专用累缩字符串值。
RTSiteID	4 字节 Binary	站点标识符，对象标识符的一部分。
RTSize	2 字节 Integer	数据类型的大小，按字节计算。
RTSQLName	30 字节 Varchar	SQL 标识符，表名或列名。
RTSQLType	2 字节 Integer	SQL 数据类型的 ODBC 表示。


RTblClassDefs SQL 表

请参阅

对于对象关系库中定义的每个类，此 SQL 表都包含相应的行。IntID 列是此表的主键。在 ClassID 列中定义唯一索引。

列名	数据类型	描述
IntID	RTIntID	类对象的内部标识符。
ClassID	RTGUID	系统注册表中类的全局标识符。
PropDescs	RTLongBinary	类的定义信息。由对象关系库引擎为专门的用处保留。此字段可以为空。


RTblIfaceDefs SQL 表

请参阅

对于对象关系库中定义的每个接口，此 SQL 表都包含相应的行。IntID 列是此表的主键。在 InterfaceID 列中定义唯一索引。

列名	数据类型	描述
IntID	RTIntID	类对象的内部标识符。
InterfaceID	RTGUID	系统注册表中接口的全局标识符。
SQLTableName	RTSQLName	用于保存接口的属性实例数据的 SQL 表的名称。此字段可以为空。


RTblIfaceMem SQL 表

请参阅

对于对象关系库中存储的每个属性定义、方法定义和集合定义，此 SQL 表都包含相应的行。当向对象关系库中添加接口时，此表中的信息就由对象关系库用于创建与接口相关的 SQL 表。IntID 列是此表的主键。

列名	数据类型	描述
IntID	RTIntID	属性定义对象的内部标识符。
DispID	RTDispID	成员的 Automation 发送标识符。此字段可以为空。
Flags	RTFlags	决定成员行为的标志。要查看有效值和它们的含义，请参阅 InterfaceMemberFlags 枚举集合。


RTblObjects SQL 表

请参阅

对于对象关系库中的每个对象关系库对象，此 SQL 表都包含相应的行。IntID 列是此表的主键。

列名	数据类型	描述
IntID	RTIntID	对象的内部标识符。
TypeID	RTIntID	类定义对象的内部标识符，此对象符合该类定义对象。


RTblPropDefs SQL 表

请参阅

对于对象关系库中存储的每个属性定义对象，此 SQL 表都包含相应的行。当向对象关系库添加接口时，此表中包含的信息就由对象关系库用于创建与接口相关的 SQL 表。IntID 列是此表的主键。

列名	数据类型	描述
IntID	RTIntID	属性定义对象的内部标识符。
SQLType	RTSQLType	属性的 SQL 数据类型。
APIType	RTSQLType	属性的 C 语言数据类型。这是属性通过对象关系库编程接口时的类型。
SQLSize	RTSize	按其 SQL 数据类型分类的属性的字节长度。
SQLColName	RTSQLName	对应于此属性的 SQL 表中列的名称。此字段可以为空。
SQLScale	RTScale	数字属性的刻度，即小数点后数字的个数。此字段可以为空。
Flags	RTFlags	决定属性行为的标志。要查看值和它们指定的目标，请参阅 PropertyDefFlags 枚举集合。


RTblProps SQL 表

请参阅

标注属性是与单独的对象关系库对象或关系相关联的属性，并不是对于特定类型的所有对象或关系都要求存在此属性。对于附加到对象关系库对象每个标注属性实例，此 SQL 表都包含相应的列。IntID 和 PropID 列构成此表的主键。由 PropID 和 PropValue 列结合起来定义此表的一个非唯一的索引。

列名	数据类型	描述
IntID	RTIntID	对象的内部标识符，此标注属性附加到该对象。
PropID	RTIntID	转换属性定义对象的内部标识符，此标注属性的实例符合该对象。
PropValue	RTShortString	标注属性实例的值。


RTblRelshipProps SQL 表

请参阅

标注属性是与单独的对象关系库对象或关系相关联的属性，并不是对于特定类型的所有对象或关系都要求存在此属性。对于附加到关系的每个标注属性实例，此 SQL 表都包含相应的行。OrgID 、RelTypeID 、DstID 和 PropID 列构成此表的主键。由 PropID 和 PropValue 列结合起来定义此表的一个非唯一的索引。

列名	数据类型	描述
OrgID	RTIntID	关系中主对象的内部标识符。
RelTypeID	RTIntID	关系类型的内部标识符。
DstID	RTIntID	关系中从对象的内部标识符。
PropID	RTIntID	转换属性定义对象的内部标识符，此标注属性实例符合该对象。
PropValue	RTShortString	标注属性实例的值。


RTblRelships SQL 表

请参阅

对于对象关系库中存储的每个关系，此 SQL 表都包含相应的行。OrgID 、RelTypeID 和 DstID 列构成此表的主键。

列名	数据类型	描述
OrgID	RTIntID	关系中主对象的内部标识符。
RelTypeID	RTIntID	关系类型的内部标识符。
DstID	RTIntID	关系中从对象的内部标识符。
OrgTypeID	RTIntID	主对象所符合类的内部标识符。由于性能原因存储在此表中的冗余信息。
DstTypeID	RTIntID	从对象所符合类的内部标识符。由于性能原因存储在此表中的冗余信息。
PrevDstID	RTIntID	对有序关系集合，此字段包含集合序列中前一个关系的内部标识符。如果关系不可排序，则此字段为空。
DstName	RTNameString	关系中从对象的名称。如果该关系不是命名关系，则此字段为空。
DstNameLong	RTLongString	如果从对象名称的长度大于 DstName 字段的最大长度，则此字段包含整个名称；否则此字段为空。


RTblRelColDefs SQL 表

请参阅

对象关系库中的每个关系都与两个关系集合相关：主集合和从集合。每个关系集合符合一个集合类型（也叫集合定义）。集合类型定义集合在关系中充当的角色。对于对象关系库中定义的每个集合类型，此 SQL 表都包含相应的行。IntID 列是此表的主键。由 RelTypeID 列定义此表的一个非唯一的索引。

列名	数据类型	描述
IntID	RTIntID	集合定义对象的内部标识符。
RelTypeID	RTIntID	关系定义对象的内部标识符。
IsOrigin	RTBoolean	决定符合此集合类型的集合是主集合 (True) ，还是从集合 (False) 。
Flags	RTFLAGS	决定此类型集合行为的标志。要查看值和它们指定的目标，请参阅 CollectionDefFlags 枚举集合。
MinCount	RTCount	显露此类型集合的对象关系库项的最小个数。此字段可以为空。
MaxCount	RTCount	显露此类型集合的对象关系库项的最大个数。此字段可以为空。


RTblRelColPairs SQL 表

请参阅

对象关系库中的每个关系都与两个对象关系库对象相关：主对象和从对象。RTblRelcolPairs 表由对象关系库引擎用于决定哪个对象类可以在给定关系类型中充当主角色和从角色。

对特定关系类型中每对有效的对象类，此 SQL 表都包含相应的行。因为关系实际是附加到接口上的，也因为多个类可以实现一个特定接口，所以有多个对象充当特定关系类型的主角色或从角色。结果，关于单个关系类型的表中可以有多个列。

RelTypeID 、OrgTypeID 和 DstTypeID 列构成此表的主键。

列名	数据类型	描述
RelTypeID	RTIntID	关系定义对象的内部标识符。
OrgTypeID	RTIntID	类的内部标识符，其实例可以充当此类型关系中的主角色。
DstTypeID	RTIntID	类的内部标识符，其实例可以充当此类型关系中的从角色。


RTblSites SQL 表

请参阅

对于对象关系库可识别的每个对象关系库站点，此 SQL 表都包含相应的行。全局站点标识符在所有对象关系库中唯一标识一个站点，而本地站点标识符只在当前对象关系库中唯一标识一个站点。此表提供对这两种标识符互相转换的能力。较短的本地站点标识符是内部标识符（用于在当前对象关系库中标识对象）的一部分。

SiteID 列是此表的主键。在 SiteGUID 列上定义唯一索引。

列名	数据类型	描述
SiteID	RTSiteID	此对象关系库可识别的对象关系库站点的站点标识符。
SiteGUID	RTGUID	站点的全局标识符。
NextLocalID	RTLocalID	由对象关系库引擎专用。


RTblTypeLibs SQL 表

请参阅

对与全局标识符相对应的对象关系类型库（工具信息模型），此 SQL 表与其内部对象标识符相关。IntID 列是此表的主键。

列名	数据类型	描述
IntID	RTIntID	对象关系类型库的内部标识符。
TypeLibID	RTGUID	记录在系统注册表中的对象关系类型库的全局标识符。


Repository 概述

请参阅

Repositry 是一种对象关系库，用来保存有关对象之间关系的永久信息。它提供一种标准方式来描述软件工具：

•	软件工具由各类对象组成。

•	对象显露接口。

•	接口由属性、方法和集合组成。

•	集合建立接口之间的联系，从而建立对象之间的联系。

在 Repository 中，软件工具的模型是通过工具信息模型 (TIM) 建立的，每个 TIM 存储为一个对象关系类型库。

对象关系库的一个重要方面是其数据库的动态性和可扩展性。实际应用的结构很少一成不变，随着新模型的定义和现有模型的扩展，Repository 相应增加数据列和数据表。动态性和可扩展性的意义在于，它使任何软件工具或软件工具组都可以运用对象关系库建立模型，并且用户能够扩展现有模型。

例如，Visual Basic 5.0 提供了称为 MDO (Microsoft Development Objects) 的工具信息模型。MDO 模型在对象关系库中跟踪 Visual Basic 的工程（及其内容）。现有 Visual Basic 工程组在对象关系库中用 MdoProjects 集合表示。

Visual Basic 只是可以使用 Repository 建立软件系统模型的语言之一，Repository 同样适用于其他许多语言开发的软件工具。


Repository 浏览器概述

请参阅

Repository 浏览器是 Crescent Division of Progress Software 和 Microsoft Corporation 联合开发的成果。Repository 浏览器提供了对象关系库内容的层次视图。Crescent 还提供称为 Pro Browser 的增强型浏览器。

Repository 浏览器的一个关键特性是它直观显示数据的功能。直观显示是查找和使用对象关系库数据的关键。另一个关键特性是动态数据检索。在对象关系数据库不断增长时，运用动态数据检索功能可以优化性能，有效利用资源。


Repository 浏览器用户界面

请参阅

Repository 浏览器的用户界面无论外观还是操作都与“ Windows 资源管理器”十分相似。这种熟悉的界面使用户可以轻松自如地浏览对象关系库。

下列表格描述了部分浏览器菜单的功能：

“文件”菜单	描述
打开	打开对象关系库。
属性	显示查看对象属性的对话框。
“查看”菜单	描述
工具栏	显示或隐藏工具栏。
状态栏	显示或隐藏状态栏。
更新	更新浏览器视图。
过滤器	显示“ Repository 过滤器”对话框，改变对象关系库视图。


Repository 浏览器的层次结构

请参阅

所有对象都与对象关系库的根直接或间接（通过其他对象和关系）相连。否则将无法在对象关系库的层次结构中定位。浏览器按层次结构显示对象关系库数据。Pro Browser 用更直观、更丰富的方式来增强此视图。

浏览器数据可以看作一组重复的模式：接口包含集合；集合包含 Repository 对象；Repository 对象包含接口。下图说明了这一点。

要减少视图中的信息量，请用“ Repository 过滤器”对话框取消显示接口。


Repository 浏览器中的工具信息模型

请参阅

工具信息模型 (TIM) 是软件工具（或软件工具组）的对象模型。TIM 由类、关系类型、接口、属性定义、方法和集合类型组成。

工具信息模型存储在对象关系库中。每个 TIM 都描述组成软件工具的对象和关系的类型。例如，Visual Basic 5.0 提供了称为 MdoTypeLib 的 TIM ，描述组成 Visual Basic 工程的窗体、控件和其他对象，以及它们之间的关系（工程包含模块和窗体，窗体包含控件，等等）。

类型信息模型也是一种工具信息模型，Repository 用它来解释其他工具信息模型。


Repository 浏览器中的接口

请参阅

类提供一个或多个接口。Repository 对象是类的实例，因此它也提供与类一致的一个或多个接口。Repository 对象是封装的，只允许通过它的接口访问。每个接口都由属性、方法和集合组成。

缺省地，Repository 浏览器在对象关系库层次结构中显示接口。如果认为接口显示混乱，请用“ Repository 过滤器”对话框关闭对象关系库接口的显示。


Repository 浏览器中的 Repository 对象

请参阅

Repository 对象是类的实例，此类定义在 Repository 工具信息模型中。在下图中，“工程 1”和“RepVbBrowser”是 MdoProject 类的实例，它们都属于称为 MdoProjects 的集合。

Repository 对象提供一个或多个接口。每个接口定义一组属性、方法和集合。向相应的类添加接口，或者在现有接口中添加属性、方法或集合，可以扩展 Repository 对象的定义。


Repository 浏览器中的关系

请参阅

关系是一个 Repository 对象（主对象）与另一个 Repository 对象（从对象）之间的逻辑联系。

Repository 浏览器显示对象关系库的内容时，以 Repsitory 根对象（源对象）为基点，切换到所有附加到根对象的集合中的 Repository 对象（目标对象）。每个目标对象又可作为其他关系集合的源对象，依次类推。

Repository 浏览器不直接显示关系本身，而将关系包含在 Repository 层次结构树的集合中。选定一个对象，选择工具条中的“关系”按钮，或选择弹出式上下文相关菜单中的“关系”菜单项，都可以查看此对象的关系信息。


Repository 浏览器中的集合

请参阅

关系集合是连接到公共源对象的一组相同类型的关系。对象集合是通过关系集合连接到公共源对象的一组对象关系库对象。

对象集合在浏览器中显示为浏览树的节点。某一集合中的对象显示在该集合节点下面并与之相连。以资源管理器为例，文件夹的内容可以看作是文件和子文件夹的集合。这时，与所有文件和子文件夹相连的公共源对象称为父文件夹对象。只有一种类型的集合（文件和子文件夹的集合）可以定义为文件夹。因此，资源管理器并不显示实际的集合对象。而在对象关系库中，多个不同类型的集合可以连接到同一个父对象。这就是 Repository 浏览器在父对象和子对象（集合中的对象）之间显示集合的原因。

对象之间的关系实际上是对象接口之间的关系。这是使用对象关系库数据的关键：对象关系库包含对象接口之间关系的集合。


Repository 浏览器中的对象属性

请参阅

在 Repository 浏览器中可以查看两种属性：一种是所有对象关系库对象的公共属性；另一种是特定对象类的专有属性。

Repository 浏览器在专门的附签对话框中显示所有对象关系库对象的公共属性。下表描述了此对话框的内容。

在此对话框中不显示特定对象类的专有属性。它们由对象接口的 Members 集合的成员表示。

属性名	值
类型	通过合适的工具信息模型定义的对象关系库对象的类型。
位置	Access MDB 对象关系库的位置或 SQL Server 名称。
包含	如果是查看对象集合的属性，此属性包含此集合中对象的个数。
拥有	如果是查看对象关系库对象的属性，此属性包含此对象的相关成员的个数。


Repository 浏览器的过滤器对话框

请参阅

Repository 浏览器提供的一种过滤数据的简单方法。可以在“查看”菜单打开此对话框。“显示”附签允许您选择不同的图像类型来查看树和列表项。“类型”附签允许您指定是否在树中显示对象关系库接口。

•	如果改变“类型”附签中的选项并按“确定”键，整个对象关系库将关闭然后重画。

•	如果改变“显示”附签中的选项并按“确定”键，则只重画节点和列表项。


在 Repository 浏览器中查看对象类型

请参阅

每个对象关系库对象都符合特定的类（或称为对象类型）。在浏览树中选定对象，浏览器底部的第二个状态面板中即显示对象的类型。也可以通过属性对话框查看对象类型。要显示属性对话框，请用鼠标右键单击对象，然后选择“属性”。


Repository 根和 Repository 浏览器

请参阅

对象关系库根对象是对象关系库所有数据的根对象。Repository 浏览器通过下述方法显示对象关系库数据：显示附加到根对象的所有接口，然后显示连接到这些接口的集合，如此反复。

每个工具信息模型通常都向 Repository 根对象或最终与根对象相连的其他对象中添加一个接口。然后，添加的接口定义为包含一个或多个与工具信息模型中其他对象相关的集合。


升级到 Pro Browser

请参阅

增强型浏览器 Pro Browser 由 Crescent Division of Progress Software 提供。Pro Browser 的特点是：

•	更强大的过滤功能

•	搜索效率更高

•	可启动多个浏览器实例

•	允许创建用户自己的工具信息模型

•	向 Visual Basic 对象附加错误跟踪和测试实例

•	显示对象关系库数据的 WebView

如何与 Crescent 联系：

Crescent Division of Progress Software
14 Oak Park
Bedford, Massachusetts  01730

Phone:	        (617) 280-3000
Fax:	(617) 280-4025
BBS:	(617) 280-4221
Sales:	(800) 35-BASIC

CompuServe:	70662, 2605
Internet Mail:	crescent-support@progress.com
Web Site:	http://crescent.progress.com
Pro Browser:	http://crescent.progress.com/crescent/probrowser.html
FTP:	ftp.progress.com/pub/crescent


关于 Repository 浏览器

Copyright � 1996 Microsoft Corp. and Progress Software. All rights reserved.

Microsoft 、MS 、MS-DOS 和 Visual Basic 是注册商标，Windows 和 Windows 徽标是 Microsoft Corporation 的商标。

本文档中的信息如有改变，不另做通知。若无注释，示例中使用的公司、姓名和数据均为虚构。若无 Microsoft Corporation 的明确文字许可，不得因任何目的，以任何形式或方法复制或传播本文档中的任何部分。

必须有相应的许可证或协议，才能使用本文档中所描述的软件和／或数据库。只有获得许可的用户才能使用或复制这些软件和／或数据库。如果没有相应的许可证或协议，复制这些软件将是违法行为。若无 Microsoft Corporation 的明确文字许可，不得因任何目的，以任何形式或方法，包括影印、录音录象或信息存储和检索系统，复制或传播本文档中的任何部分。

Repository 浏览器由 Microsoft Corporation 和 Crescent Division of Progress Software 联合开发。升级版本 Pro Browser 由 Crescent 公司提供。