Foxtable(狐表)用户栏目专家坐堂 → 请问我这里有代码会导致行重复新建吗?


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

主题:请问我这里有代码会导致行重复新建吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/5 10:53:00 [显示全部帖子]

你直接测试这个函数即可 Dim NewID As Integer =  Functions.Execute("GetNewID","CarFixID")

 

比如循环100次或者1000次,或者打开多个客户端,一起模拟循环多次测试请求,看是否重复。如果重复,就是你服务器端没有处理好导致的。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/5 12:21:00 [显示全部帖子]

以下是引用chen37280600在2018/10/5 12:00:00的发言:

循环了1000次,没有重复值。

我的跟服务器网络都很稳定

 

客户是移动的,他网络不怎么稳定的

 

打开多个客户端,多个客户端同时一起循环获取,是否重复?如果不重复,说明没问题。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/5 12:22:00 [显示全部帖子]

以下是引用有点甜在2018/10/5 12:21:00的发言:

 

打开多个客户端,多个客户端同时一起循环获取,是否重复?如果不重复,说明没问题。

 

或者是弄异步函数,异步执行获取,看是否重复

 

http://www.foxtable.com/mobilehelp/scr/3269.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 14:42:00 [显示全部帖子]

1、你服务器上的 GetNewID.htm 处理函数,是同步调用还是异步调用?不能异步调用。

 

2、模拟测试的时候,你要用多个客户端,异步操作模拟,甚至用多台电脑多个客户端一起异步操作。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 15:13:00 [显示全部帖子]

以下是引用chen37280600在2018/10/24 14:58:00的发言:

 

我发现也不需要多台客户端测试,因为真的很容易就出现,我看到好几条重复的数据,创建人都是一样的,就一个电脑就能产生,实在是太奇怪了。

 

 

如何模拟测试可以出现问题?

 

修改你【GetNewRow】事件的代码,不要用那种addnew然后reject的方式检测。而是应该先去获取id号,能获取到以后,再addnew和赋值保存等。

 

而且尽量不要用 Do While Date.Now < dn.AddSeconds(5)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 15:16:00 [显示全部帖子]

获取数据的时候,用这种方式检测错误

 

Dim req = System.Net.WebRequest.Create("http://127.0.0.1")
try
    req.Method = "get"
    req.timeout = 5000
    Dim pos = req.GetResponse
   
    Dim stm As System.IO.Stream = pos.GetResponseStream()
    Dim reader As New System.IO.StreamReader(stm)
    Dim str As String = reader.ReadToEnd
    msgbox(str)
catch ex As exception
    msgbox("不能访问了,发邮件,重启服务器")
End try


 回到顶部