Foxtable(狐表)用户栏目专家坐堂 → Web数据源sql语句报错


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

主题:Web数据源sql语句报错

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
Web数据源sql语句报错  发帖心情 Post By:2021/5/12 16:20:00 [只看该作者]


版本 2021.05.01开发版。

Web数据源下,执行sql 语句的 cmd.executevalues 时规律性报错。多场景测试均如此。   
切换到直连sql server数据源后则没有问题。

希望贵方检查一下是否有bug。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

更新到最新版。另外写了什么代码,发上来看看

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/12 16:38:00 [只看该作者]

版本是最新的啦,其实这个问题一直都有。之前由于其他问题太多这个就没说了。
 
代码示例请看附件,论坛不让直接发。 

这类语句我的系统里有很多,平时都好,一切换到web数据源就报错。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.txt



 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

判断值的方法不正确,也不能使用IIF
cr("DailyOrds_Cost") =iif(values1("a") Is system.Dbnull.value, 0,values1("a"))

改为

If Values("a").tostring = Nothing Then
cr("DailyOrds_Cost") = 0
else
cr("DailyOrds_Cost") = Values("退费状态")
endif

其它自己改。

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/12 16:55:00 [只看该作者]

有点奇怪,我原来好像是从你下面那种代码特地改成现在这样的,似乎有其他的错误逼我这样做的,要不也不喜欢写的这样麻烦嘛。似乎当返回“a”是null的时候也就是没找到任何数据的情形,Values("a").tostring会出错。 

不过我再试试。谢谢。

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/12 17:13:00 [只看该作者]

按照蓝老师的方法测试了一下,问题依旧。报同样的错。不是我的写法有问题,我的写法在直连数据源情况下使用好久了没问题的。

肯定是cmd.executevalues这个方法再web数据源下有问题。

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/12 17:14:00 [只看该作者]

我准备改用cmd.executereaders先绕开,工作量有点大。但这个问题还是希望贵方解决不要留bug

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/12 17:26:00 [只看该作者]

我改用这个代码绕开了,这样测试执行没有问题,所以我基本可以肯定是cmd.executevalues这个方法在web数据源下有问题.

Dim atb As DataTable = cmd.ExecuteReader

If atb.DataRows.count>0 Then
    Dim rr As DataRow = atb.DataRows(0)
    cr("DailyOrds_Cost") = rr("a")
    cr("DailyOrds_Value") = rr("b")
    cr("DailyOrds_Tonnage") = rr("c")
    
Else
    cr("DailyOrds_Cost") = 0
    cr("DailyOrds_Value") = 0
    cr("DailyOrds_Tonnage") = 0
    
End If

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

提示什么错误?

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/5/12 17:43:00 [只看该作者]

这个是类似另外一处的错误信息。
刚才那个地方错误信息更长一些,实在懒得再改回去重现了。


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


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