uCosminexus DocumentBroker Version 3 クラスライブラリ C++ 解説
![[目次]](figure/content.gif)
![[用語]](figure/gloss.gif)
![[索引]](figure/index.gif)
![[前へ]](figure/front.gif)
値は,スカラー式によって表現できます。スカラー式で表現できる値は,プロパティの指定,ルーチン起動,数値関数および集合関数によって得られる値です。
!! <プロパティ指定>の形式 <プロパティ指定> ::= 〔<プロパティ修飾子> <ピリオド>〕 <プロパティ名> <プロパティ修飾子> ::= <相関名> !! <相関名>による修飾 |<クラス指定> !! <クラス指定>による修飾 !! <要素参照>の形式 <要素参照> ::= <一次子> <左角括弧> ANY <右角括弧> !! <フィールド参照>の形式 <フィールド参照> ::= <要素参照> <ピリオド> <フィールド名> <フィールド名> ::= <プロパティ名> !! <ルーチンの起動>の形式 <ルーチンの起動> ::= <ルーチン名> <引数リスト> <引数リスト> ::= <左括弧> 〔 <引数> 〔 { <コンマ> <引数> }... 〕 〕 <右括弧> <引数> ::= <値式> |<値式> AS <データ型指定> <ルーチン名> ::= <関数指定> <データ型指定> ::= INT |INTEGER |BOOL |BOOLEAN |STRING <左括弧> <符号なし数値> <右括弧> |BINARY <左括弧> <バイナリ長> <右括弧> <バイナリ長> ::= <符号なし数値> |<バイナリ長トークン> !! <数値関数>の形式 <数値関数> ::= <絶対値関数> <絶対値関数> ::= ABS <左括弧> <値式> <右括弧> !! <集合関数>の形式 <集合関数> ::= COUNT <左括弧> <アスタリスク> <右括弧> |<一般集合関数> <一般集合関数> ::= <集合関数種別> <左括弧> 〔 <集合指定子> 〕 <値式> <右括弧> <集合関数種別> ::= COUNT <集合指定子> ::= DISTINCT|ALL !! <値式>の形式 <値式> ::= <一次子> |<符号> <一次子> |<値式> <+符号> <値式> |<値式> <-符号> <値式> |<値式> <アスタリスク> <値式> |<値式> <斜線> <値式> |<値式> <文字列連結演算子> <値式> <一次子> ::= <左括弧> <値式> <右括弧> |<プロパティ指定> |<符号なし値指定> |<集合関数> |<数値関数> |<ルーチンの起動> |<フィールド参照> <符号なし値指定> ::= <符号なし数値リテラル> |<文字列リテラル> |<疑問符> |<論理リテラル> <値指定> ::= 〔<符号>〕<符号なし数値リテラル> |<文字列リテラル> |<疑問符> |<論理リテラル>
<プロパティ指定> ::= 〔<プロパティ修飾子> <ピリオド>〕 <プロパティ名> <プロパティ修飾子> ::= <相関名> !! <相関名>による修飾 |<クラス指定> !! <クラス指定>による修飾
<プロパティ指定>の指定例を,次の表に示します。
表4-36 <プロパティ指定>の指定例
| 指定例 | 説明 |
|---|---|
| myProp_Foo | <識別子>によって<プロパティ名>だけを指定しています。 |
| ID'FA7DA34B-CFF3-11d3-A03E-00A0C9967923' | <ID文字列>によって<プロパティ名>だけを指定しています。 |
| myClass_XX.myProp_Foo | <プロパティ名>を<クラス名>によって修飾して指定しています。 |
| P0.myProp_Foo | <プロパティ名>を<相関名>によって修飾して指定しています。 |
| myClass_XX.ID'FA7DA34B-CFF3-11d3-A03E-00A0C9967923' | <ID文字列>によって表現した<プロパティ名>を,<クラス名>によって修飾して指定しています。 |
<要素参照>には,VariableArray型プロパティの要素を参照するための表現を指定します。
<要素参照> ::= <一次子>
<左角括弧> ANY <右角括弧><フィールド参照>では,VariableArray型プロパティの要素を参照する時の,フィールドの参照を表現します。
<フィールド参照> ::= <要素参照> <ピリオド> <フィールド名> <フィールド名> ::= <プロパティ名>
例えば,「VariableArray型プロパティAuthorsの要素Ageが30である」という指定は,次のように記述します。
Authors[ANY].Age = 30
<ルーチンの起動>には,edmSQLで提供する関数を起動するための表現を指定します。
edmSQLで使用するルーチンは,関数だけです。
edmSQLによって起動する関数を次に示します。なお,これらの関数名はすべて,<予約されないキーワード>として登録されています。
それぞれの関数の詳細については,「4.5.9 関数指定の構文規則」を参照してください。
<ルーチンの起動> ::= <ルーチン名> <引数リスト>
<ルーチン名> ::= <関数指定>
<引数リスト> ::= <左括弧> 〔 <引数>
〔 { <コンマ> <引数> }... 〕 〕 <右括弧>
<引数> ::= <値式>
|<値式> AS <データ型指定>
<データ型指定> ::= INT
|INTEGER
|BOOL
|BOOLEAN
|STRING <左括弧> <符号なし数値> <右括弧>
|BINARY <左括弧> <バイナリ長> <右括弧>
<バイナリ長> ::= <符号なし数値>
|<バイナリ長トークン>
!!<バイナリ長トークン>については,「4.5.4(4)<トークン>」を
!!参照してください。表4-37 AS<データ型指定>に指定できる値と指定例
| 値 | 指定例 | |
|---|---|---|
| Boolean型の引数 | BOOL BOOLEAN |
? AS BOOL ? AS BOOLEAN |
| Integer32型の引数 | INT INTEGER |
? AS INT ? AS INTEGER |
| String型の引数 | STRING(n※1) | ? AS STRING(3200) 定義長3200バイトのString型データ |
| Binary型の引数 | BINARY(n※2) | ? AS BINARY(256) 定義長256バイトのBinary型データ ? AS BINARY(256k) 定義長が256キロバイトのBinary型データ ? AS BINARY(256m) 定義長が256メガバイトのBinary型データ ? AS BINARY(2g) 定義長が2ギガバイトのBinary型データ |
<数値関数>としては,絶対値関数(ABS関数)があります。<数値関数>は,<結合条件>には指定できません。また,<SELECT句>には指定できません。
<数値関数>は,次の形式で定義されています。
<数値関数> ::= <絶対値関数> <絶対値関数> ::= ABS <左括弧> <値式> <右括弧>
<絶対値関数>の詳細について示します。
<集合関数>には,検索結果集合に対する演算を実行するための表現を指定します。
<集合関数> ::= COUNT <左括弧> <アスタリスク> <右括弧> |<一般集合関数> <一般集合関数> ::= <集合関数種別><左括弧> 〔 <集合指定子> 〕 <値式> <右括弧> <集合関数種別> ::= COUNT <集合指定子> ::= DISTINCT|ALL
COUNT(*)関数の詳細について説明します
COUNT関数の詳細について説明します。
<値式>とは,評価として値を得ることができる式の定義です。
<値式> ::= <一次子> |<符号> <一次子> |<値式> <+符号> <値式> |<値式> <-符号> <値式> |<値式> <アスタリスク> <値式> |<値式> <斜線> <値式> |<値式> <文字列連結演算子> <値式> <一次子> ::= <左括弧> <値式> <右括弧> |<プロパティ指定> |<符号なし値指定>|<集合関数>|<数値関数> |<要素参照> |<ルーチンの起動>|<フィールド参照> <符号なし値指定> ::= <符号なし数値リテラル> |<文字列リテラル> |<疑問符> |<論理リテラル> <値指定> ::= 〔<符号>〕<符号なし数値リテラル> |<文字列リテラル>|<疑問符>|<論理リテラル>
表4-38 <値式>で指定する演算子の詳細
| 演算子 | 意味 | 被演算子の データ型 |
評価値 |
|---|---|---|---|
| <符号> (単項演算子+) |
値に正符号を付けます。評価値に変化はありません。 | Integer32型 | 整数値(Integer32型) |
| <符号> (単項演算子-) |
値の符号を反転します。 | Integer32型 | 整数値(Integer32型) |
| <+符号> (+) |
被演算子を加算します。 | Integer32型 | 整数値(Integer32型) |
| <-符号> (-) |
左辺の被演算子から右辺の被演算子を減算します。 | Integer32型 | 整数値(Integer32型) |
| <アスタリスク> (*) |
被演算子を乗算します。 | Integer32型 | 整数値(Integer32型) |
| <斜線> (/) |
左辺の被演算子を右辺の被演算子で除算します。 | Integer32型 | 整数値(Integer32型) |
| <文字列連結演算子> (||) |
文字列を連結します。 | String型 | 文字列値(String型) |
All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2006, 2013, Hitachi Solutions, Ltd.