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。

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

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...