データプロバイダーの特徴

データプロバイダーの実装方法は他のオブジェクトと異なるので、GeneXus開発経験者でも使用したことがないという方は、少なからずいらっしゃるのではないでしょうか。
データプロバイダーと同様に、Sourceエレメントがあるプロシージャと比較してみます。

プロシージャとの比較

プロシージャ データプロバイダー
 出力形式  自由  SDT/BC(ビジネスコンポーネント)
 実装方法  Eventsエレメントに記述するような
プログラミング的記述
 出力形式を意識した独自記述
 実装の自由度  高い  低い
 パラメータルール  in,  inout, out  inのみ対応
 帳票出力  可能  不可
 データの登録や更新  可能  不可

プロシージャは様々な用途を実現するために柔軟に実装できるのに対し、データプロバイダーはデータのアウトプットに特化したオブジェクトといったところでしょうか。

用途

プロシージャとの比較のように、データプロバイダーで実現可能なことはプロシージャでもほとんど実現できてしまいます。
ただし、下記の用途ではプロシージャは対応しておらず、データプロバイダーのみ対応しています。

  • Query Viewer コントロールのデータの取得元
  • ダイナミックコンボボックスのデータの取得元
  • ダイナミックトランザクション

まとめ

データプロバイダーはプロシージャほど柔軟に実装することはできませんが、いくつかの用途ではデータプロダイバーを使用する必要があります。

GeneXus 15の新機能 その1 ~ダイナミック トランザクション~


2019.03.01 追記

データプロバイダーを使用することで、高速なページング処理を実現することができます。

GeneXus Wiki – サーバーページング
http://wiki.genexus.jp/hwiki.aspx?サーバーページング,

GeneXus 16以降ではFor Eachコマンドでもサーバーページングが実現できるとのことですが、現時点は対応していないので補足させていただきました。

 

システム開発のご相談はこちらからお気軽にお問合せください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です