メインコンテンツへスキップ

DbRecs関数の使い方

コメント

24件のコメント

  • Tanda

    yamamotoさん、

    同じようにプログラムを作って試してみましたが、ちゃんと動きましたよ。
    使用したのはMagic xpa 4.8.1ですが、4Plusでも同じように動くと思います。

  • nkmt

    DbRecs(3,'')よりは
    DbRecs(’3'DSource,'')がいいですよ。

    DbRecs(3,'')をお勧めしないのは
    データソース3番がデータリポジトリ上の番号が例えばデータソース4番に変わった時に
    プログラム側が追随してくれないからです。

    DbRecs(’3'DSource,'')としておけば、データリポジトリの4番に変わっても
    プログラム内の式が自動で
    DbRecs(’4'DSource,'')に変更されます。

    式を書く時、楽する為に、
    DbRecs(’3'DS,'')と入力すると、自動で
    DbRecs(’3'DSource,'')になってくれると思います。

    それと自分の場合は、アクションではなく
    項目更新 件数把握変数 式=DbRecs(’3'DSource,'')とする事が多いです。



  • nkmt

    値を受け取るとかなら、項目更新の方がいいかなと思います。

    私はアクションは、画面上の操作などに使う事が多いです。
    アクション KBPUT('次行'Event・・・など
    もっとも今はそれよりか、イベント 次行などの方を用います。

    もっとふさわしい説明があるとか、異なる御意見の方おられましたらお教えください。
    よろしくお願いいたします。

  • yamamoto

    tandaさん、お試しいただきありがとうございます。

    使い方としては合っているのですね。タスク設定やトランザクションは関係ないでしょうか?

    nkmtさん、コメントありがとうございます。

    一度、項目更新で作成してみます!

  • Tanda

    yamamotoさん、

    はい、使い方は合っていますよ。yamamotoさんのやり方が最新の方式だと思います。

    タスク設定やトランザクションは関係ないですね。実際にレコードは何件あるのでしょうか?

  • nkmt

    向学の為にtandaさんに教えて頂きたいのですが
    項目更新 変数 式=DBRECS よりは
    アクション DBRECS  戻値=変数 の方が新方式とか
    なお良いとかそういう事なのでしょうか。

  • Tanda

    もちろん、従来通りのやり方の「項目更新」でも間違いではないですから、全然問題ないですよ。実行結果は同じになりますし、パフォーマンスもおそらく同じでしょうね。

    yamamotoさんが、「戻り値」を使った新方式に着眼された点はすばらしいことだと思います。

    Magicはどんどん進化していますので、別のやり方に付いていくのは大変でしょうけど、感動は尽きないですね。

    ※ここはyamamotoさんのスレッドですので、更なる質問がありましたら、新しいスレッドを立てて質問されたほうがいいですね。

  • nkmt

    tandaさん どうもありがとうございました。

  • nkmt

    ちなみにdbMAGIC V8では
    アクション DBRECS('1'FILE,'')   戻り値=数値変数 は書けましたが
    F8 チェックを行うと、タイプが合っていません となりました。

    ▼xpa 4.7などでは以下のどちらでも良さそうですね。
    項目更新  変数    式=DBRECS
    アクション DBRECS  戻値=変数
    ※余談でした。

  • yamamoto

    tandaさん、コメントありがとうございます。

    レコードはデータリポジトリからAPG実行で直接3件入力しております。

    nkmtさん、コメントありがとうございます。

    nkmtさんのご質問のおかげでMagicの歴史を知ることができました。

    下記、両方試してみます。
    項目更新  変数    式=DBRECS
    アクション DBRECS  戻値=変数

  • Tanda

    yamamotoさん、

    ひょっとして、トランザクション中のレコード件数を見にいっているということはありませんか?

    入力が確定したテーブルで試していますか?

    まずは、APG程度の簡単なプログラムでテストされることをお勧めします。

     

  • Tanda

    新方式ですから、わざわざMagicの古いバージョンで試しても、エラーになる可能性は大でしょうね。

  • yamamoto

    tandaさん、コメントありがとうございます。

    APGでの直書きデータなので確定していると思っているのですがAPG入力でもトランザクション中ということがあるのでしょうか?

    また、PGは件数を表示するだけの単純なPGでロジックには上記画像以上のものはありません。

    ちなみに実行画面の表示は下記画像のように「・・」となっています。これは何なんでしょうか、、、。

  • yamamoto

    nkmtさんに伺った項目更新方式でも同様の「・・」表示でした。

  • Tanda

    yamamotoさん、

    「・・」の部分のフォームの定義画面はどうなっていますか?(プロパティも含めて)

    F8チェックは行っていますか?

  • nkmt

    変数を作り直して、その新変数に値を格納、表示してみてはいかがですか?
    数値型変数ですかね?

  • nkmt

    ※誰も求めていないかもしれませんが実験してみました。^^;
    アクション DBRECS 戻り値=数値型変数
    dbMAGIC V8   F8チェックエラー
    V9     未調査
    V9 Plus   F8チェックエラー
    V10、V1   未調査
    V1 Plus   可能

  • Tanda

    yamamotoさん、

    どうやら、yamamotoさんがこの方式に気が付いた第1人者みたいですね。

    おめでとうございます!

    ※人間工学的には、yamamotoさんの方式のほうが理にかなっていますね。

  • yamamoto

    nkmtさん、tandaさんコメントありがとうございます。

    お二人のコメントがヒントになり、解決しました。

    原因は変数を文字型で作成していたことでした。

    数値型に変更し、無事件数表示がかないました。

    nkmtさん、tandaさんお付き合いいただきありがとうございました!

  • Tanda

    yamamotoさん、

    解決してよかったですね。

    ちなみに、私はプログラムを1文字でも修正したら、F8チェックを掛けるようにしています。

  • yamamoto

    tandaさん、F8チェック心掛けます。

    ついつい忘れてしまいますね、、、。

  • Tanda

    yamamotoさん、

    F8チェックを怠ると、.edp ファイルが致命的に壊れる場合もあり得ますので、徹底的に習慣化したほうがいいですよ。

    私はセミナーでも常に、「はい、ではF8でチェックをして、F7で実行してみましょう」と300回くらい繰り返しています。

  • nkmt

    こんばんは。
    アクション   DBRECS  戻り値=文字型変数
    となっていたようですが、F8 チェック、F7 実行としていれば
    原因判明していた訳ですので、今後はほんとF8、F7 の癖をつけるのがいいですね。
    我々はその操作をしております。

  • yamamoto

    tandaさん、nkmtさんコメントありがとうございます。

    仰る通りですね。以後気を付けます。

サインインしてコメントを残してください。