query1.close;
query1.sql.clear;
query1.sql.add('select * from orders where saledate>=:dt');
query1.ParamByName('dt').AsDate:=strtodate('88-5-4');
query1.open;

解决方案 »

  1.   

    应该没问题啊,要不你改改,用名字来辨别参数
    with ADOQryLane_Vehicles do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select distinct RoadwayNum,max(DetectNumber) as LastVehicles from LaneFee where StatisticDate=:StatisticDate and TurnNum=:TurnNum group by RoadwayNum');
        Parametersbyname[StatisticDate].value:= ADate;
        Parametersbyname[TurnNum ].value:= AturnNum;
        Open;
      end;
      

  2.   

    AturnNum没问题,日期就难说了,我以前页是这样直接赋值,但是不行,后来
    我这样实现的日期参数:
    就是分开年月日处理sql:
    比如:      datetimetostring(new2,'yyyymmdd',d2);      SQL_SEL2   := ' select '+ FIELD_LIST2+' from '+ tabl_name;
         SQL_WHERE2 := ' where (year(' + DJSJ+')=:tt_y '+
                       'and month('+ DJSJ +')=:tt_m and day('+ DJSJ +')=:tt_d'
                        +' AND ('+ DJLB + '=:rklb)) ';
      

  3.   

    是啊,查询是没有问题,但是用DATETIME类型好象总是很麻烦。我估计是这引起的。
      

  4.   

    主  题:急!急!急!有关SQL查询的参数问题
    作  者:Zane
    所属论坛:Delphi
    问题点数:30
    回复次数:8
    发表时间:2001-12-3 10:13:50
     
      
        我用的是TADOQUERY,后台数据库是SQLSERVER70,请问在执行查询时能否试用如下的语句,使用参数:
    with ADOQryLane_Vehicles do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select distinct RoadwayNum,max(DetectNumber) as LastVehicles from LaneFee where StatisticDate=:StatisticDate and TurnNum=:TurnNum group by RoadwayNum');
        Parameters[0].value:= StrtoDate(ADate);
        Parameters[1].value:= AturnNum;
        Open;
      end;