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。
有时候不能太相信现成的东西,怀疑精神的确很重要!