姚税允 發表於 2020-9-16 15:14:00

Delphi TADOStoredProc [2] Parameters 介绍

<p><span style="font-size: 12px; color: rgba(136, 136, 136, 1)">{该文首发于博客园&nbsp;<span style="color: rgba(136, 136, 136, 1)">滔Roy</span>,无须授权即可转载,请自觉保留头部申明}</span></p>
<p><span style="font-size: 16px"><strong>Delphi TADOStoredProc Parameters 介绍</strong></span></p>
<p><span style="font-size: 16px"><strong>1、常用参数:</strong></span></p>
<ul>
<li><span style="font-size: 16px">Clear&nbsp; &nbsp;//清空</span></li>
<li><span style="font-size: 16px">Refresh&nbsp; //初始化参数</span></li>
<li><span style="font-size: 16px">ParamByName&nbsp; &nbsp;//传递参数值</span></li>
<li><span style="font-size: 16px">CreateParameter&nbsp; //创建参数值</span></li>
<li><span style="font-size: 16px">ParamValues[]&nbsp;&nbsp;</span></li>
<li><span style="font-size: 16px">AddParameter</span></li>
<li><span style="font-size: 16px">FindParam</span></li>
<li><span style="font-size: 16px">Command</span></li>
<li><span style="font-size: 16px">Items[]</span></li>
<li><span style="font-size: 16px">Count</span></li>
</ul>
<p><span style="font-size: 16px"><strong>2、主要使用参数介绍</strong></span></p>
<p><span style="font-size: 16px"><strong>2.1&nbsp;ParamByName</strong></span></p>
<p><span style="font-size: 16px">原型:</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;"><span style="font-size: 16px">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, , GetComponent);
end;</span></pre>
</div>
<p><span style="font-size: 16px">使用示例:</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;"><span style="font-size: 16px">Parameters.ParamByName('@aa1').Value:=1;   //传递数值
Parameters.ParamByName('@aa1').Value:='你好';   //传递文本 </span></pre>
</div>
<p><span style="font-size: 16px"><strong>2.2&nbsp;CreateParameter&nbsp;&nbsp;</strong></span></p>
<p><span style="font-size: 16px">原型:</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;"><span style="font-size: 16px">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;  </span></pre>
</div>
<p><span style="font-size: 16px">主要参数介绍:</span></p>
<p><span style="font-size: 16px"> TDataType = TFieldType:</span></p>
<ul>
<li><span style="font-size: 16px">ftUnknown, </span></li>
<li><span style="font-size: 16px">ftString, </span></li>
<li><span style="font-size: 16px">ftSmallint,</span></li>
<li><span style="font-size: 16px"> ftInteger, </span></li>
<li><span style="font-size: 16px">ftWord,</span></li>
<li><span style="font-size: 16px"> ftBoolean, </span></li>
<li><span style="font-size: 16px">ftFloat,</span></li>
<li><span style="font-size: 16px"> ftCurrency,</span></li>
<li><span style="font-size: 16px"> ftBCD,</span></li>
<li><span style="font-size: 16px"> ftDate,</span></li>
<li><span style="font-size: 16px"> ftTime, </span></li>
<li><span style="font-size: 16px">ftDateTime,</span></li>
<li><span style="font-size: 16px"> ftBytes, </span></li>
<li><span style="font-size: 16px">ftVarBytes, </span></li>
<li><span style="font-size: 16px">ftAutoInc, </span></li>
<li><span style="font-size: 16px">ftBlob, </span></li>
<li><span style="font-size: 16px">ftMemo, </span></li>
<li><span style="font-size: 16px">ftGraphic,</span></li>
<li><span style="font-size: 16px"> ftFmtMemo,</span></li>
<li><span style="font-size: 16px"> ftParadoxOle, </span></li>
<li><span style="font-size: 16px">ftDBaseOle, </span></li>
<li><span style="font-size: 16px">ftTypedBinary, </span></li>
<li><span style="font-size: 16px">ftCursor, </span></li>
<li><span style="font-size: 16px">ftFixedChar, </span></li>
<li><span style="font-size: 16px">ftWideString,</span></li>
<li><span style="font-size: 16px"> ftLargeint, </span></li>
<li><span style="font-size: 16px">ftADT, </span></li>
<li><span style="font-size: 16px">ftArray, </span></li>
<li><span style="font-size: 16px">ftReference, </span></li>
<li><span style="font-size: 16px">ftDataSet, </span></li>
<li><span style="font-size: 16px">ftOraBlob, </span></li>
<li><span style="font-size: 16px">ftOraClob,</span></li>
<li><span style="font-size: 16px"> ftVariant, </span></li>
<li><span style="font-size: 16px">ftInterface, </span></li>
<li><span style="font-size: 16px">ftIDispatch, </span></li>
<li><span style="font-size: 16px">ftGuid, </span></li>
<li><span style="font-size: 16px">ftTimeStamp,</span></li>
<li><span style="font-size: 16px"> ftFMTBcd</span></li>
</ul>
<p><span style="font-size: 16px">TParameterDirection:</span></p>
<ul>
<li><span style="font-size: 16px">pdUnknown, </span></li>
<li><span style="font-size: 16px">pdInput, </span></li>
<li><span style="font-size: 16px">pdOutput, </span></li>
<li><span style="font-size: 16px">pdInputOutput,</span></li>
<li><span style="font-size: 16px"> pdReturnValue</span></li>
</ul>
<p><span style="font-size: 16px">Delphi 使用示例:</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;"><span style="font-size: 16px">with ADOStoredProc1 do
begin
    Close;
    ProcedureName:='存储过程';      //存储过程名称
    Parameters.Clear;   //清空参数 ,然后下面开始创建参数
    Parameters.CreateParameter('@a1',ftInteger,pdInput,20,1);
    Parameters.CreateParameter('@a2',ftString,pdInput,50,'你好');
    Open;   //返回结果集
end;
</span></pre>
</div>
<p><span style="font-size: 16px">  </span></p>
<p><span style="font-size: 16px">其他内容,有时间会补充 -- 2020.09.16</span></p>
<p>&nbsp;</p>
<p><span style="color: rgba(136, 136, 136, 1)">创建时间:2020.09.16  更新时间:</span></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!<br><br>
来源:https://www.cnblogs.com/guorongtao/p/13679265.html
頁: [1]
查看完整版本: Delphi TADOStoredProc [2] Parameters 介绍