阅读:2071回复:6
AE 连接SDE问题(VC)
<P>刚准备用VC+AE开始做一个数据库管理系统,先测试连接SDE。代码如下:</P>
<P>void CCONNECTDlg::OnButton1() <BR>{</P> <P>::CoInitialize(NULL);<BR> <BR> IWorkspaceFactoryPtr pWorkspaceFactory;<BR> IWorkspacePtr pWorkspace; <BR> pWorkspace.CreateInstance(CLSID_Sde4Workspace);<BR> pWorkspaceFactory.CreateInstance(CLSID_SdeWorkspaceFactory);</P> <P> IPropertySetPtr pPropertySet;<BR> pPropertySet.CreateInstance(CLSID_PropertySet);<BR> <BR> CString server = "zjk";<BR> CString service = "esri_sde";<BR> CString database = "ts";<BR> CString user = "sde";<BR> CString password = "sde";<BR> CString version = "sde.default"</P> <P>pPropertySet->SetProperties(CComVariant("SERVER"),CComVariant( server));<BR>pPropertySet->SetProperty(CComBSTR("INSTANCE"),CComVariant(service)); <BR>pPropertySet->SetProperty(CComBSTR("DATABASE"),CComVariant(database));<BR>pPropertySet->SetProperty(CComBSTR("USER"),CComVariant(user));<BR>pPropertySet->SetProperty(CComBSTR("PASSWORD"),CComVariant(password));<BR>pPropertySet->SetProperty(CComBSTR("VERSION"),CComVariant(version));</P> <P>HRESULT hr=pWorkspaceFactory->Open(pPropertySet,NULL,;pWorkspace);</P> <P><BR> if(FAILED(hr))<BR> {<BR> <BR> MessageBox("连接不上SDE ");<BR> <BR> } </P> <P>}</P> <P>但是返回的hr值为-2147216021,为什么不正确?我的所有服务是开启的,并且也引入了esriDatasourceGDB库。(用ARCATOLOG按照上面的参数可以连接上SDE)。请高手指教,不胜感激。</P> |
|
1楼#
发布于:2007-08-15 16:09
<P>pWorkspace.CreateInstance(CLSID_Sde4Workspace);</P>
<P>去掉这行</P> |
|
2楼#
发布于:2007-08-15 16:18
<P>还是不行</P>
<P>是不是产品许可初始化的问题?</P> |
|
3楼#
发布于:2007-08-15 16:28
<P>pPropertySet->SetProperties(CComVariant("SERVER"),CComVariant( server));</P>
<P>//确认吗?<BR>pPropertySet->SetProperties(<STRONG>CComVariant</STRONG>("SERVER"),CComVariant( server));</P> |
|
4楼#
发布于:2007-08-15 16:31
pPropertySet-><STRONG>SetProperty</STRONG>(<STRONG>CComBSTR</STRONG>("SERVER"),CComVariant( server));
|
|
5楼#
发布于:2007-08-17 22:03
<P>问题已解决。原来是没有加入Lience control 控件 。</P>
|
|
6楼#
发布于:2007-08-20 15:10
ok<img src="images/post/smile/dvbbs/em01.gif" />
|
|