Foxtable(狐表)用户栏目专家坐堂 → sql数据源设置问题


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

主题:sql数据源设置问题

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


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
sql数据源设置问题  发帖心情 Post By:2022/5/11 17:46:00 [只看该作者]

前提:服务器有多个ip,设置ConnectionString里面的ip默认是192.168.0.150;

在打开项目的时候,
project有个ip的txt文件,如果文件有内容(我电脑上的时192.168.1.150),则用文件里面的ip替换掉192.168.0.150;
如果没有则换192.168.1.150以及192.168.111.150尝试连接

我这个项目在打开的时候能正常连接,加载数据,但是在开发界面>>外部数据表,管理外部数据表的时候提示无法连接,
查看设置的ConnectionString仍然是192.168.0.150,然后报错如下,我该怎么解决

ps:更新版本前好像没有遇到这样的问题


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2022-05-11_17-25-03.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/12 8:27:00 [只看该作者]

数据源设置的代码发上来看看

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


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/5/12 9:17:00 [只看该作者]

BeforeConnectOuterDataSource事件代码

Dim ipFile As String = e.ProjectPath & "ip.txt"
If e.Name = "foxtable人事数据库" OrElse e.name = "foxtable" OrElse e.name = "mirror" Then
    Dim ip As String = FileSys.ReadAllText(ipFile)
    If ip <> "" Then
        e.ConnectionString = e.ConnectionString.Replace("192.168.0.150",ip)
    Else 
        If Connections.TryConnect(e.ConnectionString) Then '如果第一个IP接通
            filesys.WriteAllText(e.projectpath & "ip.txt","192.168.0.150",False)
            
        Else If Connections.TryConnect(e.ConnectionString.Replace("192.168.0.156", "192.168.1.150")) Then '如果第一个IP接通
            filesys.WriteAllText(e.projectpath & "ip.txt","192.168.1.150",False)
            e.ConnectionString = e.ConnectionString.Replace("192.168.0.150","192.168.1.150")
            
        Else If Connections.TryConnect(e.ConnectionString.Replace("192.168.0.150", "192.168.111.150")) Then
            filesys.WriteAllText(e.projectpath & "ip.txt","192.168.111.150",False)
            e.ConnectionString = e.ConnectionString.Replace("192.168.0.150","192.168.111.150")
            
        End If
    End If

连接字符串:
Provider=SQLOLEDB.1;Password=********;Persist Security Info=True;User ID=fox_user;Initial Catalog=mirror;Data Source=192.168.0.150

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/12 9:50:00 [只看该作者]

试试。测试通过后自己去掉调试代码,如果不通,把调试结果发上来看看

Dim ipFile As String = e.ProjectPath & "ip.txt"
If e.Name = "foxtable人事数据库" OrElse e.name = "foxtable" OrElse e.name = "mirror" Then
    MsgBox("数据源=" & e.Name)
    Dim ip As String
    Dim lst As New List(Of String)
    lst.AddRange({"", "192.168.0.150", "192.168.1.150", "192.168.111.150"})
    If Filesys.FileExists(ipFile) Then
        ip = FileSys.ReadAllText(ipFile)
        lst(0) = ip
        MsgBox("文件记录的是" & ip)
    End If 
    Dim cs As String = e.ConnectionString
    For Each s As String In lst
        If s > "" Then
            Dim s1 As String = cs.Replace("192.168.0.150", s)
            MsgBox("测试连接:" & s)
            If Connections.TryConnect(s1) Then
                e.ConnectionString = s1
                filesys.WriteAllText(e.projectpath & "ip.txt", s, False)
                MsgBox("连接成功:" & s)
                Exit For
            End If
        End If
    Next 
End If

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


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/5/12 10:03:00 [只看该作者]

老师,您给的代码测试能通,能正常进入项目且加载数据,但是在开发界面>>外部数据表,管理外部数据表的时候报一样的错误

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


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/5/12 10:24:00 [只看该作者]

虽然管理外部数据表的时候报错,但是能正常执行sql

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/12 10:29:00 [只看该作者]

菜单里的数据源是不会变的,只会显示初始的设置,不会根据代码的设置变化的

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


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/5/12 10:31:00 [只看该作者]

刚才用正确的ip添加了一个新的数据源,管理外部表窗口的时候,选择其他数据源还是会报错,但是选择这个含正确ip的就不会

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/12 10:36:00 [只看该作者]

仔细理解一下7楼。

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


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/5/12 10:49:00 [只看该作者]

那我在使用外部数据源/管理外部表的时候,得把连接字符串改掉?

 回到顶部
总数 14 1 2 下一页