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()