たまたま使ってマジで忘れてた
参考リンク
参考
データプロバイダーのグループステートメントwiki.genexus.jp
概要
とりあえずDBからデータとってきてくれるオブジェクト。
嫌いなところ
ErrorHandler が書けない。(もしかしたら書き方がある?)
良いところ
別にテーブルをSELECTするだけじゃなくて、固定値をデータプロバイダーから取得するのもあり。
DBとかSDTとかとか
プロパティ
Attと同じ名前
セットする構造体(SDTやBC)の項目がAttと同じ名前の場合イコールを使わないで
Att名を書くだけでOK。
複数件返却(outをコレクションにする)
検索条件(Where)
ベーストランザクション(From)
並び(Order)
レコードが無い場合(Default)
出力件数(Count)
スキップ(Skip)
最初のレコード(One)
NoOutput
子テーブルのレコードを取得し、階層を付けないで取得したい場合に便利。
SDTを編集
OutputIfDetail
明細レコードがある場合だけ、返却値(SDT)に追加します。
SDTを編集
この場合Transaction1のデータに対応するTransaction2のデータが存在する場合だけSDTにレコードが追加されます。
まとめ
書いたら意外と長くてアップするのが夜になったわw
まだいろいろあるから追記していく予定。
以上です。
いつもありがとうございます、とても勉強になりました。データプロバイダーについては、私のプロジェクトではとりあえず利用禁止にしています(笑)。文法が特殊(ちょっと変では?)のと、ErrorHandlerとSubが使えない、多重IFやCase Whenが使えない、少しでも仕様変更が発生されると大きく書き換えるなど、プロシージャと比べるとデメリットが多すぎです。唯一のメリッドと言えば、コーディング量が少ないことですが、プロシージャと比べて数分間程度しか削減できないので無視できる程度だと思いますね。