Translate

ebook【Delphi跨平台資料庫程式設計火速上手】電子書出版 (CHT)

Delphi 跨平台資料庫程式設計火速上手,是本關於整合 Delphi 的跨平台技術打造 2-Tier 架構的跨平台 APP 的入門技術書。 全書沒有需要理解的技術知識,只講套路。 力求短時間把製作 APP 的工法熟悉,未來要開發其它的應用程式也能舉一反三。 底下...

2010/03/02

TClientDataSet Run-time時期應注意的地方

主旨:為了避免已建立的VCL的屬性莫名指向NULL,建議由使用者自己使用new建立TClientDataSet。

說明:

如果不想在Design-time時期設定好TClientDataSet各項參數,可以採用Run-time設計模式。

但如果TClientDataSet是於Design-time時期就已建立,在Run-time時期,該TClientDataSet開啟後,TDataProvider會指向NULL,此時再對該TClientDataSet->Close();,就會發生ACCESS ERROR。

解決方式:
Design-time時期於form表上加入TClientDataSet時,IDE會在 __published 區自動增加TClientDataSet *Temp;
而在Rum-time時,TClientDataSet資料傳輸的主控權即交給IDE自行處理。

所以使用者要擁有較高的管理權,可採自行於程式碼中 new /delete TClientDataSet即可。

2010/3/4 更新
在Help裡查到:
TClientDataSet若是使用SetProvider指向DataSetProvider(Run-time),則TClientDataSet Close()再開前需要再使用SetProvider指向DataSetProvider





動態建立 ClientDataSet 的範例可參考:
ADO and ClientDataSet

沒有留言:

張貼留言