ストアドプロシージャとは

データベースに対して一連の処理をまとめたものです
SQLServerでは下記の場所でシステムストアドプロシージャを確認できます

PLCからストアドプロシージャを実行するメリット

複雑なSQL文をPLC側で作成する必要がなくなります。

データベース側に処理を集約できるため、PLCプログラムをシンプルに保つことができます。

検索、登録、更新などの処理をストアドプロシージャとして再利用できます。

SQL Server Management Studioのストアドプロシージャ一覧

使用例

システムストアドプロシージャの中でデータベース一覧を取得する"sp_databases"プロシージャを呼び出す使用例です

ラダー

PLCからストアドプロシージャを実行するラダープログラム

ExecuteフラグをONにするとストアドプロシージャを呼び出す処理を開始します

  1. DB_Connect : DBに接続します
  2. DB_AttachProcedure : ストアドプロシージャを指定してハンドルを取得します
  3. DB_ExecuteProcedure : ストアドプロシージャを実行します
  4. DB_DetachProcedure : ハンドルを開放します
  5. DB_Close : DBとの接続を切断します

DB_AttachProcedureに必要なパラメータは以下の通りです

  • ProcName : プロシージャ名
  • ArgIn : 入力パラメータ
  • ArgOut: 出力パラメータ
  • ArgInOut : 入出力パラメータ
  • ReturnVal : 戻り値
  • ResultSet : 結果セット

ArgIn,ArgOut,ArgInOutはストアドプロシージャで指定のある入出力のパラメータをセットします
指定がない場合は _DBC_Unused を入力します
ストアドプロシージャの結果はReturnValとResultSetに出力されます

ストアドプロシージャ実行結果モニタ

よくある質問

ストアドプロシージャとは何ですか?

データベース内に保存された処理の集合です。

PLCからSQL文を直接実行するのと何が違いますか?

複雑な処理をデータベース側へ移せるため保守性が向上します。

入力パラメータは渡せますか?

ArgInパラメータを使用して渡せます。

戻り値は取得できますか?

ReturnValおよびResultSetで取得できます。

ダウンロード

この記事へのコメント