waterblue
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数72
  • QQ
  • 铜币387枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2985回复:12

AO怎样由featureclass得到数据源的位置

楼主#
更多 发布于:2005-01-31 16:50
<P>如果连的是数据库的话,我用以下代码,运行通过,结果是正确的:(可直接看最后红色的代码)</P>
<P>    Dim pWorkspaceFactory As IWorkspaceFactory
    Set pWorkspaceFactory = New AccessWorkspaceFactory
    Dim pPropertySet As IPropertySet
    Set pPropertySet = New PropertySet
    pPropertySet.SetProperty "DATABASE", F:\arcgis\DeveloperKit\samples\data\usa\usa.mdb"
    Dim pWorkspace As IWorkspace
    Set pWorkspace = pWorkspaceFactory.Open(pPropertySet, Me.hWnd)
    Dim pEnumDataSet  As IEnumDataset
    
'    Set pEnumDataSet = pWorkspace.Datasets(esriDTFeatureClass)
    Set pEnumDataSet = pWorkspace.Datasets(esriDTFeatureDataset)
    Dim pFeatureDataset As IFeatureDataset
    Set pFeatureDataset = pEnumDataSet.Next
        
    Dim pfeatclass As IFeatureClass
    Set pfeatclass = pFeatureDataset.Subsets.Next</P>
<P>
    ''QI to IDataset to prove you have a featureclass...
    Dim pdataset As IDataset
    Set pdataset = pfeatclass
    Dim player As IFeatureLayer
    Set player = New FeatureLayer             </P>
<P>    Set player.FeatureClass = pfeatclass            
    MapControl1.AddLayer player    
    
    Dim aa As String
'    Dim pPropertySet As IPropertySet
    Set pPropertySet = pdataset.Workspace.ConnectionProperties
    <FONT color=#ff0000>aa = pPropertySet.GetProperty("DATABASE")</FONT>
      
     Text1.Text = aa ; "::" ; pdataset.Name</P>
<P>如果我打开的是一个shp文件,怎么样得到呢?</P>
<P>直接一点就是</P>
<P>    Set pPropertySet = pdataset.Workspace.ConnectionProperties
    <FONT color=#ff0000>aa = pPropertySet.GetProperty("???")</FONT></P>
<P><FONT color=#ff0000>“???”这个参数是什么?</FONT></P>
<P><FONT color=#ff0000></FONT></P>

[此贴子已经被作者于2005-1-31 16:52:32编辑过]
喜欢0 评分0
http://www.geostar.com.cn(吉奥 公司) http://www.waterblue.com.cn(水之灵,蓝之静 个人)
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-02-01 11:22
<P>在ao帮助里是这样解释ConnectionProperties的:</P><P>The connection properties of the WorkspaceName</P><P>所以你可以这样写:</P><P>            Set pPropset = pGxDatabase2.WorkspaceName.ConnectionProperties
            lstSdeConnectionInfo.Clear
            lstSdeConnectionInfo.AddItem "SERVER: " ; pPropset.GetProperty("SERVER")
            lstSdeConnectionInfo.AddItem "INSTANCE: " ; pPropset.GetProperty("INSTANCE")
            lstSdeConnectionInfo.AddItem "DATABASE: " ; pPropset.GetProperty("DATABASE")
            lstSdeConnectionInfo.AddItem "USER: " ; pPropset.GetProperty("USER")</P>
举报 回复(0) 喜欢(0)     评分
waterblue
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数72
  • QQ
  • 铜币387枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-02-01 11:30
我打开的是shp文件,而不是连接的sde数据库或者其他的数据库
http://www.geostar.com.cn(吉奥 公司) http://www.waterblue.com.cn(水之灵,蓝之静 个人)
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2005-02-01 11:45
打开shp文件,好象这个没意义?
举报 回复(0) 喜欢(0)     评分
zhousky
论坛版主
论坛版主
  • 注册日期2003-08-01
  • 发帖数281
  • QQ
  • 铜币1027枚
  • 威望3点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-02-01 17:14
打开SHP,无法用propertySet
不要看我噢
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
5楼#
发布于:2005-02-01 17:52
<P>偶也不知道楼猪在做什么,:)</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
waterblue
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数72
  • QQ
  • 铜币387枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-02-02 12:21
<P>谢谢了!</P><P>我是想在打开一个shp文件后,由featureclass得到该文件的位置,用文本框显示出来,看来只能在打开文件的时候,动点脑筋了。</P>
http://www.geostar.com.cn(吉奥 公司) http://www.waterblue.com.cn(水之灵,蓝之静 个人)
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
7楼#
发布于:2005-02-02 15:43
shp和目录没关系的,所以不能这样来获取,文件路径很容易获取啊,和其他文件没区别的
举报 回复(0) 喜欢(0)     评分
xxwwdd
路人甲
路人甲
  • 注册日期2003-08-19
  • 发帖数88
  • QQ
  • 铜币230枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2005-02-02 20:54
<P>打开的是一个shp文件也是使用  <FONT color=#ff0000>aa = pPropertySet.GetProperty("DATABASE")</FONT>
</P>
举报 回复(0) 喜欢(0)     评分
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-02-18 17:46
<P>想得到楼主的答案可以这样写代码:</P><P>假设pFtCls是需要得到数据源路径的IFeatureClass</P><P>Dim pDataset as IDataset</P><P>Dim strPath as String</P><P>set pDataset = pFtCls</P><P>strPath = pDataset .Workspace .PathName </P>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部