阅读:1713回复:2
[求助]如何用IP地址连接SDE?
<P>在以下的代码中,我用服务器名作为变量csSever的值,则连接成功;</P>
<P>但当我用IP地址作为它的值时,则连接失败。</P> <P>我想要做一个像Catalog那样,可以写IP做服务器名的,请问该怎么写?</P> <P>HRESULT ConnectToSDE(IWorkspace **ipSdeWS)<BR>{<BR> //Connecting to SDE<BR> CString csSever,csInstance,csUser,csPasswd,csDatabase,csVersion;<BR> csSever = "ghy-td2kwiodh72";<BR> csInstance = "esri_sde";<BR> csUser = "sde";<BR> csPasswd = "sde";<BR> csDatabase = "";<BR> csVersion = "sde.default";<BR> BSTR server; <BR> BSTR instance; <BR> BSTR user; <BR> BSTR passwd; <BR> BSTR database;<BR> BSTR version;</P> <P> server = csSever.AllocSysString ();<BR> instance = csInstance.AllocSysString();<BR> database = csDatabase.AllocSysString();<BR> user = csUser.AllocSysString();<BR> passwd = csPasswd.AllocSysString();<BR> version = csVersion.AllocSysString();</P> <P> IPropertySetPtr ipPropertySet;<BR> ipPropertySet.CreateInstance(CLSID_PropertySet);</P> <P> ipPropertySet->SetProperty(CComBSTR("SERVER"), CComVariant(server));<BR> ipPropertySet->SetProperty(CComBSTR(L"INSTANCE"), CComVariant(instance));<BR> ipPropertySet->SetProperty(CComBSTR(L"DATABASE"), CComVariant(database));<BR> ipPropertySet->SetProperty(CComBSTR(L"USER"), CComVariant(user));<BR> ipPropertySet->SetProperty(CComBSTR(L"PASSWORD"), CComVariant(passwd));<BR> ipPropertySet->SetProperty(CComBSTR(L"VERSION"),CComVariant(version) );</P> <P> IWorkspacePtr openWorkspace;<BR> IWorkspaceFactoryPtr ipWorkspaceFactory;<BR> ipWorkspaceFactory.CreateInstance(CLSID_SdeWorkspaceFactory);<BR> ipWorkspaceFactory ->Open(ipPropertySet,NULL, ;openWorkspace);<BR> if(openWorkspace == 0 ) return S_FALSE;<BR> (*ipSdeWS) = openWorkspace;<BR> (*ipSdeWS) ->AddRef();</P> <P><BR> return S_OK;</P> <P>//Connected<BR>}</P> |
|
1楼#
发布于:2008-01-10 10:38
<P>没看过,但是如果需要绑定的 话,Catalog是怎么做到的呢?它每次连服务器之前都要先用ip找到服务器的名字吗?</P>
|
|
2楼#
发布于:2008-01-10 09:57
$WINDOWS_PATH$\system32\drivers\etc下面的hosts.msn、services有没有主机ip绑定和端口绑定?
|
|
|