Query计算字段和(字段名为数字字符)!!(200)

  • 主题发起人 主题发起人 freeflying
  • 开始时间 开始时间
F

freeflying

Unregistered / Unconfirmed
GUEST, unregistred user!
表为delphi自带的db表,字段结构如下:姓名,1111,2222,3333,4444,5555,销售金额张三 10 15 0 20 22.5 1890.5...现在用Query1.SQL.Add('select sum(1111),sum(2222) from '''+bm+''' where 姓名="张三"');出错:capability not supported是不是不能用数字做字段名?查询没问题,求和就出错!
 
字段名称不可以用数字以及关键字(如size,count,sum...)
 
嗯~~ 把数字字段都改过来~ 最好用英文字母表示 ~
 
真是遗憾,不想改表字段名呀!但是为什么查询没问题呢!?
 
带个中括号( [] )试试~~
 
capability:性能, 容量意思是不提供对数字的支持。
 
加[]和""都没有用
 
查询没问题吗?你是 select * from ... 吧?试试 select 1111 from ...,看看结果是不是你想要得。
 
Query1.SQL.Add('select sum([1111]),sum([2222]) from '''+bm+''' where 姓名="张三"');试一下这个~~
 
de410:我已经试过了,但无效.Query1.SQL.Add('select sum("1111"),sum("2222") from '''+bm+''' where 姓名="张三"');同样无效!!
 
Query1.SQL.Add('select sum([1111]),sum([2222]) from '+bm+' where 姓名='张三'');[red]bm,张三用单引号[/red]
 
Query1.SQL.Add('select sum([1111]),sum([2222]) from '+bm+' where 姓名=''张三''');[red]bm为一对单引号张三位两队单引号[/red]
 
谢谢de410的热心回答,但是还是不行,问题还是出在sum([1111]),sum([2222])上,因为我直接弄Query1.SQL.Add('select sum([1111]),sum([2222]) from "zj.db"');都不行,出错为Invalid use of keywordToken: 1111]) 查询可以正确运行Query1.SQL.Add('select 1111,2222 from '''+bm+''' where 姓名="张三"');
 
特地用Paradox测试了一下,select 1111,2222 from test虽然可以运行,但出现的结果是:1111 2222 //字段名:1111 2222 // 数据行1111 2222 //而我实际数据是:1111 2222 //字段名:1.0 2.0 // 数据行3.0 4.0 //-----------------------------建议还是更改字段名吧,因为这种字段名称本身就是很不规范的。
 
znxia是对的,我现在查询出来的也是字段名,select * from bm 就没问题,算了,还是改字段名吧!
 
后退
顶部