クライアント アプリケーションの作成(通信フィルタのチュートリアル)
チュートリアル:Delphi DataSnap 通信フィルタ への移動
クライアント アプリケーションを作成する
1. プロジェクト グループを右クリックして[新規プロジェクトを追加...]を選択したあと、[新規作成]ダイアログ ボックスで[VCL フォーム アプリケーション]を選択して[OK]をクリックします。
2. サーバーと同じ場所にプロジェクトを保存し、最初のユニットの名前を「FormClientUnit.pas」に設定します。
3. FormClientUnit の[デザイン]ページで、右側にある[ツール パレット]を使って、TEdit コンポーネントと TButton コンポーネントを追加します。ボタンのキャプションを「Reverse」に変更します。
4. [ツール パレット]から TSQLConnection コンポーネントを追加します。
5. [オブジェクト インスペクタ]で、SQLConnection の[Driver]プロパティを選択し、値として[Datasnap]を選択します。
6. SQLConnection の[LoginPrompt]プロパティ値を[False]に変更します。
7. SQLConnection の[Driver|Filters]プロパティを選択し、サーバーと同じフィルタ(ZLibCompression)を設定します。
- サーバーはデータ ストリームに圧縮(ZIP タイプ)を適用するため、クライアントはこのデータ ストリームの解凍方法を知っている必要があります。
8. SQLConnection の[Connected]プロパティ値を[True]に変更します。
9. SQLConnection アイコンを右クリックし、[DataSnap クライアント クラスの生成]を選択します。
- 対応するページが表示されます。このユニットを、前に保存したファイルと同じ場所に「proxy.pas」という名前で[保存]します。
10. FormClientUnit に切り替え、[ファイル|使用するユニット...|proxy.pas]を選択して[OK]をクリックします。
- これで、このプロキシ ユニットがクライアント プロジェクトの uses 句に追加されます。
11. FormClientUnit の[デザイン]ページに切り替え、前に追加した[Reverse]ボタンをダブルクリックします。
- [コード]ページに切り替わり、ここで、このボタンの機能を実装する必要があります。
12. 対応する手続きで、このボタンの機能(編集ボックスに入力されている文字列を逆の文字列に変更すること)を以下のように実装します。
- 次のように aClient 変数を宣言しインスタンス化します。
var aClient := TServerMethods2Client.Create(SQLCOnnection1.DBXConnection);
TServerMethods2Client *aClient = TServerMethods2Client(SQLCOnnection1->DBXConnection);
- FormClientUnit にある TEdit コンポーネントのテキストを次のように設定します。
Edit1.Text := aClient.ReverseString(Edit1.Text);
Edit1->Text = aClient->ReverseString(Edit1->Text);
13. DBXCompressionFilter ユニットをクライアントの uses 句に追加します。
- そうしなければ、"引数が無効です" というデバッガ例外通知メッセージが表示されます。
- DBXCompressionFilter ユニットの initialization セクションには、アプリケーションが TTransportCompressionFilter を登録するのに必要な RegisterFilter(TTransportCompressionFilter) メソッドがあるため、それが検出可能になっています。こうして、圧縮データで通信を行うことができます。
- 独自の通信フィルタを実装する場合は、TTransportFilter から派生するクラスを定義する必要があります。その実装では、最低限、Id、ProcessInput、ProcessOutput の各関数をオーバーライドします。
14. F9 キーを押すことで、クライアントを[実行]します。