[ top ] [ prev ] [ up ] [ next ]
dbExpress の2層 DB アプリを3層に移行する (DCOM)
2層
- -
-
- TSQLConnection
- TSQLClientDataSet
- TDataSource
- TDBGrid
TSQLClientDataSet は TClientDataSet, TDataSetProvider を内包している。TClientDataSet と TDataSetProvider との間で分割すると3層になるわけだ。
3層
まず server を作る。
新たにプロジェクトを開き、[新規作成]-[その他]-[多層サポート] からリモートデータモジュールを選択する。
TSQLDataSet, TDataSetProvider を必要なデータセットの個数ずつ置く。
そして SQL のロジックを server に移すことになる。
client 側では TSQLClientDataSet を TClientDataSet と置き換え、TDCOMConnection を置く。
2層であらかじめデータモジュールを用意してカプセル化しておくと移行が楽。
- server
-
- TRemoteDataModule
- TSQLConnection
- TSQLDataSet
- TDataSetProvider
- client
-
- TDCOMConnection
- TClientDataSet
- TDataSource
- TDBGrid
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 起動時に自動で起動してくれないのかなあ)
もちろんあらかじめデータベースを起動しておく。
[ top ] [ prev ] [ up ] [ next ]