【DO!BOOK・ページリンク】
2010_migaro_techreport_001   34 / 84

BOOKをみる

10秒後にBOOKのページに移動します


32 中嶋 祥子 株式会社ミガロ. RAD事業部 技術支援課 ●はじめに ●使用コンポーネント ●データ操作 ●更新処理 ●注意点 ●まとめ 1. はじめに  クライアントデータセットを使用する と、サーバー上のデータをローカルPC のキャッシュ上に保持できるが、そのメ リットとは何だろうか。  Delphi/400 は、クライアントデータ セットを使用しなくても、IBM i(AS/ 400)との通信パフォーマンスが高い。 だが、キャッシュ上のデータにアクセス することで、サーバー(IBM i)との 通信回数を減らすことが可能になり、さ らにパフォーマンスのよいアプリケー ションが作成できる。それだけでなく、 キャッシュ上にあるという特性を生かし た機能が用意されているため、さまざま なオペレーションが簡単に実現できる。 2. 使用コンポーネント  ローカルキャッシュ上でサーバー上の データを扱う場合、TClientDataSet を 使用する。その時にサーバーへ接続する データセット(TTable、TQuery 等) とこのTClientDataSet をつなぐため に、TDataSetProvider もあわせて利用 する。  TTable のデータをTDBGrid に表示 するプログラムを例にしてみよう。  通常であれば、4 つのコンポーネント がプロパティで関連付けられている。こ れに、TDataSetProvider、TClientData Set の2 つのコンポーネントを加え、プ ロパティの関連付けを行うだけで、ロー カルキャッシュ上でデータを扱える。  なお、TDBGridに表示するデータセッ トはTTable からTClientDataSet にな るため、TDataSource のプロパティを TClientDataSet に変更しておく。【図1】  以上の処理で、TClientDataSet を操 作すると、キャッシュ上のデータを操作 することになる。また、TTable と基本 的な操作は同じであるため、違和感なく 利用できる。 3. データ操作  実際に、どのようなことが行えるのか を説明していこう。 レコード移動  First、Last、Next、Prior などの標準 のデータセットメソッドが使用できる。  また、キャッシュ上にデータを保持す るTClientDataSet 独自の方法として、 RecNo プロパティでレコード番号を指定 して位置付けを行える。【ソース1】【図2】  なお、このRecNo プロパティは、現 在のレコード位置を取得することもでき る。【ソース2】【図3】  また、リレーショナルデータベースで は、基本的にRecCount プロパティで レコード件数の参照は行えないが、 TClientDataSet では取得可能である。 【ソース3】【図4】 フィルタ処理  TTable はフィルタ処理でレコード抽 Delphi/400:ローカル キャッシュ活用術 ClientDataSet の利用を中心に Delphi/400 でのローカルキャッシュの有効な活用方法を紹介する。 略歴 1968 年2 月23 日生まれ 1990 年奈良女子大学大学家政学部卒 2002 年株式会社ミガロ. 入社 2002 年11 月RAD 事業部配属 現在の仕事内容 お客様からのDelphi/400 に関す る技術的な質問や問い合わせに対応 している。また、メルマガ「Migaro News」やホームページのTipsなど、 開発に役立つ情報も担当。