zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    opencv图片右转函数
    多项式相加实验代码和报告
    C++下实现同接口下多个类作为参数的调用和传参
    Betsy Ross Problem
    matlab绘制实用日历实例代码
    node-sass 安装卡在 node scripts/install.js 解决办法
    如何管理自己?
    Webstorm 11 注册/破解方法
    解决play-1.4.0在linux或mac下提示No such file or directory的问题
    PlayFramework 1.2.x 在Controller 中识别JSON提交
  • 原文地址:https://www.cnblogs.com/cb168/p/5594996.html
Copyright © 2011-2022 走看看