[ top ] [ prev ] [ up ] [ next ]

dbExpress の2層 DB アプリを3層に移行する (DCOM)

2層

-
TSQLClientDataSet は TClientDataSet, TDataSetProvider を内包している。TClientDataSet と TDataSetProvider との間で分割すると3層になるわけだ。

3層

まず server を作る。
新たにプロジェクトを開き、[新規作成]-[その他]-[多層サポート] からリモートデータモジュールを選択する。
TSQLDataSet, TDataSetProvider を必要なデータセットの個数ずつ置く。
そして SQL のロジックを server に移すことになる。

client 側では TSQLClientDataSet を TClientDataSet と置き換え、TDCOMConnection を置く。

2層であらかじめデータモジュールを用意してカプセル化しておくと移行が楽。

server
client

DCOM の設定

Windows95 には標準で付いていないので dcom95.exe, dcm95cfg.exe (Japanese 版) をインストールする。ASPROVA 試用版に付いていた。^^;

dcomcnfg.exe を起動して DCOM の設定をする。server, client 両方で行う必要がある。
既定のプロパティ
 このコンピュータ上で分散 COM を使うにチェック
 既定の認証レベルで(なし)を選択
既定のセキュリティ
 リモート接続を使用するにチェック
レジストリ上では
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]
"EnableDCOM"="Y"
"EnableRemoteConnect"="Y"
"LegacySecureReferences"="N"
"LegacyImpersonationLevel"=dword:00000002
"LegacyAuthenticationLevel"=dword:00000001
こうなる。

DCOMConnection1.ComputerName を設定しない場合は
dcomcnfg.exe のプロパティで
 次のコンピュータ上でアプリケーションを実行する
で指定できる。構築後に設定できるのでおすすめ。
設計時は ComputerName を未設定にしておくと、クライアントと合わせてデバッグできるのでおすすめ。

RPC

C:\windows\system\rpcss.exe を起動 (デスクトップにショートカットを作っておくと便利)
server を起動(client 起動時に自動で起動してくれないのかなあ)
もちろんあらかじめデータベースを起動しておく。
author: YOSHIDA Kazuhiro
[ top ] [ prev ] [ up ] [ next ]