サーバ側でSQLを実行する(SQL実行(ODBC))

<< Click to Display Table of Contents >>

マニュアル > 監視システム構築ガイド > サーバロジックの構築 >

サーバ側でSQLを実行する(SQL実行(ODBC))

概要

ここでは、「SQL実行(ODBC)アクション」を使用して、SQLを実行してDBの値を更新するサンプルについて解説します。

 

本サンプルでは、insertコマンドによるデータ追加及び、deleteコマンドによるテーブルデータの削除を行います。

 

使用アクション:SQL実行(ODBC)アクション

 

 

hint

SQL実行(ODBC)アクションに登録するSQL文は、オンライン後に動的に編集することはできません。例えば、何らかのロジックにより発行するSQL文の内容を切り替えたい場合など、より複雑なSQLコマンドの発行が必要になる場合は、スクリプトVer2アクションのスクリプトを使用する方法があります。詳細については「スクリプトVer2からDBにアクセスする」を参照して下さい。

 

 

サンプルのダウンロード

このページで紹介されている作成例には、サンプルが用意されています。

 

サンプルは以下からダウンロードすることができます。

 

上記のサンプルには、テーブルを生成するSQLファイル(DDL)が含まれています。テーブルを作成する際の参考としてください。

 

 

 

動作確認

本サンプルはデータベース上の「DATA_TABLE」テーブルに対してODBC経由で接続し、SQLを発行します。サンプルを動作させるには、接続先となるデータベースを用意し、ODBC接続設定を行ってください。データベースの準備が整ったら、Panel Serverからサンプルのサーバ設定ファイルを読み込み、アプリケーションをオンラインにしてください(黄色矢印)。

 

このサンプルでは、以下のようなテーブルが作成されているものとします。

 

(SQLServer2017の例)

c_action_0395

 

オンライン後、U01.F01.T01にTRUEを書き込むと、DATA_TABLEに新規レコードが追加されることを確認してください。

 

c_action_0396

 

その後、U01.F01.T02にTRUEを書き込むと、DATA_TABLEのレコードが削除されることを確認してください。

 

c_action_0397

 

 

設定手順

データベースの準備

 

1.データベースを準備します。

 

接続先のデータベースに、「DATA_TABLE」というテーブルを作成し、以下のようなレイアウトを設定してください。

 

(SQLServer2017の例)

c_action_0395

 

 


 

タグ設定

 

1.タグを設定します。
 
仮想デバイスとして「U01」というユニットを追加し、F01フォルダの下に以下の2点のタグを作成してください。これらのタグは、タグイベントのトリガとして使用します。
 
c_action_0190

 

タグ名

アドレス

目的

U01.F01.T01

X0000

insertコマンドを実行するためのトリガとなるタグ

U01.F01.T02

X0001

deleteコマンドを実行するためのトリガとなるタグ

 

 


アクションの設定

 

1.SQL実行(ODBC)アクションを2つ追加します。
 
この例では、「A01」及び「A02」アクションを追加しています。
 
c_action_0191
 

2.各アクションのプロパティを設定します。
 
ODBC設定タブからODBCデータソースの設定及び、SQL文の記述を行います。
 
ODBCの設定手順は、各DBMSとも共通的な操作により行うことができます。ODBC設定については、アクションの共通設定の「ODBC設定」の記述を参照してください。
 
SQL文は以下の内容を設定します。
 

(A01)
c_action_0194
 
 

INSERT INTO DATA_TABLE ( FIELD1, FIELD2 ) VALUES (1, 'abc');

 

(A02)
c_action_0195
 

DELETE FROM DATA_TABLE;

 

 


イベントの設定

 

1.アクションを実行するためのタグイベントを作成します。
 
「E01」及び「E02」の2つのタグイベントを登録します。
 
c_action_0196
 
 

2.E01を設定します。
 
E01は、U01.F01.T01がTRUEになったらアクションを実行するように設定します。実行アクションには「A01」を指定してください。
 
c_action_0197
 
c_action_0398
 
 

3.E02を設定します
 
E02はU01.F01.T02がTRUEになったらアクションを実行するように設定します。実行アクションには「A02」を指定してください。
 
c_action_0198
 
c_action_0399