Foxtable(狐表)用户栏目专家坐堂 → 判断列类型问题


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

主题:判断列类型问题

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
判断列类型问题  发帖心情 Post By:2015/8/12 21:28:00 [显示全部帖子]

sql生成的临时dt,没办法区分出字符型列和备注型列? 因为dc.maxlength均是-1,在不把外部数据源的表load的情况下,有其他办法判断表相应列的列类型吗?

 

其实是在sql分组统计和交叉统计时,发现备注型列无法做为分组列,所以需要将其排除

[此贴子已经被作者于2015/8/12 21:36:47编辑过]

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/12 21:49:00 [显示全部帖子]

您用SQLCrossTableBuilder或SQLGroupTableBuilder试试能行吗?我试了确实不行,字符型列可以,备注型列不行


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 0:01:00 [显示全部帖子]

因为涉及到后面的编程逻辑,不能以表达式列做为分组列,那就还回到最初的吧,怎样判断外部数据表的列类型?

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 0:14:00 [显示全部帖子]

另外,SQLCrossTableBuilder或SQLGroupTableBuilder不能将备注型列做为分组列,这是有原因的吗?还是是个遗漏呢?求解

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 11:54:00 [显示全部帖子]

我的被统计表(外部数据源,没有datatable)是动态加载的,结果用SQLCrossTableBuilder或SQLGroupTableBuilder备注型列就无法参与统计,maxlenght也是用的sqlcommand调进来表结构,生成临时dt,并对列类型进行判断,maxlength确实均为-1.  我在想是不是问题出在动态加载的表备注型列不能统计,而静态表是可以统计的呢?

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 13:26:00 [显示全部帖子]

您指的备注列转成字符列是指什么?还是说的表达式列吗?补充一下啊,被统计表是由用户自己设计的,不是在程序里将表写死的,所以用户设计表结构的时候,不排除其大量使用了备注型列。

我的意思是如果外部数据源动态生成的表的备注型列能够做完分组列进行统计,当然就ok,如果不能,则我会设计程序限制用户将备注型列做为分组列。

[此贴子已经被作者于2015/8/13 13:57:36编辑过]

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 15:08:00 [显示全部帖子]

            Dim c As New SQLCrossTableBuilder(表名, 被统计表名)
            c.ConnectionName=全局变量当前模板数据源
            c.OrderByTotal = True

            For Each 水平分组列 As String In 水平分组列集合
                If dt1.DataCols.Contains(水平分组列) Then
                    c.HGroups.AddExp(水平分组列,"convert(varchar," & 水平分组列 & ")")

                endi f

            Next
            c.HorizontalTotal = 是否水平汇总
            c.VerticalTotal = 是否垂直汇总
            c.HorizontalProportion =是否显示水平比例
            c.VerticalProportion = 是否显示垂直比例
            c.Filter=f
             c.Build

 

 

老大,不灵,只要水平分组列中出现备注型列,统计出的表就是个空表!


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 16:37:00 [显示全部帖子]

那可能就是出在动态表和静态表的问题上,你的被统计表“表A”应该是个静态表,你把他删除掉,然后动态生成一个表A,再试试,就不能统计备注型列了!我的数据库也是sql server

[此贴子已经被作者于2015/8/13 16:38:24编辑过]

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 16:53:00 [显示全部帖子]

对呀,说的也是,指定了数据源,表A就是个数据库的表名,我怎么用备注列当分组列统就不行呢?难道还跟sql server数据库版本有关系不成?成谜团了!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/8/13 16:56:00 [显示全部帖子]

    c.HGroups.AddExp(水平分组列,"convert(varchar," & 水平分组列 & ")")   我这句该没错呀!

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