Delphi TADOStoredProc [2] Parameters 介绍

{该文首发于博客园 滔Roy,无须授权即可转载,请自觉保留头部申明}

Delphi TADOStoredProc [2] Parameters 介绍

1、常用参数:

  • Clear   //清空
  • Refresh  //初始化参数
  • ParamByName   //传递参数值
  • CreateParameter  //创建参数值
  • ParamValues[]  
  • AddParameter
  • FindParam
  • Command
  • Items[]
  • Count

2、主要使用参数介绍

2.1 ParamByName

原型:

function TParameters.ParamByName(const Value: WideString): TParameter;
  function GetComponent: TComponent;
  begin
    Result := GetCommand;
    if Assigned(Result) and (Result.Owner is TCustomADODataSet) then
      Result := Command.Owner;
  end;

begin
  Result := FindParam(Value);
  if Result = nil then
    DatabaseErrorFmt(SParameterNotFound, [Value], GetComponent);
end;

使用示例:

Parameters.ParamByName('@aa1').Value:=1;   //传递数值
Parameters.ParamByName('@aa1').Value:='你好';   //传递文本 

2.2 CreateParameter  

原型:

function TParameters.CreateParameter(const Name: WideString;
  DataType: TDataType; Direction: TParameterDirection; Size: Integer;
  Value: OleVariant): TParameter;
begin
  Result := AddParameter;
  Result.FParameter := Create_Parameter(Name, DataType, Direction, Size);
  { Don't try to assign value when it is an EmptyParam (used when optional) }
  if not ((TVarData(Value).VType = varError) and
    (TVarData(EmptyParam).VError = $80020004)) then
    Result.FParameter.Value := Value;
end;  

主要参数介绍:

 TDataType = 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

TParameterDirection:

  • pdUnknown,
  • pdInput,
  • pdOutput,
  • pdInputOutput,
  • pdReturnValue

Delphi 使用示例:

with ADOStoredProc1 do 
begin
    Close;
    ProcedureName:='存储过程';      //存储过程名称
    Parameters.Clear;   //清空参数 ,然后下面开始创建参数
    Parameters.CreateParameter('@a1',ftInteger,pdInput,20,1);
    Parameters.CreateParameter('@a2',ftString,pdInput,50,'你好');
    Open;   //返回结果集
  end;

  

其他内容,有时间会补充 -- 2020.09.16

创建时间:2020.09.16  更新时间:

博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你所有帮助,谢谢!
原文地址:https://www.cnblogs.com/guorongtao/p/13679265.html