Foxtable(狐表)用户栏目专家坐堂 → 异步函数不能切换数据源吗?


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

主题:异步函数不能切换数据源吗?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
异步函数不能切换数据源吗?  发帖心情 Post By:2018/12/27 11:06:00 [显示全部帖子]

  我的手机端用狐表就做了后台,前端用的第三方框架,因为是多机构使用,很早前我就登陆切换数据源,但是在同时使用的那么一刹那,原先登陆切换的数据源被后来登陆的人给切换了.
没办法我就写了一个切换数据源的函数,在每次执行录入,获取数据的时候切换一下数据源,本来用的好好.但是使用的人有点多,我就改为异步函数执行录入和获取数据源,但是使用后会报数据源已经存在,具有相同的键的错误
而且阻塞服务器,造成其他应用卡慢,这个怎么破?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/27 12:42:00 [显示全部帖子]

以下是引用有点甜在2018/12/27 11:44:00的发言:

不能。

 

你这个设计思路也有问题啊。怎么可以在一个项目里面频繁切换数据源?

 

请调整你本来的程序。或者运行多个程序(有多少个机构,就打开运行多少个)。




我也想呀,但是马上要30个机构,逐渐有100个机构,如果开那么多服务器程序,太....!这个就很难破了. 我这个手机端只是配套客户端使用的.


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/27 12:44:00 [显示全部帖子]

每个机构都有自己的数据库,结构都是一样的.我们目前分华东,华南,华北主服务器,然后主服务器上还分N多数据库.


我也知道手机端最好是一个数据库,哪个是最好的.
[此贴子已经被作者于2018/12/27 12:44:30编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/27 14:05:00 [显示全部帖子]

甜总,所有的业务处理都是一样,表结构都是一样,难道每个业务处理 我要写100遍?我也是直接处理的数据库!现在没用异步的方法,没问题!
[此贴子已经被作者于2018/12/27 14:05:53编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/27 16:55:00 [显示全部帖子]


方法二:你插入数据的时候,根据用户的数据源名,直接往数据库插入数据,而不是切换数据源啊。


这个方法我想想,系统内如果没有这个数据源,我可以动态添加吗?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/27 17:06:00 [显示全部帖子]

我试了不用在系统内添加就可以直接添加,这样一来方法二 可以想想怎么处理了



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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/28 9:09:00 [显示全部帖子]

我想想怎么改,目前有几百人用,但是不是同时并发的.同时并发我估计就几十个人.
[此贴子已经被作者于2018/12/28 9:09:49编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/28 9:15:00 [显示全部帖子]

方法二:你插入数据的时候,根据用户的数据源名,直接往数据库插入数据,而不是切换数据源啊。


我想了一下,因为每个机构都需要先切换数据源登录才行,这边所以还是需要先切换才行.目前就是我先切换,然后根据数据源再插入的.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/28 9:37:00 [显示全部帖子]

我改成这样处理,应该可以.

 Public Shadows Function OrgLogin(ByVal e As RequestEventArgs, ByVal org As String, ByVal connName As String) As Boolean
        Dim isopen As Boolean = False
        If org > "" Then
            Dim cmd As New SQLCommand
            cmd.C
            Dim dt As DataTable
            cmd.CommandText = "Sele                ct * Fro        m 手机端IP Where 分院名称='" & org & "' And 链接 is not null"
            dt = cmd.ExecuteReader
            If dt.DataRows.Count > 0 Then
                If Connections.TryConnect(dt.DataRows(0)("链接")) = True Then
                    Connections.Delete(connName)
                    Connections.Add(connName, dt.DataRows(0)("链接"))
                    isopen = True
                Else
                    isopen = False
                End If
            End If
        End If
        Return isopen
    End Function



Dim connNameID As String = System.Guid.NewGuid.ToString.Replace("-", Nothing)
Dim isopen As Boolean = myfun.OrgLogin(e, fy, connNameID)





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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2018/12/28 10:27:00 [显示全部帖子]

嗯  有空再放上去测试下,我本地测试没有问题.

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