『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS Engine 10 开发手册(4-6)打开数据库的另一种方式

ArcGIS Engine 10 开发手册(4-6)打开数据库的另一种方式
数据集对象可以分为两大类,一种是 Table,我们无法将 Table 存储在要素数据集中(可以尝试下), 一种是 Geodataset,这个是要素类的容器。

     数据集对象可以分为两大类,一种是 Table,我们无法将 Table 存储在要素数据集中(可以尝试下), 一种是 Geodataset,这个是要素类的容器。数据集对象有一个很重要的属性,就是这个 Fullname,用这个 可以返回和数据集相关的名称对象,而这个名称对象有一个很重要的方法 Open(),这个可以获取和这个 名称对象相关的对象(内存中的),Open()方法的返回值是 object,所以用 Open 方法的时候,我们必须 心里清楚,自己到底是要得到那个对象,然后 QI 到我们要的对象上。

      IName 对象是一个代表性对象。通过使用 IName 对象,可以访问它所代表的对象的一些基本属性,而 不用将整个对象调入内存。我们用 IWorkspace 获得一个 Workspace 那可是 会调入内存的,而 IWorkspaceName 则不会,除非你用了 IWorkspaceName.open.在我看来,那些继承 IName 的接口,在数据转 换和叠加分析的时候经常要用到这个。

 

      IName 是一个抽象类,拥有很多子类,借助它的子类 IWorkspaceName 也可以打开数据库。打开一个 数据库 ,我 们要指 定它 的类型 ,是 个人数 据库 ,还是 文件 数据库 IWorkspaceName IWorkspaceName.WorkspaceFactoryProgID 属性用于完成这一操作,这个属性是一个枚举的常量类型

 

esriDataSourcesGDB.AccessWorkspaceFactory

esriDataSourcesFile.ArcInfoWorkspaceFactory

esriDataSourcesFile.CadWorkspaceFactory

esriDataSourcesGDB.FileGDBWorkspaceFactory

esriDataSourcesOleDB.OLEDBWorkspaceFactory

esriDataSourcesFile.PCCoverageWorkspaceFactory

esriDataSourcesRaster.RasterWorkspaceFactory

esriDataSourcesGDB.SdeWorkspaceFactory

esriDataSourcesFile.ShapefileWorkspaceFactory

esriDataSourcesOleDB.TextFileWorkspaceFactory

esriDataSourcesFile.TinWorkspaceFactory

esriDataSourcesFile.VpfWorkspaceFactory

示例代码

public IWorkspace Get_Workspace (string_pWorkspacePath)

{

  IWorkspaceName pWorkspaceName = new WorkspaceNameClass ();

  pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory";

  pWorkspaceName.PathName = _pWorkspacePath;

  IName pName = pWorkspaceName as IName;

  IWorkspace pWorkspace = pName.Open () as IWorkspace;

  return pWorkspace;

}

      京ICP备2025132830号-1 京公网安备 号