SQL EXECUTE で SQL 文を実行する

用途

SQL EXECUTE は、さまざまな SQL 文と組み合わせて使用します。

条件

  • コード番号 555343
  • 表がある
  • 適切な表の名前
  • 表および列の名前の頭文字は欧文文字でなければならず、「+」などの演算記号は名前に使用できません。これらの記号が名前に含まれていると、SQL コマンドにより、データの読込みおよび読出し時に問題が生じることがあります。

機能説明

黒色矢印とそれに帰属する構文は SQL EXECUTE の内部フローを示します.灰色矢印とそれに帰属する構文は SQL EXECUTE コマンドに直接には含まれません.

SQL EXECUTE コマンドで、次の SQL 文を使用できます:

機能

SELECT

データを選択します

CREATE SYNONYM

シノニムを作成します (長いパス名を短い別名に置換え)

DROP SYNONYM

シノニムの削除

CREATE TABLE

表を作成します

COPY TABLE

表のコピー

RENAME TABLE

表の名前を変更

DROP TABLE

表の削除

INSERT

表に行を挿入します

UPDATE

表の行を更新します

DELETE

表の行を削除します

ALTER TABLE

  • ADD で表の列を挿入します
  • DROP で表の列を削除します

RENAME COLUMN

表の列の名前を変更します

SQL EXECUTE と SQL SELECT 文

SQL サーバーは、データを行単位で結果セット (標本空間) に保存します。行には 0 から始まる、連続した番号が付けられます。この行番号 (INDEX) は SQL コマンドの FETCH および UPDATE で使用します。

SQL EXECUTE を SQL SELECT 文と組み合わせると、表の値を選択して、それを結果セットに転送し、その際に常に 1 つのトランザクションを開きます。SQL SELECT コマンドとは異なり、SQL EXECUTESELECT 文を組み合わせた場合には、複数の列と行を同時に選択できます。

SQL ... "SELECT...WHERE..." 関数で検索基準を指定します。これにより、必要に応じて転送する行の数を制限します。このオプションを使用しない場合、表のすべての行が読み込まれます。

SQL ... "SELECT...ORDER BY..." 関数でソート基準を指定します。この並べ替え条件は、列の名前と昇順用キーワード ASC または降順用キーワード DESC で構成されます。このオプションを使用しない場合、行はランダム順で保存されます。

SQL ... "SELECT...FOR UPDATE" 関数で選択した行を他のアプリケーションに対してロックします。他のアプリケーションではこれらの行を引き続き読み取ることはできますが、変更はできません。表の入力データを変更する場合には、必ずこのオプションを使用してください。

空の結果セット検索条件に合致する行がない場合、SQL サーバーは表の項目なしの有効な HANDLE を戻します。

WHERE 句の条件

条件

プログラミング

等しい

= ==

等しくない

!= <>

より小さい

<

以下

<=

より大きい

>

以上

>=

IS NULL

空ではない

IS NOT NULL

複数の条件を結合する:

論理演算子 AND

AND

論旨演算子 OR

OR

注意事項

  • NC 機能 SQL EXECUTE を選択すると、構文要素 SQL のみが NC プログラムに挿入されます。
  • まだ作成されていない表にもシノニムを定義することができます。
  • 作成されたファイルの列の順序は、AS SELECT 文内の順序に対応しています。
  • SQL コマンド内の文に対して、単純な、または組み合わせた文字列パラメータを使用することもできます。
  • 文字列パラメータの値を結合する

  • 構文要素 WHERE の後に、比較値を変数として定義することもできます。比較に数値パラメータを使用すると、定義された値が整数に丸められます。文字列パラメータを使用する場合、定義済みの値が使用されます。
  • 作業エリア「状態」の「QPARA」タブで文字列パラメータの内容を確認する際、すべての内容が表示されない場合があります。
  • 「QPARA」タブ

ユーザーマニュアルに含まれている NC プログラムは、あくまで解決のヒントです。機械で NC プログラムまたは個々の NC ブロックを使用する前には、必ずそれらを調整してください。

以下に応じて調整を行います。

  • 工具
  • 切断値
  • 送り速度
  • 安全な高さまたは安全な位置
  • 機械特有の位置 (例:M91)
  • プログラム呼出しのパス

一部の NC プログラムは機械キネマティクスに依存しています。このような NC プログラムは、最初のテストランの前にその機械キネマティクスに合わせてプログラムを調整してください。

さらに、実際のプログラムランの前にシミュレーションで NC プログラムをテストしてください。

 
Tip

プログラムをテストすることで、ソフトウェアオプションや有効な機械キネマティクス、現在の機械構成で、その NC プログラムが使用可能かどうかを確認できます。

例:表のすべての行を選択する

11 SQL BIND Q881 "Tab_Example.Position_Nr"

12 SQL BIND Q882 "Tab_Example.Measure_X"

13 SQL BIND Q883 "Tab_Example.Measure_Y"

14 SQL BIND Q884 "Tab_Example.Measure_Z"

. . .

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example"

ユーザーマニュアルに含まれている NC プログラムは、あくまで解決のヒントです。機械で NC プログラムまたは個々の NC ブロックを使用する前には、必ずそれらを調整してください。

