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;
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;