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

ArcGIS Engine 10 开发手册(4-2)打开一个数据库

ArcGIS Engine 10 开发手册(4-2)打开一个数据库
要打开一个数据库,也就意味1着我们要得到那个工作空间,而工作空间是一个普通类,也就意味着我 们只能从其他类来得到这个工作空间。

       要打开一个数据库,也就意味着我们要得到那个工作空间,而工作空间是一个普通类,也就意味着我 们只能从其他类来得到这个工作空间,这个类就是工作空间工厂(WorkspaceFactory),而这个类又是一个 抽象类,也就意味着我们只能使用它的子类来实例化一个对象,WorkspaceFactory 有众多的子类,我们可 以从 OMD 图中获得,如下图:

     在这里说明下,shapefile Esri 早期的空间数据格式,以文件管理, shapefile 文件所在的文件夹也被抽象为一个 workspace,相应的要的 shapefile,就要用到 shapefileworkspacefactory 这个工厂对象。

 

      IWorkSpaceFactory Geodatabase 的入口,它定义了数据库的通用属性,比如打开,创建等,我们在 ArcGIS

      Engine 的帮助中可以详细的得到它的信息,如下图:

 

 

 

     打开个人数据库

public IWorkspace GetMDBWorkspace (String_pGDBName)

{

  IWorkspaceFactory pWsFac = new  AccessWorkspaceFactoryClass ();

  IWorkspace pWs = pWsFac.OpenFromFile (_pGDBName,0);

  return pWs;

}

     打开文件数据库

public IWorkspace GetFGDBWorkspace (String_pGDBName)

{

  IWorkspaceFactory pWsFac = new FileGDBWorkspaceFactoryClass ();

  IWorkspace pWs = pWsFac.OpenFromFile (_pGDBName, 0);

  return pWs;

}

 

 

      打开SDE数据库

      打开 SDE 数据库我们使用的是 Open 方法,要用这个方法,我们就要对 IPropertySet 对象设置,要打开 SDE 数据库,我们要获取 SDE 数据库的服务器地址,数据库实例,数据库,用户,密码等参数。而 IPropertySet 就好比一个 Key-Value 的对象,用来帮组我们设置这些,然后传到 Open 方法中。

 

public IWorkspace GetSDEWorkspace (String_pServerIP, String_pInstance, String _pUser, String_pPassword, String_pDatabase, String_pVersion)

{

  ESRI.ArcGIS.esriSystem.IPropertySet pPropertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass ();

  pPropertySet.SetProperty ("SERVER", _pServerIP);

  pPropertySet.SetProperty ("INSTANCE", _pInstance);

  pPropertySet.SetProperty ("DATABASE", _pDatabase);

  pPropertySet.SetProperty ("USER", _pUser);

  pPropertySet.SetProperty ("PASSWORD", _pPassword);

  pPropertySet.SetProperty ("VERSION", _pVersion);

  ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2 workspaceFactory;

  workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2) new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass ();

  return workspaceFactory.Open (pPropertySet, 0);

}

      注意,打开 SDE 数据库需要用到 ArcGIS Engine 运行时的企业级许可。

      京ICP备08100627号-22 京公网安备 11010802030428号