レコードを1件書き出ししたいとき
お世話になっております。
さて、1件レコードだけ書き出したいのですが
1万件以上書き出し処理が動作します。
タスク特性のタスクタイプはバッチ、初期モードは登録です
データビューは、メインソース未定義で書き出し先テーブルを登録リンクとしています
他に何か設定が必要でしょうか?
よろしくお願いいたします。
-
こんにちはPuです
どのような作りになっているか分かりませんがタスクの終了条件が無いのでは
でわ~でわ~ -
タスクの特性で、終了条件 YES、後 を設定するのもいいのかもしれません。
-
Puさんとほぼ同タイミング投稿でした。
-
ありがとうございます
しかし、まだ動作がうまくいかないです
簡単なプログラムなのですが・・・
タスク名:TEST
タスクタイプ:バッチ
タスク終了条件:YES
■データビュー
C=登録リンク test
カラム test01
カラム test02
■ロジック
R=レコード P=前
項目更新 V=項目 test01 値 1
項目更新 V=項目 test02 値 '2'
タスク S=後
イベント実行 終了
何も書きだしてくれなくなりました。
-
こんにちはPuです
まさかとは思いますが チェック時期=B(前置))とか...なわけないかでわ~でわ~
-
お邪魔します。
▼以下はレコード後がいいと思います。
項目更新 V=項目 test01 値 1
▼以下は不要だと思います。
イベント実行 終了 -
もしかするとPuさんがおっしゃるように
チェック時期 B=前置き なのかもしれませんね。 -
ありがとうございます
チェック時期=B(前置)
まさかでした
本当にありがとうございました
-
komatさん、
「登録リンク」は昔からある古いやり方ですが、今は初期モードを「C=登録」にするという新機能が追加されています。
-
Tandaさん
新機能があるのですね
ありがとうございます
-
komatさん、
新機能といっても、もうかれこれ10年以上になりますけどね。
うちの iPhone RIA のセミナーで初めてその機能を紹介したとき、戸惑われる方がいらっしゃいました。
新しい機能って、受け入れられるのに結構、時間が掛かることってあるんですよね。
-
komatさん
上位タスクの変数等の値を、1件だけDBにINSERTしたい場合は
と登録リンクの組合せでいいと思います。
バッチ
初期モード 登録
Y
A
登録リンクを使わない
登録に使いたいデータをメインソースに指定する
でもいいと思います。
自分の場合
バッチ
初期モード 登録は、CSV取込等で使う事が多いです。
バッチ
初期モード 登録は、dbMAGIC V7には有ったのは間違いないと思います。 -
ありがとうございます
CSV取込のときに活用できるのですね
次の作成プログラムでCSV取込がありましたので
参考にさせていただきます
-
ご存知かもしれませんが
データリポジトリのあるテーブルで
CTRL+G と操作して
でプログラムを作ると、
バッチ、登録、
(登録リンク無し)
テキストファイルからの取込PGは出来ます。 -
komatさん、
1件だけレコードを登録したいときも、あえてロジックに「登録リンク」を貼らなくても、初期モード「C=登録」だけでプログラムは完成しますよ。「タスク終了条件:Yes」、「チェック時期:A=後置」とするだけです。
「チェック時期:A=後置」というのは、1件だけレコードを登録し、登録後、レコード後処理を通過してそのまま終了するという意味の設定になります。
私もこのやり方は当初は知らなかったのですが、息子が教えてくれて、当時は目から鱗でした。それまでは、登録モードは外部データを取り込む時に使うくらいの発想しかありませんでしたので。
このことを知っておくと、昔ながらに「登録リンク」を貼らなくても、簡単にプログラムが作成できますよ。
-
登録リンクは昔ながらのもので、使うのは避けた方がいいとは思ってないですけどね。
dbMAGIC の Ver 4には、バッチ、登録モードは無かったのでしょうか? -
バッチ、登録、Y、後置き
が目に鱗だったのですね。 -
初期モード=登録で、メインソースを指定し、終了=YES、チェック=後でもいいですが、その場合、1テーブルへの追加となります。
登録リンクの場合は、複数テーブルを1タスクで実現する事も可能です。
登録リンクは昔のやり方という表現は適切ではないと思いました。
いろんなやり方が有るという事でいいと思います。
バッチタスク、初期モード「C=登録」はdbMAGIC Ver4から恐らく存在したと思いますので、それを新機能という表現もどうかなと思いました。 -
登録リンクを使った昔ながらのやり方でも間違いではないので、心配しなくても大丈夫ですよ。ちゃんと動きます。
ここではkomatさんの今回のご質問に対して、もっと簡単なやり方があるよということをご紹介しているだけですので、参考にしていただければ幸いです。
プログラムは簡潔なほうがスマートですよね。
-
tandaさん、コメントありがとうございました。
-
いろいろなコメントをありがとうございました
-
tandaさん お世話になっております。
大変恐れ入りますがお尋ねします。
「登録リンク」を昔ながらのやり方とおっしゃられる理由が知りたいです。
バッリ、登録リンクは昔ながら
バッチ、登録モードはそれよりも新しいというのはtandaさん御自身の感想でしょか?
両者の登場時期がかなり開きがあるのであれば納得できます。
登録リンクが書いてあるタスクを目にしたら、
あ、このタスクは1件レコード追加するんですね!とすぐわかります。
バッチ、登録モードはタスク特性を見ないと、レコード追加する事と理解するのは遅れる事もあるかもしれません。
登録リンクを定義するのは一瞬だし、登録リンクはわかり易いし、簡潔ではないとも思いません。
もしよろしければご回答頂けますと幸いです。
よろしくお願いいたします。 -
もしかするとバッチ、登録、Y、AのAが最初は無かったけど、それが登場し活用の幅が広がったとかそういった事でしょうか?
-
便乗質問で申し訳ございませんPuです
簡単な帳票一覧プログラムを作成する時
昔はタスク前でヘッダー出力
タスク後でフッター出力命令を出していました
今は入出力ファイル==>印刷オプションでヘッダーフォーム、フッターフォームを指定するだけで
出力命令を出さなくてもMagicが自動的にヘッダー、フッターを出力してくれます
自分は前者(昔からのやり方)を今も使用しております
それはプログラムを読んだ時わかりやすいと思ってるので
但しデータが無い(ヒットしない)場合ヘッダー、フッターを出力しない仕組みが必要となりますが
後者のやり方だとデータが無い場合はヘッダー、フッターも出力されないので便利なんですがね
皆さんはどちらを使用しているのか上記スレッドを読んでいてふと気になったので
でわ~でわ~ -
Puさん おはようございます。
ご質問の件、そうですね、わかります。
スレ主のkomatさんにもメールが行くでしょうし別スレッドを立ててましょうか。 -
nkmtさん、ありがとうございます。dbMagic世代のPuです
でわ~でわ~ -
Puさん、
ひょっとして、「ページヘッダ」と「ページフッタ」のことでしょうか?
この2つはMagicのロジックが管理しているのではなくて、プリンタドライバに依存している設定なので、ロジックでの記述は不要になっています。
つまり、「A4用紙がもうじき終わるよ〜」とか、「A4用紙の先頭がはじまるよ〜」とかいう状況はMagicのロジックでは管理できないので、プリンタドライバにバトンタッチするという仕組みです。
-
Puさん、
追伸です。
もちろん、昔ながらにロジックで書いてもいいですよ。ただし、その場合は、自分が今A4用紙の上から何行目にいるとか、上から何センチ目にいるとか、あと何行でA4用紙が終わるとか、あと何センチでA4用紙が終わるとかの計算をすべて記述しなければならないので、プログラムミングが数倍に膨れ上がります。
昔はラインプリンタが主流でしたので、それでも計算は割と早く立てれたのですが、いまはページプリンタが主流で、フォントの縦幅も設定次第でまちまちなので、プリンタドライバの管理下に任せるのが一番楽だという趣旨になっていますね。
Magicの進化は目まぐるしいですね(笑
-
nkmtさん、
自分が長年信じているやり方があれば、その方法でやればいいと思いますよ。どんな言語でもそうですが、この方法でプログラミングしなければならないという規則はありませんので(言語は進化しますが … )。
komatさんのご質問のケースでは、どちらのやり方でもパフォーマンスは変わらないと思いますので、簡潔さに違いがあるとはいえ、無理に不慣れなやり方に引っ越す必要はないですよ。
頑張ってくださいね。
-
スレッドがかなり脇道に逸れてきたようですので、さらなる疑問点とかあるようでしたら、新しいスレッドを立てて頂いたほうがいいかもしれませんね。
サインインしてコメントを残してください。
コメント
41件のコメント