Foxtable(狐表)用户栏目专家坐堂 → 查询结果做交叉统计报错.


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

主题:查询结果做交叉统计报错.

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


加好友 发短信
等级:童狐 帖子:250 积分:2737 威望:0 精华:0 注册:2014/3/11 12:11:00
查询结果做交叉统计报错.  发帖心情 Post By:2019/11/11 17:17:00 [只看该作者]

事由说明:最近更新FT版本,由原先2019.04.12版更新为2019.10.12.1后报错,2019.04.12版时正常,请问这是版本升级的造成的吗?怎么处理呢?
************************
FT代码:
''以下代码执行正常
Dim q As new QueryBuilder
q.C
q.TableName = "tablea"
q.SelectString = "S e lect name,datepart(mm,date)month,sum(isnull (amount,0))amount  f  rom table1 group by name,datepart(mm,date)"
q.Build


''以下统计是报错
Dim g As New CrossTableBuilder("tablea", DataTables("tablea"))
g.HGroups.AddDef("name")
g.VGroups.AddDef("month")
g.Totals.AddDef("amount")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("tablea")

**********************
错误详情:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.10.12.1
错误所在事件:
详细错误信息:
Object reference not set to an instance of an object.


[此贴子已经被作者于2019/11/11 17:18:32编辑过]

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


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

可能名称重复了

Dim g As New CrossTableBuilder("tablea2", DataTables("tablea"))
g.HGroups.AddDef("name")
g.VGroups.AddDef("month")
g.Totals.AddDef("amount")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("tablea2")

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


加好友 发短信
等级:童狐 帖子:250 积分:2737 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2019/11/11 17:35:00 [只看该作者]

以前版本是正常的,最近没做代码调整,只是版本更新后重新发布过之后就出现这个问题了.

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


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

改为不同的名称测试还有没有问题?

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


加好友 发短信
等级:童狐 帖子:250 积分:2737 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2019/11/12 9:08:00 [只看该作者]

现在改为不同的表名没有问题,但在不改表名的情况下怎么实现呢?

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 9:18:00 [只看该作者]

必须要改名啊,两个表不能有重复的名称

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


加好友 发短信
等级:童狐 帖子:250 积分:2737 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2019/11/12 9:24:00 [只看该作者]

以下是引用有点蓝在2019/11/12 9:18:00的发言:
必须要改名啊,两个表不能有重复的名称
这项目是以两年前发布的,那时候表名是一样的,并没有报错.最近突然发现报错了,不知道是什么原因造成的.


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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/12 9:51:00 [只看该作者]

这个我没有办法理解。可能和表格释放内存的方式有关吧,旧版本有内存泄漏的bug,新版本改进了

但是如果像这种同名的,也就是之前生成的同名查询表会被覆盖掉,这种情况完全没有必要先生成一个查询表啊,直接使用sql生成统计表就行了:http://www.foxtable.com/webhelp/topics/2307.htm

dim sql as string = "S e lect name,datepart(mm,date)month,sum(isnull (amount,0))amount  f  rom table1 group by name,datepart(mm,date)"
Dim g As New CrossTableBuilder("tablea", sql,"数据源名称")
g.HGroups.AddDef("name")
g.VGroups.AddDef("month")
g.Totals.AddDef("amount")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("tablea")

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


加好友 发短信
等级:童狐 帖子:250 积分:2737 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2019/11/12 11:59:00 [只看该作者]

以下是引用有点蓝在2019/11/12 9:51:00的发言:
这个我没有办法理解。可能和表格释放内存的方式有关吧,旧版本有内存泄漏的bug,新版本改进了

但是如果像这种同名的,也就是之前生成的同名查询表会被覆盖掉,这种情况完全没有必要先生成一个查询表啊,直接使用sql生成统计表就行了:http://www.foxtable.com/webhelp/topics/2307.htm

dim sql as string = "S e lect name,datepart(mm,date)month,sum(isnull (amount,0))amount  f  rom table1 group by name,datepart(mm,date)"
Dim g As New CrossTableBuilder("tablea", sql,"数据源名称")
g.HGroups.AddDef("name")
g.VGroups.AddDef("month")
g.Totals.AddDef("amount")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("tablea")

谢谢!


 回到顶部