年起始:返回double型
lStartOfYear:=StartOfAYear(StrToInt(ComboBoxYearSelect.text));月结束:返回double型
lEndOfMonth:=EndOfAMonth(StrToInt(ComboBoxYearSelect.Text),StrToInt 
  (ComboBoxMonthSelect.text));如何匹配query的SQL语句?
 我用如下这种方法,提示:"String" 和 "Double" 类型不能进行 "+" 操作!
QueryThisYear.CommandText :=
    'SELECT SUM(VOUCHER.JJE),SUM(VOUCHER.DJE),(SUM(VOUCHER.JJE)-SUM(VOUCHER.DJE)) as BeginBalance,VOUCHER_HEAD.DAY, VOUCHER.KMDM FROM VOUCHER, VOUCHER_HEAD WHERE (VOUCHER.PZ_ID = VOUCHER_HEAD.PZ_ID) and (VOUCHER_HEAD.DAY >='+lStartOfYear+' and VOUCHER_HEAD.DAY <='''+lEndOfMonth+''') GROUP BY VOUCHER.KMDM, VOUCHER_HEAD.DAY';请高手指点。
1 可以把QueryThisYear.CommandText匹配完成,但是这种匹配可能报转换Dattetime错误。
2 可以把lStartOfYear,lEndOfMonth给各自组合成一个时间的字符串。然后匹配QueryThisYear.CommandText注:VOUCHER_HEAD.DAY为日期时间型

解决方案 »

  1.   

    不是作业了,我又不是大学生。我已经想办法说道最清楚了。
    两个double型的变量在query的SQL语句中做为where条件。
    就是拼个串。
    下面两点,是给打算指点我的高手们的建议。
      

  2.   

    tmp:=FloatToStr(x);
    用这个函数先转换一下~
      

  3.   

    按照国雾的方法做,提示:
    执行SQL语句的时候出现错误:General SQL error. 从字符串转换为 datetime 时发生语法错误。 连接参数:数据库URL:Biz:\OPERATION\OperationDB.Database SQL语句:SELECT SUM(VOUCHER.JJE),SUM(VOUCHER.DJE),(SUM(VOUCHER.JJE)-SUM(VOUCHER.DJE)) as BeginBalance,VOUCHER_HEAD.DAY, VOUCHER.KMDM FROM VOUCHER, VOUCHER_HEAD WHERE (VOUCHER.PZ_ID = VOUCHER_HEAD.PZ_ID) and (VOUCHER_HEAD.DAY >=37622 and VOUCHER_HEAD.DAY <='37711.9999999884') GROUP BY VOUCHER.KMDM, VOUCHER_HEAD.DAY,回滚失败:No user transaction is currently in progress. ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。 连接参数:提供商:MSSQL;服务器:RESEARCH-DB;数据库:tib3_jmis;用户:sa 类型:EOleException。
      

  4.   

    (VOUCHER_HEAD.DAY >=37622 and VOUCHER_HEAD.DAY <='37711.9999999884'),这个应该是报错的地方
      

  5.   

    试试:
    'SELECT SUM(VOUCHER.JJE),SUM(VOUCHER.DJE),(SUM(VOUCHER.JJE)-SUM(VOUCHER.DJE)) as BeginBalance,VOUCHER_HEAD.DAY, VOUCHER.KMDM FROM VOUCHER, VOUCHER_HEAD WHERE (VOUCHER.PZ_ID = VOUCHER_HEAD.PZ_ID) and (VOUCHER_HEAD.DAY >='''
    +FormatDateTime('yyyymmdd',lStartOfYear)+''' and VOUCHER_HEAD.DAY <='''+FormatDateTime('yyyymmdd',lEndOfMonth)+''') GROUP BY VOUCHER.KMDM, VOUCHER_HEAD.DAY';