如下代码演示了如何通过MVBA代码给一个现有图形元素添加一个ODBC的数据库链接。
Sub AddDBLink() Dim ele As Element Set ele = ActiveModelReference.GetElementByID(DLongFromLong(6027526)) Dim dblink As DatabaseLink Set dblink = CreateDatabaseLink(750, 2, msdDatabaseLinkageOdbc, False, 0) ele.AddDatabaseLink dblink ele.Rewrite End Sub
在调用方法CreateDatabaseLink时需要了解两个概念:MSLink和Entity。其中的Entity是一个数字,它对应当前数据库中的一个表(Table)。从当前数据库的mscatalog表中能找到每个表的Entity数。比如MicroStation自带的gis数据库,打开mscatalog表能看到表highway的entitynum为1,表parcel的entitynum为2,等等。MSLink是某个数据表中的一行的唯一标识,要和图形关联的表必须具有一数字列,名字叫做MSLink,它是唯一的。故通过Entity和MSLink两个数字就能唯一定位到某个表中的某一列。
还有一点要注意的是,调用完AddDatabaseLink后要记得调用Rewrite,前者是在内存中将DatabaseLink附加到图形元素尾部,后者是将修改后的元素写回模型中。