• FDQuery 怎么能插入NULL参数


    [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.

    ftFixedChar 对应的数据库字段类型是char

    ftString 对应的数据库字段类型是varchar

    所以修改数据库类型即可。

  • 相关阅读:
    Linux中配置Aria2 RPC Server
    Ubuntu无法进入Windows的NTFS分区
    Visualbox在UEFI模式下无法正常引导
    pacman安装软件包出现损坏
    Windows下禁用锁屏热键WinKey+L
    Linux中无权限使用sudo
    Windows 10 MBR转GPT
    oh-my-zsh的安装与基本配置
    Raspbian开启root账户
    xrandr: 命令行修改分辨率工具
  • 原文地址:https://www.cnblogs.com/cb168/p/5594996.html
Copyright © 2020-2023  润新知