阅读:3309回复:12
AO怎样由featureclass得到数据源的位置
<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编辑过]
|
|
|
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> |
|
|
2楼#
发布于:2005-02-01 11:30
我打开的是shp文件,而不是连接的sde数据库或者其他的数据库
|
|
|
3楼#
发布于:2005-02-01 11:45
打开shp文件,好象这个没意义?
|
|
|
4楼#
发布于:2005-02-01 17:14
打开SHP,无法用propertySet
|
|
|
5楼#
发布于:2005-02-01 17:52
<P>偶也不知道楼猪在做什么,:)</P><img src="images/post/smile/dvbbs/em02.gif" />
|
|
|
6楼#
发布于:2005-02-02 12:21
<P>谢谢了!</P><P>我是想在打开一个shp文件后,由featureclass得到该文件的位置,用文本框显示出来,看来只能在打开文件的时候,动点脑筋了。</P>
|
|
|
7楼#
发布于:2005-02-02 15:43
shp和目录没关系的,所以不能这样来获取,文件路径很容易获取啊,和其他文件没区别的
|
|
|
8楼#
发布于:2005-02-02 20:54
<P>打开的是一个shp文件也是使用 <FONT color=#ff0000>aa = pPropertySet.GetProperty("DATABASE")</FONT>
</P> |
|
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>
|
|
上一页
下一页