我想查询temp表中的一个特定的日期  
用了 参数  如下 'select * from temp where riqi=:a ' 参数a:now.datetime
也用了 定位法   'select * from  temp where riqi>:a and riqi<:b '
                  参数a:=datetimetostr(now.datetime-1)
                      b:=datetimetostr(now.datetime)
还有  ‘select * from temp where riqi=#'+datetimetostr(now.datetime)+'#'
都不行   
还有怎么样才能实现表内记录的转移啊  
  比如 我想要把第八条记录转移到 第 十条  ?
我想用adoquery 查询到的数据集(字段在单表上) 直接修改 
用了如下的 代码  
     open;
     edit;
     fieldbyname('xxx').asinteger:=4;
     post;
怎么也不行啊 
哪位兄弟救一下啊 十分感谢  !

解决方案 »

  1.   

    首先问一下小XIE,你用的什么数据库?
      

  2.   

    对不起,小XIE 。刚才在忙另外一个帖子的问题,没有注意看您的回复。
      

  3.   

    我连接一个Access后马上测试。请稍等。好吗?
      

  4.   

    第一个问题:
    你需要使用sql日期函数select datediff(day,’2004-09-01’,’2004-09-18’)  这返回的是天数,或者,年,月,小时,分钟,秒,等等,用差值来判定
    第二个问题,
    你必须在数据库表中指定XXX字段为排序字段,建立索引,如果这不是缺省的排序字段,你再怎么修改也没用!
      

  5.   

    问题1: 查询temp表中的一个特定的日期    Select * From Temp 
      Where DateDiff("d", riqi, '+''''+FormatDateTime('YYYY-MM-DD', A)+''''+') <= 0 And 
            DateDiff("d", riqi, '+''''+FormatDateTime('YYYY-MM-DD', B)+''''+') >= 0问题三:
      ADOQUERY.Open;
      ADOQUERY.Edit;
      ADOQUERY.FieldByName('到货日期').asDateTime := Date();
      ADOQUERY.Post;问题二: 把第八条记录转移到 第 十条  是两条记录互换吗?
      

  6.   

    winxkm(蹩脚的程序员) 你小子惹祸了哈。
      

  7.   

    2007年第一条回帖procedure MoveRecord(DataSet: TDataSet; iFrom, iTo: Integer);
    var
      VarCopyData: Variant;
      Idx: Integer;
      RecNo: Integer;
    begin
      RecNo := DataSet.RecNo;
      DataSet.MoveBy(iFrom - RecNo);
      with DataSet do
      begin
        VarCopyData := VarArrayCreate([0, Pred(FieldCount)], VarVariant);
        for Idx := 0 to Pred(FieldCount) do
          VarCopyData[Idx] := Fields[Idx].Value;
        Delete;
        RecNo := DataSet.RecNo;
        DataSet.MoveBy(iTo - RecNo);
        Insert;
        for Idx := 0 to Pred(FieldCount) do
          Fields[Idx].Value := VarCopyData[Idx];
        RecNo := DataSet.RecNo;
        DataSet.MoveBy(iFrom - RecNo);
      end;
    end;procedure TFormDemo.Button2Click(Sender: TObject);
    begin
      MoveRecord(ADOQuery, 10, 8);
    end;
      

  8.   

    select * from WaitQue where  DateDiff(''s'',regdatetime,'''+datetimetostr(adqdatetime)+''''+')>=0 and DateDiff(''s'',regdatetime,'''+datetimetostr(adqdatetime)+''''+')<=0')
    我用了以上的语句查询 为什么查询不到结果呢  
    时间是精确到秒的 adqdatetime 是一个时间数据