有个sql语句如下:
sql:='select * from j0502_10_jincang where j0502_10_wno = '+QuotedStr(combobox1.Text)+'and j0502_10_date between '+QuotedStr(datetostr(datetimepicker1.Date))+' and '+QuotedStr(datetostr(datetimepicker1.Date));
其中前面的
sql:='select * from j0502_10_jincang where j0502_10_wno = '+QuotedStr(combobox1.Text)
执行成功
可是后面的编译没有错,就是从数据库里取不到数据
可是我在sql server中写:
select * from j0502_10_jincang where j0502_10_wno = 1 and j0502_10_date between '2000-1-1' and '2008-4-9'
是可以的
请问在delphi中我该怎么修改我上面的语句?

解决方案 »

  1.   

    你可以这样调试
    sql:='select * from j0502_10_jincang where j0502_10_wno = '+QuotedStr(combobox1.Text)+'and j0502_10_date between '+QuotedStr(datetostr(datetimepicker1.Date))+' and '+QuotedStr(datetostr(datetimepicker1.Date));
    with query1 do
    begin
      close;
      sql.clear;
      sql.add(sql);
      sql.savetofile('c:\sql.txt');
      open;
    end;运行一次后找到c:\sql.txt,打开看内容可不可以在查询分析器里运行,再修改
      

  2.   

    或者
    sql:='select * from j0502_10_jincang where j0502_10_wno = '''+combobox1.Text+''' and j0502_10_date between '''+datetostr(datetimepicker1.Date)+''' and '''+datetostr(datetimepicker1.Date)+'''';
      

  3.   

    谢谢Internetroot
    你给的savetofile方法很有用
    我都无语了
    我的两个时间都是用的同一个组件的
    语法是没有问题的
    把后面的组件1改成组件2就可以了
    我一直以为是sql语句出问题了,搞了好半天
    呵呵 结贴