with DataM.PatTransferADOQ do
  begin
    close;
    sql.Clear;
    sql.Add('insert into adt_log values(:ward,:dept,:date_time,:Id,:visit,:action)');
    parameters.ParamValues['ward']:=WardCode;
    parameters.ParamValues['dept']:=deptCode;
    parameters.ParamValues['Date_Time']:=OutDeptDateTimeP.DateTime;
    parameters.ParamValues['id']:=id;
    parameters.ParamValues['action']:='E';
    DataM.PatTransferADOQ.ExecSQL;
在提交时报对象没有正确正义,请高手指点!!!

解决方案 »

  1.   

    定义类型为   TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
        ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,
        ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
        ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,
        ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,
        ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);
      Adoquery1.Parameters.ParamByName('x').DataType := ftString;
      AdoQuery1.Parameters.Parambyname('x').Value = 'xxxxxxxxxxxx';
      

  2.   

    我觉得这样没有多大意义啊!就用这样的前面写一个查询 以把ADOQuery指定到你所要操作的表
    ADOQuery.Insert;
    ADOQuery.FieldValues[]:='';
    ..
    ..
    ADOQuery.post;就可以了
      

  3.   

    谢谢各位,已经找到原因了
    原来我少定义了一个变量,:visit
      

  4.   

    这样写参数还不如直接写成sql语句呢,又不是很复杂