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

ストアドプロシージャの実行方法を教えてください

コメント

8件のコメント

  • Tanda

    komatさん、

    下記のいずれかの方法でSQLコマンドが記述できます。

    1. プルダウンメニューの「タスク環境」→「SQLコマンド」
    2. タスクの「データビュー」→「Q=SQLコマンド」

    ただし、MagicにおけるSQLコマンドの直接的な記述は、あくまで付録的な機能ですので、使っている人は少ないと思います。

    Magicはどちらかというと、SQLコマンドを全く知らなくてもSQLが使えてしまうという開発ツールですので、SQLコマンドがお分かりの方でしたら、PythonやJavaで書いたほうが手っ取り早いかもしれませんね。

  • komat

    tandaさん

    ご教授ありがとうございます。

    magicの使い方として、付録的なSQLコマンドを直接記述は

    しないほうが良いことが理解できました。ありがとうございます。

    どうしても解決できない悩みがあります。

    magicでデータ保存するときに、内部コード項目を自動的に1つカウントアップする方法が分かりません。

    良い方法はございますでしょうか?

    よろしくお願いいたします。

  • Tanda

    komatさん、

    目的によって方法は異なりますが、komatさんが望んでおられる方法は下記のどちらですか?

    1. 自動的にカウントアップしたのち、あとから途中のレコードが削除されてもリナンバリングしない(削除された番号は間引きになる)。
    2. 自動的にカウントアップしたのち、あとから途中のレコードが削除されたらリナンバリングする(削除された番号は詰められる)。

  • Tanda

    komatさん、

    ちなみに、SQL Serverが本来持つ機能を使おうとするなら、前述の2番の方法になります。

  • komat

    関連ファイルに内部コードでリンクがされますので

    削除したときは欠番になります。

    希望は、1になります。

     

    2を実行したいときは、

    上記の

    1. プルダウンメニューの「タスク環境」→「SQLコマンド」
    2. タスクの「データビュー」→「Q=SQLコマンド」

    で実行するようになりますか?

  • Tanda

    komatさん、

    1番を希望される場合は、次の2つのやり方があります。好きなほうを選べます。

    1. そのテーブルに「降順」で照会リンクをはり、先頭レコードの番号を取得して「+1」をした値を使用する。
    2. データリポジトリに「最終番号」とかの項目を持つテーブルを作成し、その値に「+1」をして採番する。採番後は「最終番号」も「+1」をしておく。

    欠番をなくしたい場合は、数値項目をひとつ作成して、そのカラム特性の「SQL / タイプ」蘭に「INT IDENTITY」と記述します。

    ちなみに、私の連載記事が読める環境がありましたら、下記の記事で詳しく解説しています。

    https://www.tandacomp.com/
    2011年1月31日号(第35回 SQL 上にユニークキーを自動生成する方法)

  • Tanda

    komatさん、

    ちなみに、Magicは「SQLコマンド」をまったく書かなくても、タスク定義の「データビュー」や「ロジック」に記述した内容を、Magicの実行エンジンが裏で自動的に最適なSQLコマンドに変換してSQL Serverに送信してくれますよ!

  • komat

    tandaさん

    たいへん参考になるアドバイスをありがとうございました。

    https://www.tandacomp.com/

    こちらもたいへん興味ありますので、拝見させていただきます。

     

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