以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  判断列类型问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73121)

--  作者:hdffzxf
--  发布时间:2015/8/12 21:28:00
--  判断列类型问题

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

 

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

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

--  作者:大红袍
--  发布时间:2015/8/12 21:39:00
--  

不需要排除,备注列也可以,只需要转换成字符列,就能分组。

 

sqlserver数据这样写    convert(varchar, 备注列)

 

access这样写   Cstr(备注列)


--  作者:大红袍
--  发布时间:2015/8/12 21:44:00
--  
谁说不能获取,备注列,我直接去maxlength值,就是一个很大的值。
--  作者:hdffzxf
--  发布时间:2015/8/12 21:49:00
--  

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


--  作者:大红袍
--  发布时间:2015/8/12 21:51:00
--  

可以用表达式啊,看2楼的语法

 

可以向Groups增加表达式分组列,语法为:

Groups.AddExp(Name, Expression)
Groups.AddExp(Name, Expression,Caption)

Name:       字符型,指定列名
Expression: 字符型,指定表达式。
Caption:    字符型,指定标题


--  作者:hdffzxf
--  发布时间:2015/8/13 0:01:00
--  
因为涉及到后面的编程逻辑,不能以表达式列做为分组列,那就还回到最初的吧,怎样判断外部数据表的列类型?

--  作者:hdffzxf
--  发布时间:2015/8/13 0:14:00
--  
另外,SQLCrossTableBuilder或SQLGroupTableBuilder不能将备注型列做为分组列,这是有原因的吗?还是是个遗漏呢?求解
--  作者:大红袍
--  发布时间:2015/8/13 9:10:00
--  

1、去maxlength我测试没有问题啊;

 

2、即便备注列,也可以分组啊。


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

--  作者:大红袍
--  发布时间:2015/8/13 12:02:00
--  

1、不要用sqlCommand调进来。直接用fill函数 http://www.foxtable.com/help/topics/2912.htm

 

2、SQLCrossTableBuilder或SQLGroupTableBuilder如果想用备注列分组,就转成字符列就行啊。

 

要不你上次一个例子说明到底想做什么