if (edt1.Text = '') and (edt2.Text = '') then
    begin
      with qry1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select gs.code,gs.code2,gs.name,sum(sd.qty*s.inv_qty_unary*(-1)) xssl,sum((sd.amt+sd.tax)*s.inv_qty_unary*(-1)) xsje');
          SQL.Add('from sdrpts sd,subject s,goods gs,store st');
          SQL.Add('where sd.snd = st.gid');
          SQL.Add('and sd.gdgid = gs.gid');
          SQL.Add('and sd.cls in (''零售'',''零售退'')');
          SQL.Add('and sd.cls = s.subname');
          SQL.Add('and sd.fildate >= '''+FormatDateTime('yyyy.mm.dd',dtp1.Date)+'''');
          SQL.Add('and sd.fildate <= '''+FormatDateTime('yyyy.mm.dd',dtp2.Date)+'''');
          SQL.Add('group by gs.code,gs.code2,gs.name');
          open;
        end;
    end
单从SQL 语句上来说 能导出数据 但是 写进 DELPHI 却没有数据,不知道问题在哪,请大虾帮忙看一下

解决方案 »

  1.   

    +FormatDateTime('yyyy.mm.dd',dtp1.Date)+'''');
              SQL.Add('and sd.fildate <= '''+FormatDateTime('yyyy.mm.dd',dtp2.Date)+'''');
    --------------------------------------------------------------------------------------->>>
    +FormatDateTime('yyyy-mm-dd',dtp1.Date)+'''');
              SQL.Add('and sd.fildate <= '''+FormatDateTime('yyyy-mm-dd',dtp2Date)+'''');
      

  2.   

    你能别sql.add这么多次吗
    先str:string;
    用str=‘’;把你的那些句加进来,写成一句
    再sql.add(str);
      

  3.   

    俺觉得LZ这样ADD很好啊,既不用多出一个string,可读性又好
      

  4.   

    是不是空格的问题哦,每个段sql语句后面加个空格试试
      

  5.   

    引号的问题吧
    SQL.Add('and sd.fildate >= '+''''+FormatDateTime('yyyy.mm.dd',dtp1.Date)+'''');