Foxtable(狐表)用户栏目专家坐堂 → web数据源疑似bug


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

主题:web数据源疑似bug

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
web数据源疑似bug  发帖心情 Post By:2022/6/16 16:49:00 [只看该作者]

SQL server 2019数据库。搭建了服务端的web数据源。
客户端在直连数据库的情况下没有问题。

切换到web数据源之后,定位到如下错误:

窗口表,类型“SQLTable”, 在该表的datacolchanging 事件中执行如下代码报错:

 Dim cmd As New SQLCom mand
    cmd.Connect ionName=_ConnectionName
    '********************************************
    cmd.Comm andText = "SE LECT    *  FROM {SalesOrdsForDispatch}   where  SalesON='" & e.DataRow("SalesON") & "'"
    '********************************************

    Dim stb As DataTable = cmd.ExecuteReader(True)


=====================================
测试定位的错误代码是 Dim stb As DataTable = cmd.ExecuteReader(True)这一句。

报错信息:

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


注意,上述代码当我直接做成在一个窗口按钮内执行,则没有问题。目前仅发现在表的datacolchanging事件内执行就会报错。

我怎么也无法发现自己的问题,恳请提供帮助。



[此贴子已经被作者于2022/6/16 16:50:09编辑过]

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 17:00:00 [只看该作者]

2022-01-30开发版

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 17:28:00 [只看该作者]

被查询的数据库表的结构如下,都是用foxtable创建的表,(系统列无法打印出来)



{SalesOrdsForDispatch}的结构

 

DispatchNo() ----> 字符型(16)

SalesON() ----> 字符型(16)

PartNo(Part) ----> 字符型(16)

BayNo() ----> 字符型(16)

DueDate(Due_Date) ----> 日期型

DueTime(Due_Time) ----> 字符型(25)

Direction() ----> 字符型(40)

Address_Street() ----> 字符型(100)

Address_Suburb() ----> 字符型(50)

address_City() ----> 字符型(40)

Weight(Wt(T)) ----> 双精度小数

MaxLth(L(m)) ----> 双精度小数

BranchID() ----> 字符型(25)

Progress_Stock(Progress_Stk) ----> 字符型(16)

CnBProgress(Progress_CnB) ----> 字符型(16)

CageProgress(Progress_Cge) ----> 字符型(16)

Notes() ----> 字符型(255)

SiteContact() ----> 字符型(103)

OrderDate() ----> 日期型

DateDelivered(DateDlvd) ----> 日期型

CustomerID() ----> 字符型(16)

StockMoved(Dlvd) ----> 逻辑型

Pickup(PkUp) ----> 逻辑型

Printed(Prtd) ----> 逻辑型

StockLocation(Location) ----> 字符型(25)

SiteFeed_TimeDelivered() ----> 日期型

SiteFeed_UserName() ----> 字符型(40)

SiteFeed_CustomerSignee() ----> 字符型(40)

SiteFeed_HavePhotos() ----> 逻辑型

SiteFeed_Note() ----> 字符型(150)

Status(STS) ----> 字符型(16)

TruckLoading_TimeStarted() ----> 日期型

TruckLoading_TimeFinished() ----> 日期型

TruckLoading_Storemen() ----> 字符型(80)

MarkedReady_Time() ----> 日期型

MarkedReady_By() ----> 字符型(30)

CustON() ----> 字符型(150)

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 17:30:00 [只看该作者]

我进一步测试,将被查询的表名换成其他表,则没有错误。所以怀疑是这个表的某些列带来的问题。其他的就无从得知了。

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


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

最新版我测试没有问题

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 17:37:00 [只看该作者]

嗯。这块最近动过吗? 注意必须在上述的datacolchanging事件中测试,不然我即使用出问题的被查询的表名在外面按钮内执行,在web数据源也是没有问题的。

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 18:15:00 [只看该作者]

进一步测试,我发现问题的焦点在于数据库内表的名字。我把表名字改短了,代码执行则没有问题。
一旦把名字改回去,无论是数据库内用老名字创建新表,还是如何折腾,必定报错。

所以问题的焦点就在于:

1. 必须在 sql table的datacolchanging事件内执行
2. 被查询的数据库表名字是"SalesOrdsForDispatch", (我怀疑是名字长度太长?但奇怪的是在其他地方执行sql则无问题)
3. 必须是web数据源
 
为以防其他因素,请使用窗口名字"SaleOrderDetais",窗口内的表名字"SalesOD", 表类型选择的是"SQLTable"
sql server 2019数据源。

做到以上几点必定可以复现。


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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 19:03:00 [只看该作者]

又试了下把表名字改长了,也没有问题。就是一用那个表名字就有问题。真见鬼了。

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 20:09:00 [只看该作者]

终于把整个项目内几百处代码涉及该表的表名字都改成了新的名字。都改完之后,同样故障又再次出现。那么现在开始怀疑datacolchanging事件在web数据源下触发有bug
[此贴子已经被作者于2022/6/16 20:09:18编辑过]

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


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/6/16 20:31:00 [只看该作者]

 将 Dim stb As DataTable = cmd.ExecuteReader(True)
改成了  Dim stb As DataTable = cmd.ExecuteReader()

去掉了这个true,问题暂时得到了解决。  

但如此可以推断以上相关事件、web数据源、sql命令之间应该存在某种关联性的bug

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