没有什么好的办法,除了把字段类型改成string类型。看一下VCL的源码: case TField(Fields).DataType of ftString, ftFixedChar, ftWideString, ftGUID: if (i = Fields.Count - 1) and (loPartialKey in Options) then ValStr := Format('''%s*''',[VarToStr(Value)]) else ValStr := Format('''%s''',[VarToStr(Value)]); ftDate, ftTime, ftDateTime, ftTimeStamp: ValStr := Format('''%s''',[VarToStr(Value)]); ftSmallint, ftInteger, ftWord, ftAutoInc, ftBoolean, ftFloat, ftCurrency, ftBCD, ftLargeInt, ftFMTBcd: ValStr := VarToStr(Value); else [red]--只要不是以上类型的字段,都会报is of unsupported type错误。[/red] DatabaseErrorFmt(SBadFieldType, [TField(Fields).FieldName]); end;