str:='select * from 销售定单';   //// where 销售单号='''+trim(ComboBox4.Text)+trim(edit4.Text)+trim(edit7.Text)+'''';
  dyssd:=tdyssd.Create(application);
dyssd.ADODataSet1.Active:=false;
dyssd.ADODataSet1.CommandText:=str;//adodataset1.CommandText;
dyssd.ADODataSet1.Active:=true;
dyssd.QuickRep1.Preview;
上面的就能打印出结果来。为什么我的sql语句改为
str:='select * from 销售定单 where 销售单号='''+trim(ComboBox4.Text)+trim(edit4.Text)+trim(edit7.Text)+'''';
就什么都打印不出来了呢?
sql语句没问题,因为他再别可以查到结果。望大家指点。

解决方案 »

  1.   

    str:='select * from 销售定单';   //// where 销售单号='''+trim(ComboBox4.Text)+trim(edit4.Text)+trim(edit7.Text)+'''';
    你这句是个正常的sql吗?连where都注释了,那后面的算什么呀!
      

  2.   

    先看看,SQL语句能否提出数据吧。
      

  3.   

    commandtext不能这么用的,好像是不能带where你要是想用条件的话,还是要用到TQuery组件,你用adoquery查询就可以了吗
      

  4.   

    str:='select * from 销售定单 where 销售单号='''+trim(ComboBox4.Text)+trim(edit4.Text)+trim(edit7.Text)+'''';你能確定這個肯定查出來有記錄嗎﹖你可以在dyssd.ADODataSet1.Active:=true;之前加入ShowMessage(str); 看看得到的是什么樣的SQL語句
      

  5.   

    对了,再就是设置quickreport的数据源为adoquery就可以了,再调整一下其它的应该就可以了