我的sql语句哪错了?怎么会提示:Invalid use of keyword?(10分)

  • 主题发起人 主题发起人 chenhe96
  • 开始时间 开始时间
C

chenhe96

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL 语句如下:
DecisionQuery1.SQL.Text:='select 类别,读者级别,count(登录号) as 借阅量 from chliutongrzh where (读者级别 is not null) and (类别 is not null) and (year(处理时间)='+ComboBox1.Text+') group by 类别,读者级别 order by 类别,读者级别'
第一次编译后提示:
...EDBEngineError with message 'Invalid use of keyword',Process Stopped...
当再编译时,却可以出现结果,这是怎么回事?
 
可能问题出在 ComboBox1.Text
 
ComboBox1.Text有问题?能说的具体一点吗?
 
DecisionQuery1.SQL.Text:='select 类别,读者级别,count(登录号) as 借阅量 from chliutongrzh where (读者级别 is not null) and (类别 is not null) and (year(处理时间)='+QuotedStr(ComboBox1.Text)+') group by 类别,读者级别 order by 类别,读者级别'
 
to TYZhang
问题还是没有解决,难道是语句以外的问题?
 
to chenhe96:
你的“处理时间”是什么类型的字段,你把"处理时间"的条件判断先去掉再调试一下。
 
To TYZhang:
"处理时间"是datetime型,去掉该判断语句,则可以正常运行.另外,我的另一个语句与之类似,是用TQuery控件,却运行的好好的.难道DecisionQuery有问题?
 
你的数据库是什么?可能是你的数据库不支持year()函数。
 
to TYZhang
谢谢TYZhang的多次答复,我的数据库支持year()函数,我在前面说过,用TQuery控件却可以运行,由于功能的需要,我要用DecisionQuery,最后却出现这种问题.还有一个怪问题是第一次编译时出错,这时点击确定,进行第二次编译,却可以出现结果了.这问题已经困扰我多日了,希望高手指点一下.
 
是Sql Server吗:
DecisionQuery1.SQL.Text:='select 类别,读者级别,count(登录号) as 借阅量 from chliutongrzh where (读者级别 is not null) and (类别 is not null) and (Convert(varchar(4),处理时间,120)='''+ComboBox1.Text+''') group by 类别,读者级别 order by 类别,读者级别'
 
to dgtg0710
大侠,还是不行啊,估计不是语句的问题,可能还缺一个什么.
为这问题我快要疯了!
 
估計是時間問題,將時間轉換為字符串再比較 left(convert(10,处理时间,120),4)='+ComboBox1.Text+'
 
后退
顶部