Foxtable(狐表)用户栏目专家坐堂 → 异步里可以用DataTables("xxx").SqlFind 和其他Sqlxxx方法吗?


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

主题:异步里可以用DataTables("xxx").SqlFind 和其他Sqlxxx方法吗?

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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
异步里可以用DataTables("xxx").SqlFind 和其他Sqlxxx方法吗?  发帖心情 Post By:2020/5/6 14:32:00 [显示全部帖子]

异步里对主线程的变量进行修改,肯定会出现重复脏写

但是在异步里,利用主线程的DataTables("xx").sqlFind出来的datarow,能利用吗?会不会多个线程里都在SQLfind,把A线程找到的行,返回给了B线程?

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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/5/7 12:02:00 [显示全部帖子]

我想这个问题,可能要有狐爸来回答。
其实这个找数据是否线程安全,就是这个SqlFind里面,有没有用到其他全局的东西,封装这个源码的人才知道

例如查找前,还有个全局用的BuildFilterSql,专门用于把条件+sql语句组合,
那我不同线程里,要分别查找数据时,就可能A线程创造的查询SQL,刚才被B线程创造的查询SQL覆盖,然后A才去查询,就出现所谓的线程不安全,找回来的数据张冠李戴

类似于java8之前的日期格式化功能,线程不安全https://www.cnblogs.com/xkzhangsanx/p/12037915.html

为啥我会这样问,因为我发现dim dr as datarow = Datattables("xx").sqlfind,然后直接判断dr是否为nothing,太方便了
比辛苦弄一个sqlCommand,然后读取回来放dt,最后再判断dt.datasrows =1,省太多代码了



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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/5/7 14:38:00 [显示全部帖子]

想狐爸帮忙解答一下,谢谢

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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/5/8 14:44:00 [显示全部帖子]

来,我自己顶一下,希望狐爸帮忙回答一下

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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2021/2/23 17:33:00 [显示全部帖子]

异步里调用DataTables("xx").SqlFInd是报错的,结论是,不能用

为什么有时候异步里DataTables("xx").SqlFInd并没有报错呢?那是因为几次异步函数,没同时发生。实测,


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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(rjh4078)杰哥的问题跟我昨天遇到的一样,写个...  发帖心情 Post By:2021/2/24 10:09:00 [显示全部帖子]

我总结好了http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=160857

普通的增删改查,不需要每次都new sqlcommand,完全是浪费性能的,线程的创建+sql的连接,比普通的r.save还要费时!

不要滥用异步
[此贴子已经被作者于2021/2/24 10:09:38编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1264 积分:7827 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2022/1/14 10:46:00 [显示全部帖子]

主线程里创建的东西,异步用,翻车概率极大,自行考虑

 回到顶部