默认头像
路人甲
路人甲
  • 注册日期2006-09-22
  • 发帖数10
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2081回复:6

AE 连接SDE问题(VC)

楼主#
更多 发布于:2007-08-14 13:41

刚准备用VC+AE开始做一个数据库管理系统,先测试连接SDE。代码如下:

void CCONNECTDlg::OnButton1()
{

::CoInitialize(NULL);

IWorkspaceFactoryPtr pWorkspaceFactory;
IWorkspacePtr  pWorkspace;
pWorkspace.CreateInstance(CLSID_Sde4Workspace);
pWorkspaceFactory.CreateInstance(CLSID_SdeWorkspaceFactory);

IPropertySetPtr pPropertySet;
pPropertySet.CreateInstance(CLSID_PropertySet);
         
CString server = "zjk";
CString service = "esri_sde";
CString database = "ts";
CString user = "sde";
CString password = "sde";
CString version = "sde.default"

pPropertySet->SetProperties(CComVariant("SERVER"),CComVariant( server));
pPropertySet->SetProperty(CComBSTR("INSTANCE"),CComVariant(service));      
pPropertySet->SetProperty(CComBSTR("DATABASE"),CComVariant(database));
pPropertySet->SetProperty(CComBSTR("USER"),CComVariant(user));
pPropertySet->SetProperty(CComBSTR("PASSWORD"),CComVariant(password));
pPropertySet->SetProperty(CComBSTR("VERSION"),CComVariant(version));

HRESULT hr=pWorkspaceFactory->Open(pPropertySet,NULL,;pWorkspace);


             if(FAILED(hr))
                         {
                         
                         MessageBox("连接不上SDE  ");
                         
                         }    

}

但是返回的hr值为-2147216021,为什么不正确?我的所有服务是开启的,并且也引入了esriDatasourceGDB库。(用ARCATOLOG按照上面的参数可以连接上SDE)。请高手指教,不胜感激。

喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数15
  • QQ44842042
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-08-15 16:09

pWorkspace.CreateInstance(CLSID_Sde4Workspace);

去掉这行

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2006-09-22
  • 发帖数10
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-08-15 16:18

还是不行

是不是产品许可初始化的问题?

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数15
  • QQ44842042
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-08-15 16:28

pPropertySet->SetProperties(CComVariant("SERVER"),CComVariant( server));

//确认吗?
pPropertySet->SetProperties(CComVariant("SERVER"),CComVariant( server));

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-06-04
  • 发帖数15
  • QQ44842042
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-08-15 16:31
pPropertySet->SetProperty(CComBSTR("SERVER"),CComVariant( server));
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2006-09-22
  • 发帖数10
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2007-08-17 22:03

问题已解决。原来是没有加入Lience control 控件 。

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2006-06-17
  • 发帖数3108
  • QQ
  • 铜币6445枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2007-08-20 15:10
ok
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部