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

レコードを1件書き出ししたいとき

コメント

41件のコメント

  • Pu

    こんにちはPuです
    どのような作りになっているか分かりませんがタスクの終了条件が無いのでは
    でわ~でわ~

  • nkmt

    タスクの特性で、終了条件 YES、後 を設定するのもいいのかもしれません。

  • nkmt

    Puさんとほぼ同タイミング投稿でした。

  • komat

    ありがとうございます

    しかし、まだ動作がうまくいかないです

    簡単なプログラムなのですが・・・

    タスク名:TEST

    タスクタイプ:バッチ

    タスク終了条件:YES

    ■データビュー

     C=登録リンク   test

     カラム test01

     カラム test02

    ■ロジック

     R=レコード P=前

     項目更新 V=項目 test01  値 1

     項目更新 V=項目 test02  値 '2'

     タスク S=後

     イベント実行 終了

     

    何も書きだしてくれなくなりました。

     

     

     

     

     

  • Pu

    こんにちはPuです
    まさかとは思いますが チェック時期=B(前置))とか...なわけないか

    でわ~でわ~

  • nkmt

    お邪魔します。

     

    ▼以下はレコード後がいいと思います。
    項目更新 V=項目 test01  値 1

    ▼以下は不要だと思います。
    イベント実行 終了


  • nkmt

    もしかするとPuさんがおっしゃるように
    チェック時期 B=前置き なのかもしれませんね。

  • komat

    ありがとうございます

    チェック時期=B(前置)

    まさかでした

    本当にありがとうございました

  • Tanda

    komatさん、

    「登録リンク」は昔からある古いやり方ですが、今は初期モードを「C=登録」にするという新機能が追加されています。

  • komat

    Tandaさん

    新機能があるのですね

    ありがとうございます

  • Tanda

    komatさん、

    新機能といっても、もうかれこれ10年以上になりますけどね。

    うちの iPhone RIA のセミナーで初めてその機能を紹介したとき、戸惑われる方がいらっしゃいました。

    新しい機能って、受け入れられるのに結構、時間が掛かることってあるんですよね。

  • nkmt

    komatさん
    上位タスクの変数等の値を、1件だけDBにINSERTしたい場合は

    と登録リンクの組合せでいいと思います。

    バッチ
    初期モード 登録


    登録リンクを使わない
    登録に使いたいデータをメインソースに指定する
    でもいいと思います。

    自分の場合
    バッチ
    初期モード 登録は、CSV取込等で使う事が多いです。

    バッチ
    初期モード 登録は、dbMAGIC V7には有ったのは間違いないと思います。



  • komat

    nkmtさん

    ありがとうございます

    CSV取込のときに活用できるのですね

    次の作成プログラムでCSV取込がありましたので

    参考にさせていただきます

     

  • nkmt

    ご存知かもしれませんが
    データリポジトリのあるテーブルで
    CTRL+G と操作して

    でプログラムを作ると、
    バッチ、登録、
    (登録リンク無し)
    テキストファイルからの取込PGは出来ます。

  • Tanda

    komatさん、

    1件だけレコードを登録したいときも、あえてロジックに「登録リンク」を貼らなくても、初期モード「C=登録」だけでプログラムは完成しますよ。「タスク終了条件:Yes」、「チェック時期:A=後置」とするだけです。

    「チェック時期:A=後置」というのは、1件だけレコードを登録し、登録後、レコード後処理を通過してそのまま終了するという意味の設定になります。

    私もこのやり方は当初は知らなかったのですが、息子が教えてくれて、当時は目から鱗でした。それまでは、登録モードは外部データを取り込む時に使うくらいの発想しかありませんでしたので。

    このことを知っておくと、昔ながらに「登録リンク」を貼らなくても、簡単にプログラムが作成できますよ。

  • nkmt

    登録リンクは昔ながらのもので、使うのは避けた方がいいとは思ってないですけどね。
    dbMAGIC の Ver 4には、バッチ、登録モードは無かったのでしょうか?

  • nkmt

    バッチ、登録、Y、後置き
    が目に鱗だったのですね。

  • nkmt

    初期モード=登録で、メインソースを指定し、終了=YES、チェック=後でもいいですが、その場合、1テーブルへの追加となります。

    登録リンクの場合は、複数テーブルを1タスクで実現する事も可能です。
    登録リンクは昔のやり方という表現は適切ではないと思いました。
    いろんなやり方が有るという事でいいと思います。

    バッチタスク、初期モード「C=登録」はdbMAGIC Ver4から恐らく存在したと思いますので、それを新機能という表現もどうかなと思いました。

  • Tanda

    登録リンクを使った昔ながらのやり方でも間違いではないので、心配しなくても大丈夫ですよ。ちゃんと動きます。

    ここではkomatさんの今回のご質問に対して、もっと簡単なやり方があるよということをご紹介しているだけですので、参考にしていただければ幸いです。

    プログラムは簡潔なほうがスマートですよね。

  • nkmt

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

  • komat

    いろいろなコメントをありがとうございました

  • nkmt

    tandaさん お世話になっております。
    大変恐れ入りますがお尋ねします。

    「登録リンク」を昔ながらのやり方とおっしゃられる理由が知りたいです。

    バッリ、登録リンクは昔ながら
    バッチ、登録モードはそれよりも新しいというのはtandaさん御自身の感想でしょか?
    両者の登場時期がかなり開きがあるのであれば納得できます。

    登録リンクが書いてあるタスクを目にしたら、
    あ、このタスクは1件レコード追加するんですね!とすぐわかります。

    バッチ、登録モードはタスク特性を見ないと、レコード追加する事と理解するのは遅れる事もあるかもしれません。

    登録リンクを定義するのは一瞬だし、登録リンクはわかり易いし、簡潔ではないとも思いません。
    もしよろしければご回答頂けますと幸いです。
    よろしくお願いいたします。

  • nkmt

    もしかするとバッチ、登録、Y、AのAが最初は無かったけど、それが登場し活用の幅が広がったとかそういった事でしょうか?

  • Pu

    便乗質問で申し訳ございませんPuです

    簡単な帳票一覧プログラムを作成する時
    昔はタスク前でヘッダー出力
    タスク後でフッター出力命令を出していました
    今は入出力ファイル==>印刷オプションでヘッダーフォーム、フッターフォームを指定するだけで
    出力命令を出さなくてもMagicが自動的にヘッダー、フッターを出力してくれます
    自分は前者(昔からのやり方)を今も使用しております
    それはプログラムを読んだ時わかりやすいと思ってるので
    但しデータが無い(ヒットしない)場合ヘッダー、フッターを出力しない仕組みが必要となりますが
    後者のやり方だとデータが無い場合はヘッダー、フッターも出力されないので便利なんですがね
    皆さんはどちらを使用しているのか上記スレッドを読んでいてふと気になったので
    でわ~でわ~

     

  • nkmt

    Puさん おはようございます。
    ご質問の件、そうですね、わかります。
    スレ主のkomatさんにもメールが行くでしょうし別スレッドを立ててましょうか。

  • Pu

    nkmtさん、ありがとうございます。dbMagic世代のPuです
    でわ~でわ~

  • Tanda

    Puさん、

    ひょっとして、「ページヘッダ」と「ページフッタ」のことでしょうか?

    この2つはMagicのロジックが管理しているのではなくて、プリンタドライバに依存している設定なので、ロジックでの記述は不要になっています。

    つまり、「A4用紙がもうじき終わるよ〜」とか、「A4用紙の先頭がはじまるよ〜」とかいう状況はMagicのロジックでは管理できないので、プリンタドライバにバトンタッチするという仕組みです。

     

  • Tanda

    Puさん、

    追伸です。

    もちろん、昔ながらにロジックで書いてもいいですよ。ただし、その場合は、自分が今A4用紙の上から何行目にいるとか、上から何センチ目にいるとか、あと何行でA4用紙が終わるとか、あと何センチでA4用紙が終わるとかの計算をすべて記述しなければならないので、プログラムミングが数倍に膨れ上がります。

    昔はラインプリンタが主流でしたので、それでも計算は割と早く立てれたのですが、いまはページプリンタが主流で、フォントの縦幅も設定次第でまちまちなので、プリンタドライバの管理下に任せるのが一番楽だという趣旨になっていますね。

    Magicの進化は目まぐるしいですね(笑

  • Tanda

    nkmtさん、

    自分が長年信じているやり方があれば、その方法でやればいいと思いますよ。どんな言語でもそうですが、この方法でプログラミングしなければならないという規則はありませんので(言語は進化しますが … )。

    komatさんのご質問のケースでは、どちらのやり方でもパフォーマンスは変わらないと思いますので、簡潔さに違いがあるとはいえ、無理に不慣れなやり方に引っ越す必要はないですよ。

    頑張ってくださいね。

  • Tanda

    スレッドがかなり脇道に逸れてきたようですので、さらなる疑問点とかあるようでしたら、新しいスレッドを立てて頂いたほうがいいかもしれませんね。

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