2019/07/18

ADO in Web application for Delphi


主題雖然說是 ADO,其實泛指利用操作COM*的資料庫 Driver 皆適用,例如:使用到 OleDB / SQL Native Client 的 dbExpress、Devart DAC、FireDAC 元件等。

*元件物件模型英語:Component Object Model,縮寫COM

Delphi 在 Web Application 開發會使用到 Thread,所以使用 COM 技術時,必須要使用 CoInitialize / CoUninitialize 來避免存取錯誤。

使用時機通常是伴隨著 Method 開始和結束,例如:

procedure Method;
begin
  CoInitialize(nil);
  ...
  CoUninitialize;
end;

每一個 Method 要設定也太累人,總是想找個簡易的作法,運氣不錯,一找就看到有意思的作法,高手連結在此

WebModule的【BeforeDispatch】和【AfterDispatch】事件主要控制 Method (Action) 的起始和結束,所以我們可以分別加入 CoInitialize 和 CoUnitialize,如此一來便可以少寫很多的程式碼。

文中的 CGI 模式也可以套用到 Windows Service 專案中,真是長知識了!


See also: