InTouch での共通 SQL 操作の実行
- Last UpdatedSep 26, 2024
- 2 minute read
InTouch では SQL Access 関数を使用して、データベースに保存されている情報と対話します。これらの SQL Access 関数を使用すると、データベース レコードを選択、変更、挿入、または削除するスクリプトを記述できます。
SQL アクションは同期型です。データベース QuickScript を InTouch アプリケーションから実行すると、関数によって要求されたデータベース アクションが完了するまで、コントロールは InTouch に戻りません。
SQL Access 関数は、関数と関連付けられている引数タイプを説明する句読点基準に準拠しています。引数が引用符に囲まれたスクリプト文字列("Arg1")に入力されるとき、正確な文字列が使用されます。引用符が使用されない場合、引数値はタグ名とみなされ、タグの現在の値が引数と関連付けられます。
ほとんどの SQL 関数は結果コードを返します。結果コードがゼロ以外の場合、関数は失敗し、他のアクションを行う必要があります。結果コードは SQLErrorMsg() 関数によって使用できます。
InTouch QuickScript エディタを使用して、SQL 関数を QuickScript に挿入します。SQL 関数をスクリプトに挿入する一般手順には以下の手順が含まれます。
SQL 関数をスクリプトに挿入する
-
InTouch WindowMaker を起動します。
-
QuickScript を QuickScript エディタで開きます。
-
スクリプト内で SQL 関数を挿入する場所にカーソルを置きます。
-
[関数]領域で、[アドオン]を選択して、[関数の選択]ダイアログ ボックスを表示します。
-
QuickScript に挿入する SQL 関数を選択します。スクリプトが更新され、挿入した SQL 関数が表示されます。
SQL Access 関数に関連付けられている引数は、以下のように構成されています。
-
BindList
SQL.DEF ファイルに定義されているバインド リスト名に対応します。
-
ConnnectionID
ConnectionID 引数は、各データベース接続に SQLConnect() 関数によって割り当てられた番号(ID)を保持するメモリ型整数タグの名前を参照します。
-
ConnectString
ConnectString は、データベース システムと追加のログオン情報を識別します。入力形式は以下のとおりです。
"DSN=data source name[;attribute=value
[;attribute=value]...]"
Microsoft SQL Server 接続文字列
-
SQL Server 用 Microsoft OLE DB プロバイダ(推奨)
"Provider=SQLOLEDB.1;User ID=sa; Password=;Initial Catalog=MyDB;Data Source=MyServer;"
SQL Server 用の OLE DB プロバイダは sqloledb です。
-
SQL Server 用 Microsoft OLE DB プロバイダ(推奨)
"Provider=SQLOLEDB.1;uid=sa;pwd=;Database=MyDB"
-
ODBC 用 Microsoft OLE DB プロバイダ(SQL Server 用デフォルト プロバイダ MSDASQL 使用):
"DSN=Pubs;UID=sa;PWD=;"
-
ODBC 用 Microsoft OLE DB プロバイダ(SQL Server 用デフォルト プロバイダ MSDASQL 使用):
"Data Source=Pubs;User ID=sa;Password=;"
Oracle 接続文字列
-
Oracle 用 Microsoft OLE DB プロバイダ(推奨)
"Provider=MSDAORA;Data Source=ServerName;User ID=UserIDStr; Password=PasswordStr;"
Microsoft Access 接続文字列
Microsoft Jet 用 Microsoft OLE DBプロバイダ(推奨)。Microsoft.Jet.OLEDB.4.0 は、Microsoft Jet 用ネイティブ OLE DB プロバイダ(Microsoft Access Database エンジン)です。
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\DBName.mdb;User ID=UserIDStr;Password=PasswordStr;"
ODBC 用 Microsoft OLE DB プロバイダ(MS Access 用デフォルト プロバイダ MSDASQL の使用):
"Provider=MSDASQL;DSN=DSNStr;UID=UserName; PWD=PasswordStr;"
-
-
ErrorMsg
エラーのテキスト説明を含むメッセージ型タグ
-
FileName
情報を含むファイルの名前
-
MaxLen
パラメータに関連付けられているカラムの最大サイズ。この引数によって、データが可変長文字かロング可変長文字のどちらの文字タイプであるかが決定されます。MaxLen がデータベースによって許可されている最大文字列に等しいかそれより少ない場合、このデータは可変長文字タイプとなります。それより大きい場合、データはロング可変長文字タイプとなります。
-
ORDERBY_EXPRESSIONS
カラムおよび昇順または降順のソート順序を定義します。ソートに使用できるのはカラム名のみです。式の形式は以下のとおりです。
ColumnName [ASC|DESC]
選択したテーブルをカラム名で昇順にソートするには:
"manager ASC"
複数カラムでソートするには、式の形式は以下のようになります。
ColumnName [ASC|DESC]、
ColumnName [ASC|DESC]
選択したテーブルを 1 つのカラム名(例: temperature)で昇順に並べ、別のカラム名(例: time)を降順にソートするには:
"temperature ASC, time DESC"
-
ParameterNumber
ステートメント内の実際のパラメータ番号。
-
ParameterType
指定したパラメータのデータ タイプ。有効な値は以下のとおりです。
タイプ
説明
Char
空白を補った固定長文字列
Var Char
可変長文字列
10 進数
BCD 番号
整数型
4 バイト符号付き整数
Small Integer
2 バイト符号付き整数
浮動小数点
4 バイト浮動小数点
倍精度浮動小数点型
8 バイト浮動小数点
日付時刻
8 バイトの日時値
日付
4 バイトの日付時刻値
時間
4 バイトの日付時刻値
タイプなし
データ タイプなし
-
ParameterValue
設定する実際の値。
-
精度
10 進数値の精度、文字の最大サイズ、または日時値のバイト数。
-
RecordNumber
取得する実際のレコード番号
-
ResultCode
ほとんどの SQL 関数が返す整数型変数。ResultCode は、関数が正常に実行されるとゼロ(0)、正常に実行されなかった場合には負の値を返します。
-
スケール
10 進数値のスケール。この値は、Null に設定するパラメータに対して適用可能な場合にのみ必要です。
-
StatementID
拡張機能ステートメントを使用している場合、SQL は内部で使用する StatementID を返します。
-
SQLStatement
実際のステートメント。次に例を示します。
ResultCode=SQLSetStatement(ConnectionID, "Select LotNo, LotName from LotInfo");
-
TableName
TableName パラメータには、データベースでアクセスまたは作成するテーブルの名前が含まれます。
-
TemplateName
TemplateName パラメータは、テーブルを定義する SQL.DEF ファイルのテンプレートの名前です。
-
WhereExpr
テーブルの行に対する True または False の条件を定義します。関数はテーブルから Ture の条件を持つ行のみを抽出します。式の形式は以下のとおりです。
ColumnName comparison_operator expression
注記:カラムが文字データ タイプの場合、式を一重引用符で囲む必要があります。
次の例は、Name カラムに EmployeeID という値を含む行をすべて選択します。
Name='EmployeeID'
次の例は、100 ~ 199 までの部品番号を含むすべての行を選択します。
partno>=100 and partno<200
次の例は、temperature カラムで 350 を超える値があるレコードをすべて選択します。
temperature>350