代码中有一时间变量STIME:TDateTime;和一字符串变量 sSql:string;
然后通过代码
sSql:='SELECT SYSDATE DATATIME FROM DUAL ';
 with DM.cdsTempConfirm do
 begin
   Close;
   Params.Clear;
   CommandText:=sSql;
   Open;
   sTime:=fieldbyname('DATATIME').AsDateTime;
   end;
将sTime 赋值。
然后又将
  sSql:='UPDATE TABLE1 SET EMP=:EMPNO,DATE=:DATETIME';
  with DM.cdsTempConfirm do
           begin
             Close;
             Params.Clear;
             CommandText:=sSql;
             Params.CreateParam(ftString, 'EMPNO', ptUnknown);
             Params.ParamByName('EMPNO').AsString :=edEMPNO.Text;             Params.CreateParam(ftString, 'DATETIME', ptUnknown);
             Params.ParamByName('DATETIME') :=sTime;
             Execute;
           end;前面的EMPNO赋值,没出问题 ,但是后面的param  ‘DATETIME’就出问题了 请问该怎么写?
急!下班前要完成。

解决方案 »

  1.   

    我把第二个参数改了一下还是不行
    Params.CreateParam(ftDateTime, 'DATETIME', ptUnknown);
      Params.ParamByName('DATETIME') :=sTime;
      

  2.   


    var
      sEMPNO,sDATETIME:string;
    ......sEMPNO := edEMPNO.Text;
    ssDATETIME := sTime;
    sSql:='UPDATE TABLE1 SET EMP= '''+sEMPNO+''',DATE= '''+sDATETIME+'''';
    CommandText:=sSql;
    ExecSQL;
      

  3.   

     Params.CreateParam(ftDatetime, 'DATETIME', ptUnknown);
     Params.ParamByName('DATETIME').value := strToDatetime(sTime);
      

  4.   

    sSql:='UPDATE TABLE1 SET EMP=:EMPNO,DATE=sysdate;直接在最后的语句中,给Date字段取sysdate函数返回值赋值就完了,有必要这样转来转去吗?