VB代码连接ArcSDE的方法总结

 Qustion:

我的后台数据库是SqlServer的,在数据库中建立了一个空间数据库名称为sde

在VB中程序如下:

Dim dc As New   MapObjects.DataConnection

dc.Server = "sde83:servername"             ‘servername是数据服务所在服务器

第一个问题——这里的servername是SQL服务器名称么,还是其他的?

dc.User ="sa"

dc.Password = "sa"

第二个问题——这里的User是什么?当初我在安装ArcSDE for Sql的时候好象没有user的设置啊?只有一个user password的设置?这里是指数据库Sql的用户么?

dc.Database   "sde"   ‘esri_sde是数据实例,sde是数据库名称



在安装ArcSDE过程中,设置如下:

Service name:             esri_sde

Service port numver: 5151/tcp

SDE user password:    *** //我设为sde

Database name:          sde

SQL Server instance: SABRINA

Server   name:             SABRINA



我填了好多次,都没有连接成功,然而我的esri_sde服务已经启动了,为什么呢?

希望大虾们帮帮忙~~ Bow

Answer:

真是狂汗!

我看了某个哥们写的东东如下:(*号内)

************************************************************

MO中连接SDE代码如下:

(我搞不懂的是明明是9.0的SDE为什么要用SDE83访问。下面是Delphi中的代码,VB中应该类似,用MOVIEW2修改了下就可以连接SDE了)

dc:=IMoDataConnection(CreateOleObject('MapObjects2.DataConnection'));

dc.Server:='sde83:tangf';//服务器名前需要加SDE加版本号

dc.User:='sa';//用户名,当然只要有读写权限的用户就可以

dc.Password:='123456';//密码

dc.Database:='sde';//数据库,当然也可以是其他数据库啦

*************************************************************

他犯的基本错误也就不说了,像什么字符串的双引号用成了单引号;最要命的是这句话“9.0的SDE为什么要用SDE83访问”,这句话弄得我一直坚信是用sde83来引擎,因为我装的也是9.0sde版的,可没想到问题就在这,最后我用sde81就通过了,再汗一个!不过也并非一定就是那位大哥错了,肯能他用的是oracle的RDBMS。

另外再说一下:

Server:填写的确实就是Sql服务器的名称,要是安装默认的话,应该就是你的计算机名,不是服务实例,我这里就是SABRINNA了。

Database:创建的数据库,其实是创建的服务实例名称,比如我创建一个服务实例esri_sde,但空间数据库是sde,这里填写就应该是esri_sde,或者instance=esri_sde,或者instance=esri_sde;database=sde。

User和Password用的并不是Sql本身的用户名和密码,而是设置的SDE的。密码就是安装过程中可以设置的SDE user的密码,用户名偶还不知道在哪儿设置,不过默认的是sde。

有时候不能太相信现成的东西,怀疑精神的确很重要!

原文地址:https://www.cnblogs.com/googlegis/p/2979097.html