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 开发手册
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。