Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

SQLSelect() 関数

  • Last UpdatedSep 26, 2024
  • 1 minute read

SQLSelect() 関数は、テーブルからレコードを取得します。SQLSelect() 関数を含むスクリプトが処理されると、取得されたレコードがメモリの一時結果テーブルに配置されます。これらのレコードは、SQLFirst()、SQLLast()、SQLNext() および SQLPrev() の関数を使用してブラウズできます。

重要:SQLSelect() 関数を含むスクリプトが完了したときには必ず SQLEnd() 関数を呼び出して、結果テーブルで使用されたメモリを解放します。

カテゴリ

SQL

構文

[ResultCode=]SQLSelect(ConnectionID,TableName, BindList,WhereExpr,OrderByExpression);

引数

ConnectionID

各データベース接続に SQLConnect() 関数によって割り当てられた番号(ID)を保持するメモリ整数型タグの名前

TableName

アクセスするデータベース テーブルの名前

BindList

使用する InTouch タグ変数とデータベースを定義します。

WhereExpr

テーブルの行に対する True または False の条件を定義します。SQLSelect() 関数は、WhereExpr 条件が Ture の行のみからデータを抽出します。式の形式は以下のとおりです。

ColumnName comparison_operator expression.

注記:比較が文字列式で行われる場合は、式を一重引用符で囲む必要があります。

次の例は、name カラムに EmployeeID という値を含む行をすべて選択します。

name='EmployeeID'

次の例は、100 ~ 199 までの部品番号を含むすべての行を選択します。

partno>=100 and partno<200

次の例は、temperature カラムに 350 を超える値が含まれるすべての行を選択します。

temperature>350

WhereExpr - Memory message Tag

OrderByExpr - Memory message Tag

Speed_Input - Memory Real - User Input Analog

Serial_Input - Memory Message - User Input String

アナログ型の例

WhereExpr = "Speed = " + text
(Speed_Input,"#.##");

Speed_Input は数字であるため、WhereExpr 文字列に連結できるようにテキストに変換する必要があります。

文字列の例

WhereExpr = "Ser_No = ‘" +
Serial_input + "’";

Serial_Input は文字列であるため、値を WhereExpr = "Ser_No='125gh'" のように一重引用符で囲む必要があります。

Like ステートメントを使用した文字列の例

WhereExpr = "Ser_No like ‘-’"

Like 比較演算子を使用するときには、% をワイルド カードとして使用できます。

ブール AND 演算子を使用した文字列およびアナログ型の例

WhereExpr = "Ser_No = ‘" + Serial_input + "’" + " and " + "Speed = " + text(Speed_Input,"#.##");OrderByExpr = "";

順位が重要でなければ、上記のように null 文字列を使用します。

WhereExpr タグ変数を使用した SQLSelect

ResultCode = SQLSelect(Connect_Id,TableName,BindList
,

WhereExpr,OrderByExpr);

Error_msg = SQLErrorMsg( ResultCode );

SQLSelect WhereExpr 組み込み関数

ResultCode = SQLSelect(Connect_Id,TableName,BindList
,

"Ser_No = '" + Serial_input + "'", OrderByExpr);

Error_msg = SQLErrorMsg( ResultCode );

OrderByExpr

テーブル カラム内でデータをソートするための方向を定義します。ソートにはカラム名のみを使用することができ、式は次の形式である必要があります。

ColumnName [ASC|DESC]

次の例は、テーブルを manager カラムからのデータによって昇順でソートします。

"manager ASC"

また、以下のような形式を使用して、複数のカラムでソートすることもできます。

ColumnName [ASC|DESC]、

ColumnName [ASC|DESC]

次の例は、選択したテーブルを temperature カラムの昇順および time カラムの降順でソートします。

"temperature ASC,time DESC"

次のステートメントは、カラム名に cookie という値が含まれる List1 という名前の BindList を使用して、BATCH テーブルからレコードを選択します。その後、amount カラムで昇順に、sugar カラムで降順に情報をソートして表示します。

ResultCode=SQLSelect(ConnectionID,"BATCH","List1","type='cookie'","amount ASC,sugar DESC");

次のステートメントでは、データベースのすべてのデータが選択され、WhereExpr および OrderByExpr の値は指定されません。

ResultCode=SQLSelect(ConnectionID,"BATCH", "List1", "",");

参照項目

SQLFirst()、SQLConnect()、SQLLast()、SQLNext()、SQLPrev()、SQLEnd()

In This Topic