问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

arcgis engine 如何连接数据库

发布网友 发布时间:2022-04-09 04:26

我来回答

3个回答

懂视网 时间:2022-04-09 08:48

最近写服务需要用ArcEngine连接Oracle数据库,以前连接数据库都会弹出一个窗体。然后填好之后就可以连接了,这样很麻烦。

代码如下:

 

 private bool ConnectToSde()
 {
  IWorkspace workspace;
  ESRI.ArcGIS.esriSystem.IPropertySet pPropset = new ESRI.ArcGIS.esriSystem.PropertySet();
  IWorkspaceFactory pWorkspaceFact = new SdeWorkspaceFactory();
  pPropset.SetProperty("server", "localhost");
  pPropset.SetProperty("database", "database");
  pPropset.SetProperty("user", "user");
  pPropset.SetProperty("password", "password");
  pPropset.SetProperty("version", "SDE.DEFAULT");
  workspace = pWorkspaceFact.Open(pPropset, 0);
  return true;
 }

 

运行到 workspace = pWorkspaceFact.Open(pPropset, 0);的时候就会弹出一个ArcCatalog连接数据库的窗体,如下图所示:

技术分享

 

原因:

原因是在填写属性的时候没有设置实例(INSTANCE)。

解决办法:

正确代码如下:

 private bool ConnectToSde()
 {
  IWorkspace workspace;
  ESRI.ArcGIS.esriSystem.IPropertySet pPropset = new ESRI.ArcGIS.esriSystem.PropertySet();
  IWorkspaceFactory pWorkspaceFact = new SdeWorkspaceFactory();
  pPropset.SetProperty("server", "localhost");
  pPropset.SetProperty("INSTANCE", "sde:oracle11g:localhost/database");//如果没有设置INSTANCE属性,会有连接窗体弹出
  pPropset.SetProperty("database", "database");
  pPropset.SetProperty("user", "user");
  pPropset.SetProperty("password", "password");
  pPropset.SetProperty("version", "SDE.DEFAULT");
  workspace = pWorkspaceFact.Open(pPropset, 0);
  return true;
 }

问题2:

在连接Oracle数据库的时候,如果INSTANCE属性填写错误就会出现如下问题 SDE not  running on server。

技术分享

解决办法:

见问题1解决办法贴出来的代码。

ArcEngine连接Oracle数据库

标签:

热心网友 时间:2022-04-09 05:56

arcsde是连接用户程序和数据库的中间纽带。他负责把空间数据存入数据库,或者从数据库读出。注意,它只能操作空间数据,普通的关系数据不受他管理。你先确定要读的是空间数据还是普通的数据。普通的数据不需要sde,直接用程序连接sql server打开表读取就行了。空间数据的话,用arcengine的功能连接arcsde,向arcsde请求数据就会返回空间数据了。arcsde可以和数据库装在一台机器上,也可以不同机器。开发的机器也可以装或不装。就是说,开发、arcsde、数据库可以分别在不同的机器上安装,靠网络连接访问即可。也可以在一台机器上,但仍然是靠网络连接的。不知道说明白没有。

热心网友 时间:2022-04-09 07:14

vs自带的是sql Express,建议你选择Oracle数据库吧,装了Oracle之后再装上ArcSDE。然后你当网上稍微搜一下连接ArcSDE就有你要的例子了。至于怎么安装,网上也有。如果你装不了的话,可以私聊。追问我做的只是一个操作界面,数据库由另外一个人做,他用的是SQL Server2005。我需要从他的电脑上提取数据,但也只是关系数据库,包括GPS信息和一些其他信息,空间数据库暂时还没有。空间数据库和关系数据库能分开在两个电脑上吗?arcsde应该是和空间数据库装在一起吧?

追答ArcSDE使用的是同一个Oracle服务器,但来源于不同数据库。他们是可以分数据库存储的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...比20个少,把它们平均放在2个,3个4个6个盘子里都正好放完这... 6.一堆桃子,数量比20多,比30少,分给4只小猴,正好分完,如果分给3只... ...给3个小朋友和平均分给4个小朋友正好分完没 ...20张,3张3张地数,最后多1张,4张4张地数正好数完,这些图片最多有多少... ...比20小,它3个3个数或4个4个数都正好数完,这个数是多少? ...3个数或4个4个数都正好数完,这个数是多少... QQ飞车手游个人竞技模式怎么玩 个人竞技模式规则玩法 苹果电脑黑屏发出咚咚的声音苹果macbookpro开机嘟嘟嘟3声报警 为什么刚开机的时候电脑滋滋响开机电脑滋滋响运行正常 3 HDFS分布式文件系统 古代发明家的小故事 爱迪生的故事,50字 发明家的故事50字 有关发明创造的故事50字 我一直是金固的股民,我记得加上前两次,这次转让新康众第三次了,收益有多少啊? 这次金固转让新康众股份,套现10多个亿,谁知道持股比例现在多少了? 爱一个人,但那个人在你最需要他的时候离开,我该怎么办? 在你最需要他的时候抛弃过你的人,原谅他还会抛弃你第二次吗 在你最需要帮忙的时候 你朋友个个都找借口帮不上忙 你还要继续交往下去吗 为什么有些朋友总是在我最需要的时候,他却离开了? 当一个在你最需要的时候把你抛弃,狠心离开的人,回头了,该不该再接受他 在你最需要帮助的时候你会找谁来帮助你? 在我最需要的时候,男朋友总是不在我身边我该怎么办? 女生说: 在你最需要陪的时候,我肯定愿意做你的那个第一位! 这句话啥意思? 我男朋友在我最需要的时候他为点小事情就不理我了,我该怎么办? 在你最需要用钱的时候,你做过最卑微的事是什么? 一个男的平时对你很好但却在你最需要最关键的时候没出现是怎么回事呢? 我荣耀勋章总活跃度上限怎么是1800,我都荣耀勋章147级了,难道我还要再花钱买级? 在你最需要我的时候.......手牵手.......那首歌的歌词 我荣耀magic弄丢了怎么办,可以找回来吗 菏泽天美国际盐城电影票一张多少钱? 猪蛔虫病的主要临床症状有哪些? 猪得了血虫病有什么症状? 猪体内有虫会出现什么症状? 猪蛔虫病对猪只的主要危害和主要症状是什么? 群聊天功能被限制怎么办 该聊天功能当前已被限制使用是什么意思 被永久限制群聊和朋友圈咋办啊? 周公解梦之在提车之前梦到提车后开车撞车了 猪肉生虫是什么样的 昨天晚上做梦梦到自己开车撞到货车下面去了是什么意思? 昨天晚上做梦,梦见自己开车出车祸了,自己又不会开车,怎么会做哪样的梦嘛,做哪样的梦代表什么意思? 该聊天功能当前已被限制使用是什么意思? 聊天功能被限制怎么办? 我没有违规就说我被*使用了但和个人可以聊天就是不能在群里发信息也接不到群里的信息? 微信显示该聊天功能当前已被限制使用,怎么解除? 被永久限制群聊和朋友圈咋办啊? 微信显示该聊天功能当前已被限制使用,怎么解除? 银行卡快捷支付关闭了怎么开通今天去银行银行的工作人员也不会开通 精工1万左右的手表有哪些型号 求推荐 最好是自动机械表 谢谢