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

本文目录
  • 正文

要打开一个数据库,也就意味着我们要得到那个工作空间,而工作空间是一个普通类,也就意味着我 们只能从其他类来得到这个工作空间,这个类就是工作空间工厂(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 运行时的企业级许可。

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群:291616564 麻辣GIS

微信公众号:malagis,扫描右边二维码直接关注。

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:,GIS爱好者。
分享本文,请您带上本文链接

发表评论