wa0221
路人甲
路人甲
  • 注册日期2008-03-19
  • 发帖数1
  • QQ
  • 铜币112枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1116回复:0

打开GeoDatabase数据出现问题!

楼主#
更多 发布于:2008-10-02 22:28
<P>//打开GeoDatabase<BR>IWorkspacePtr CDataOperator::OpenPGD(CString sFullName)<BR>{<BR> IWorkspacePtr ipWorkspace;<BR> HRESULT hr; </P>
<P> IWorkspaceFactoryPtr ipWSFactory(CLSID_AccessWorkspaceFactory);<BR> hr = ipWSFactory->OpenFromFile((_bstr_t)sFullName,NULL,;ipWorkspace);<BR> if(FAILED(hr))<BR>  return NULL;</P>
<P> return ipWorkspace;<BR>}</P>
<P>//用以打开工作空间中指定的FeatureClass<BR>IFeatureClassPtr CDataOperator::OpenPGDFeatCls(IWorkspacePtr ipWs, CString sFCName)<BR>{<BR> if(ipWs == NULL)<BR>  return NULL;<BR> HRESULT hr;</P>
<P> IFeatureClassPtr ipFeatCls;<BR> IFeatureWorkspacePtr ipFeatureWS;<BR> hr = ipWs ->QueryInterface(__uuidof(IFeatureWorkspace),(void* *);ipFeatureWS);<BR> if(FAILED(hr))<BR>  return NULL;<BR> hr = ipFeatureWS ->OpenFeatureClass((_bstr_t)sFCName,;ipFeatCls); //出现错误。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ;<BR> if(FAILED(hr))<BR>  return NULL;<BR> return ipFeatCls;</P>
<P>}</P>
<P>//用来从GeoDatabase得到特征层<BR>BOOL CDataOperator::GetFeatLyrFromPGD()<BR>{<BR> //指定文件名和特征类名,可以根据需要指定相应的带有路径的完整文件名<BR> CString sFileName = "E:\\arcgis\\ArcTutor\\Map\\airport.mdb";<BR> CString sFCName ="tracts";<BR> CString sFLyrName = "tracts_pdb";</P>
<P><BR> //打开工作空间和其中的FeatureClass<BR> IWorkspacePtr ipWs = OpenPGD(sFileName);<BR> IFeatureClassPtr ipFeatCls = OpenPGDFeatCls(ipWs,sFCName);<BR> if(ipFeatCls == NULL)<BR>  return FALSE;</P>
<P> //将打开的FeatureClass添加到地图中<BR> BOOL bRes = AddFC2Map(ipFeatCls,sFLyrName,5);<BR> if(bRes == FALSE)<BR>  return FALSE;</P>
<P> return TRUE;<BR>}</P>
<P>.............................................................................................</P>
<P>hr = ipFeatureWS ->OpenFeatureClass((_bstr_t)sFCName,;ipFeatCls); //出现错误</P>
<P>ipFeatCls返回NULL,这是怎么回事啊?</P>
<P>各位帮帮忙吧!万分感谢。</P>
喜欢0 评分0
游客

返回顶部