|
阅读:1416回复:7
SDE程序的问题
<P>我用以下程序连接SDE,在文本框中输入参数即可连接SDE,但如果在文本框中不输入,而是直接点连接按钮,会出现系统本身自带的SDE连接对话框,应该怎样才能不出现该对话框,而是当文本框为空时提示要输入参数并返回该界面进行重新输入.</P>
<P>Public Sub AddSDECoverageLayer()<BR> Dim pWorkFact As IWorkspaceFactory2<BR> Dim pFWorkspace As IFeatureWorkspace<BR> Dim pFClass As IFeatureClass<BR> Dim pFLayer As IFeatureLayer<BR> <BR> Dim pPropset As IPropertySet<BR> Set pPropset = New PropertySet<BR> With pPropset<BR> .SetProperty "Server", Text1.Text '"202.168.1.2" 'm_SDEServerName<BR> .SetProperty "Instance", Text2.Text '5151 'm_SDEServerInst<BR> .SetProperty "user", Text3.Text ' sde 'm_SDEServerUserName<BR> .SetProperty "password", Text4.Text ' sde 'm_SDEServerPass<BR> .SetProperty "Database", Text5.Text ' yngis 'm_SDEDatabaseName<BR> .SetProperty "version", "SDE.DEFAULT" 'm_SDEVersionName<BR> End With<BR> <BR> Set pWorkFact = New SdeWorkspaceFactory<BR> Set pFWorkspace = pWorkFact.Open(pPropset, 0)<BR> 'Set pFClass = pFWorkspace.OpenFeatureClass("SDE.hydnt_arc")<BR> <BR> 'Set pFLayer = New FeatureLayer<BR> 'Set pFLayer.FeatureClass = pFClass<BR> 'pFLayer.Name = pFClass.AliasName<BR> <BR> 'MapControl1.AddLayer pFLayer<BR> 'MapControl1.Refresh<BR> <BR> If Not pFWorkspace Is Nothing Then<BR> MsgBox "连接SDE成功"<BR> Else<BR> MsgBox "请重新连接"<BR> End If<BR> <BR>End Sub</P><img src="images/post/smile/dvbbs/em12.gif" /> |
|
|
1楼#
发布于:2005-08-15 11:45
<P>自己在程序里判断了</P>
|
|
|
|
2楼#
发布于:2005-08-15 13:02
但是,用默认的对话框连接属性之后,就会出错!意思是,默认对话框中所填写的只没有传递过来!如果可以利用默认的对话框的话,不是更好吗?
|
|
|
3楼#
发布于:2005-08-15 17:30
<P>我尝试了一下,如果在IPropertySet的设置中的参数没有完全设定,那个Open函数会自动调用那个对话框。但是如果完全不设置,就会出现连接错误,只要有一个参数设置了默认值,就可以连接成功!但是,那个对话框好像是不能控制的!</P>
<P><BR> </P> |
|
|
4楼#
发布于:2005-08-16 08:28
<P>实际需要是要用自己的文本框,应该怎么改?</P><img src="images/post/smile/dvbbs/em12.gif" />
|
|
|
5楼#
发布于:2005-08-16 09:45
<P>你可以根据SDE的错误列表,获取你的错误代码,根据错误代码在程序里做出响应</P>
<P>ok?</P> |
|
|
|
6楼#
发布于:2005-08-16 15:10
<P>老大,能不能给点详细提示?</P>
|
|
|
7楼#
发布于:2005-08-17 10:59
<P>在默认框中输入参数不能正确连接,会出现错误提示?</P>
|
|