Foxtable(狐表)用户栏目专家坐堂 → [求助]动态切换外部数据源(已解决)


  共有9379人关注过本帖树形打印复制链接

主题:[求助]动态切换外部数据源(已解决)

帅哥哟,离线,有人找我吗?
yyzlxc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]动态切换外部数据源(已解决)  发帖心情 Post By:2012/6/5 9:42:00 [显示全部帖子]

远程和本地各有两个SQL数据源,如果远程数据源不能连接就同时连接本地两个外部数据源,本地两个外部数据源的连接字符串分别为:

 

Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JG;Data Source=HHJY-PC\HHJY01

 

Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=SCGL;Data Source=HHJY-PC\HHJY01

 

在BeforeConnectOuterDataSource事件中如何设置两个数据源的连接字符串,请各位老师指教,谢谢!!

 

If Network.Ping("192.168.0.188")
     '保持不变
Else If Network.Ping("192.168.0.13")
      e.ConnectionString =
End If

[此贴子已经被作者于2012-6-6 11:11:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/6/5 12:30:00 [显示全部帖子]

在BeforeConnectOuterDataSource事件中设置如下代码,出现两次同样的错误提示,代码应该如何修改,请各位老师指教,谢谢!!

 

If Network.Ping("192.168.0.188") Then
    Connections.Add("JGXT","Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JGXT;Data Source=192.168.0.2")
    Connections.Add("SCGL","Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=SCGL;Data Source=192.168.0.188")
ElseIf Network.Ping("192.168.0.13") Then
    Connections.Add("JG","Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JG;Data Source=HHJY-PC\HHJY01")
    Connections.Add("SCGL","Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=SCGL;Data Source=HHJY-PC\HHJY01")
Else
    MessageBox.Show("网络不通")
End If

 

 


图片点击可在新窗口打开查看此主题相关图片如下:a.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/6/5 15:44:00 [显示全部帖子]

问题解决,代码如下,当断开局域网重新打开项目时,会自动与本机的数据库连接(原来需要修改连接字符串,很麻烦)。

 

If Network.Ping("192.168.0.188") Then
    If e.name = "JGXT" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JGXT;Data Source=192.168.0.2"
    ElseIf e.name = "SCGL" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=oa;Initial Catalog=SCGL;Data Source=192.168.0.188"
    End If
ElseIf Network.Ping("hhjy-pc") Then
    If e.name = "JG" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JG;Data Source=HHJY-PC\HHJY01"
    ElseIf e.name = "SCGL" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=SCGL;Data Source=HHJY-PC\HHJY01"
    End If
Else
    MessageBox.Show("网络不通")
End If

 

 

 

代码贴不上去,所以加了一个空格,应用时将e.Connection String 中间的空格去除。

[此贴子已经被作者于2012-6-5 17:05:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/6/5 17:02:00 [显示全部帖子]

又有新问题,能否利用UpdatePath,在动态变更外部数据源的同时,变更系统升级路径,升级路径分别是\\192.168.0.188\scgl file://hhjy-pc/scgl,代码如何写,请各位老师指教,谢谢!!
[此贴子已经被作者于2012-6-5 17:04:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/6/5 17:55:00 [显示全部帖子]

谢谢狐爸老师的回复,问题是如何用UpdatePath来设置升级路径,还请狐爸老师指教,谢谢!!

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]动态切换外部数据源(已解决)  发帖心情 Post By:2012/6/5 18:51:00 [显示全部帖子]

谢谢狐爸老师的指教,局域网的升级路径分别\\192.168.0.188\scgl 连接成功。但是本机的升级路径 file://hhjy-pc/scgl却连接不上,将这个升级路径复制到项目属性的在线升级路径却可以连接,不知问题出在哪里?请狐爸老师指教,谢谢!!

 

If Network.Ping("192.168.0.188") Then
    If e.name = "JGXT" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JGXT;Data Source=192.168.0.2"
    ElseIf e.name = "SCGL" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=zjjyoa;Initial Catalog=SCGL;Data Source=192.168.0.188"

        UpdatePath = “\\192.168.0.188\scgl

    End If
ElseIf Network.Ping("hhjy-pc") Then
    If e.name = "JG" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=JG;Data Source=HHJY-PC\HHJY01"
    ElseIf e.name = "SCGL" Then
        e.Connection String = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=SCGL;Data Source=HHJY-PC\HHJY01"
        UpdatePath =“file://hhjy-pc/scgl

    End If
Else
    MessageBox.Show("网络不通")
End If

 

[此贴子已经被作者于2012-6-5 18:53:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/6/6 10:36:00 [显示全部帖子]

谢谢狐爸老师的指教,好像还是不行,我现在解决的方法是将本地升级路径放在项目属性的在线升级路径里,可以实现预期的效果。再次感谢狐爸老师的热心帮助!!

 回到顶部