以下に応じて調整を行います。

  • 工具
  • 切断値
  • 送り速度
  • 安全な高さまたは安全な位置
  • 機械特有の位置 (例:M91)
  • プログラム呼出しのパス

一部の NC プログラムは機械キネマティクスに依存しています。このような NC プログラムは、最初のテストランの前にその機械キネマティクスに合わせてプログラムを調整してください。

さらに、実際のプログラムランの前にシミュレーションで NC プログラムをテストしてください。

 
Tip

プログラムをテストすることで、ソフトウェアオプションや有効な機械キネマティクス、現在の機械構成で、その NC プログラムが使用可能かどうかを確認できます。

例:WHERE 関数で表の行を選択する

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20"

ユーザーマニュアルに含まれている NC プログラムは、あくまで解決のヒントです。機械で NC プログラムまたは個々の NC ブロックを使用する前には、必ずそれらを調整してください。

以下に応じて調整を行います。

  • 工具
  • 切断値
  • 送り速度
  • 安全な高さまたは安全な位置
  • 機械特有の位置 (例:M91)
  • プログラム呼出しのパス

一部の NC プログラムは機械キネマティクスに依存しています。このような NC プログラムは、最初のテストランの前にその機械キネマティクスに合わせてプログラムを調整してください。

さらに、実際のプログラムランの前にシミュレーションで NC プログラムをテストしてください。

 
Tip

プログラムをテストすることで、ソフトウェアオプションや有効な機械キネマティクス、現在の機械構成で、その NC プログラムが使用可能かどうかを確認できます。

例:WHERE 関数と Q パラメータで表の行を選択する

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr==:’Q11’"

ユーザーマニュアルに含まれている NC プログラムは、あくまで解決のヒントです。機械で NC プログラムまたは個々の NC ブロックを使用する前には、必ずそれらを調整してください。

以下に応じて調整を行います。

  • 工具
  • 切断値
  • 送り速度
  • 安全な高さまたは安全な位置
  • 機械特有の位置 (例:M91)
  • プログラム呼出しのパス

一部の NC プログラムは機械キネマティクスに依存しています。このような NC プログラムは、最初のテストランの前にその機械キネマティクスに合わせてプログラムを調整してください。

さらに、実際のプログラムランの前にシミュレーションで NC プログラムをテストしてください。

 
Tip

プログラムをテストすることで、ソフトウェアオプションや有効な機械キネマティクス、現在の機械構成で、その NC プログラムが使用可能かどうかを確認できます。

例:表名を絶対パス指定で定義する

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM ’V:­\table­\Tab_Example’ WHERE Position_Nr<20"

ユーザーマニュアルに含まれている NC プログラムは、あくまで解決のヒントです。機械で NC プログラムまたは個々の NC ブロックを使用する前には、必ずそれらを調整してください。

以下に応じて調整を行います。

  • 工具
  • 切断値
  • 送り速度
  • 安全な高さまたは安全な位置
  • 機械特有の位置 (例:M91)
  • プログラム呼出しのパス

一部の NC プログラムは機械キネマティクスに依存しています。このような NC プログラムは、最初のテストランの前にその機械キネマティクスに合わせてプログラムを調整してください。

さらに、実際のプログラムランの前にシミュレーションで NC プログラムをテストしてください。

 
Tip

プログラムをテストすることで、ソフトウェアオプションや有効な機械キネマティクス、現在の機械構成で、その NC プログラムが使用可能かどうかを確認できます。

例:CREATE TABLE で表を作成する

0 BEGIN PGM SQL_CREATE_TAB MM

1 SQL Q10 "CREATE SYNONYM NEW FOR 'TNC:\table\NewTab.TAB'"

; シノニムを作成する

2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'"

:既存の表の X、Y、Z 列を新しい表として作成する

3 END PGM SQL_CREATE_TAB MM

ユーザーマニュアルに含まれている NC プログラムは、あくまで解決のヒントです。機械で NC プログラムまたは個々の NC ブロックを使用する前には、必ずそれらを調整してください。

以下に応じて調整を行います。

  • 工具
  • 切断値
  • 送り速度
  • 安全な高さまたは安全な位置
  • 機械特有の位置 (例:M91)
  • プログラム呼出しのパス

一部の NC プログラムは機械キネマティクスに依存しています。このような NC プログラムは、最初のテストランの前にその機械キネマティクスに合わせてプログラムを調整してください。

さらに、実際のプログラムランの前にシミュレーションで NC プログラムをテストしてください。

 
Tip

プログラムをテストすることで、ソフトウェアオプションや有効な機械キネマティクス、現在の機械構成で、その NC プログラムが使用可能かどうかを確認できます。

0 BEGIN PGM SQL_CREATE_TABLE_QS MM

1 DECLARE STRING QS1 = "CREATE TABLE "

2 DECLARE STRING QS2 = "'TNC:\nc_prog\demo\Doku\NewTab.t' "

3 DECLARE STRING QS3 = "AS SELECT "

4 DECLARE STRING QS4 = "DL,R,DR,L "

5 DECLARE STRING QS5 = "FROM "

6 DECLARE STRING QS6 = "'TNC:\table\tool.t'"

7 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6

8 SQL Q1800 QS7

9 END PGM SQL_CREATE_TABLE_QS MM