DT_SELECT¶
| 関数名 | 引数 | 戻り値 |
|---|---|---|
DT_SELECT | string(, string, string, ref int[]) | int |
API
int DT_SELECT dataTableName(, filterExpression, sortRule, output)
dataTableNameに対応するDataTableの中にあるfilterExpressionに満足した行の列idの値をsortRuleに従ってソートし、outputに順次代入します。行の数返します。
filterExpressionを省略した場合,すべての行にあたります。sortRuleを省略した場合,ソートしません。outputが指定されてない場合,列idの値をRESULTに(RESULT:1から)順次代入します。
C#のDataTable.Selectに参照してください。
注意
戻り値がoutput / RESULTの要素数を超えた場合があります。
ヒント
命令、式中関数両方対応しています。
例
MAIN.ERB
@SYSTEM_TITLE
#DIM idx, 10
#DIM count
#DIM i
DT_CREATE "db"
DT_COLUMN_ADD "db", "name"
DT_COLUMN_ADD "db", "height", "int16"
DT_COLUMN_ADD "db", "age", "int16"
DT_ROW_ADD "db", "name", "Name1", "age", 11, "height", 132
DT_ROW_ADD "db", "name", "Name2", "age", 21, "height", 164
DT_ROW_ADD "db", "name", "Name3", "age", 18, "height", 159
DT_ROW_ADD "db", "name", "Name4", "age", 33, "height", 180
DT_ROW_ADD "db", "name", "Name5", "age", 18, "height", 172
count = DT_SELECT("db", "age >= 18", "age ASC, height DESC", idx)
PRINTL 18以上の人:
FOR i, 0, count
CALL PRINTL_ROW(idx:i)
NEXT
ONEINPUT
@PRINTL_ROW(id)
#DIM id
PRINTFORM 名前:%DT_CELL_GETS("db", id, "name", 1)%
PRINTFORM 年齢:{DT_CELL_GET("db", id, "age", 1)}
PRINTFORML 身長:{DT_CELL_GET("db", id, "height", 1)}
結果
18以上の人:
名前:Name5 年齢:18 身長:172
名前:Name3 年齢:18 身長:159
名前:Name2 年齢:21 身長:164
名前:Name4 年齢:33 身長:180