{该文首发于博客园 滔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 更新时间: