[FireDAC][Phys][MSSQL]-335. Parameter [fieldAA] data type is unknown. Hint: specify TFDParam.DataType or assign TFDParam value before Prepare/Execute call
以前BDE可以。
ADO
qrypub->ParamByName("fieldAA")->DataType= ftDateTime;
qrypub->ParamByName("fieldAA")->DataType= ftString;
DataType就是字段類型,設定字段類型就可以插入NULL值了,不指派執行insert或update語句自動填充為NULL值了。
2016.9.23 record,
fdquery有個屬性,FormatOptions.DefaultParamDataType=ftUnknow,預設是ftUnknown,改為ftString或者ftVariant也許就好了,未測試。
2017.5.11 測試用ftString是ok了。
qrypub->FormatOptions->DefaultParamDataType = ftString;
FDQuery1.FormatOptions.DefaultParamDataType := ftString;
TFieldType : unsigned char { 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, ftFixedWideChar, ftWideMemo, ftOraTimeStamp, ftOraInterval, ftLongWord, ftShortint, ftByte, ftExtended, ftConnection, ftParams, ftStream, ftTimeStampOffset, ftObject, ftSingle };
TADTField
TAggregateField
TArrayField
TAutoIncField
TBCDField
TBinaryField
TBlobField
TBooleanField
TByteField
TBytesField
TCurrencyField
TDataSetField
TDateField
TDateTimeField
TExtendedField
TFloatField
TFMTBCDField
TGraphicField
TGuidField
TIDispatchField
TIntegerField
TInterfaceField
TLargeintField
TLongWordField
TMemoField
TNumericField
TObjectField
TReferenceField
TShortintField
TSingleField
TSmallintField
TSQLTimeStampField
TSQLTimeStampOffsetField
TStringField
TTimeField
TUnsignedAutoIncField
TVarBytesField
TVariantField
TWideMemoField
TWideStringField
TWordField
Param [PName] type changed from [ftString] to [ftFixedChar]. Query must be reprepared. Possible reason: an assignment to a TFDParam.AsXXX property implicitly changed the parameter data type. Hint: use the TFDParam.Value or appropriate TFDParam.AsXXX property.