爱坐小孩那桌 發表於 2022-9-17 19:49:00

delphi model

<p>delphi model</p>
<p>model就是record(记录或结构体)。model来源于以下几种途径。面向model编程适用于任何开发语言。</p>
<p>1)人工书写model。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">type
Ttunit </span>=<span style="color: rgba(0, 0, 0, 1)"> record
    unitid: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
    unitname: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
end;

TtunitArray </span>=<span style="color: rgba(0, 0, 0, 1)"> record
    status: integer;
    exception: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
    message: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
    tunits: TArray&lt;Ttunit&gt;<span style="color: rgba(0, 0, 0, 1)">;
end;

TRes </span>=<span style="color: rgba(0, 0, 0, 1)"> record
    status: integer;
    exception: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
    message: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
end;</span></pre>
</div>
<p>2)从数据表生成。</p>
<p>这个一般是通过工具自动生成,当然也可以人工书写(太费时)。</p>
<p><img src="https://img2022.cnblogs.com/blog/368779/202209/368779-20220917193909748-1225120212.png"></p>
<p>&nbsp;</p>
<p>3)从*.proto生成。</p>
<p>这个一般是通过工具自动生成,当然也可以人工书写(太费时)。一般用于3方异构系统对接,只需要提供*.proto文件即可。</p>
<p>准备好*.proto文件。</p>
<p><img src="https://img2022.cnblogs.com/blog/368779/202209/368779-20220917194227171-1738223867.png"></p>
<p>通过工具将*.proto翻译为pascal代码。</p>
<p><img src="https://img2022.cnblogs.com/blog/368779/202209/368779-20220917194645291-310132701.png"></p>
<p>得到pascal代码。</p>
<p><img src="https://img2022.cnblogs.com/blog/368779/202209/368779-20220917194422403-801074660.png"></p>
<p>最后程序操作的都是model。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">procedure TForm1.Button5Click(Sender: TObject);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">json查询</span>
<span style="color: rgba(0, 0, 0, 1)">begin
</span><span style="color: rgba(0, 0, 255, 1)">var</span> t: TtunitArray := TRest.<span style="color: rgba(0, 0, 255, 1)">select</span>&lt;TtunitArray&gt;(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">tunit</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">if</span> t.Status = <span style="color: rgba(128, 0, 128, 1)">500</span><span style="color: rgba(0, 0, 0, 1)"> then
begin
    ShowMessage(t.Exception);
    Exit;
end;
FDMemTable1.EmptyDataSet;
FDMemTable1.DisableControls;
</span><span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(0, 0, 255, 1)">var</span> dw: Ttunit <span style="color: rgba(0, 0, 255, 1)">in</span> t.tunits <span style="color: rgba(0, 0, 255, 1)">do</span><span style="color: rgba(0, 0, 0, 1)">
    FDMemTable1.AppendRecord();
FDMemTable1.First;
FDMemTable1.EnableControls;
end;</span></pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/16703455.html</p><br><br>
来源:https://www.cnblogs.com/hnxxcxg/p/16703455.html
頁: [1]
查看完整版本: delphi model