EGL ソース形式の SQL レコード・パーツ

sqlRecord 型のレコード・パーツを EGL ソース・ファイルに宣言します。 詳細については、『EGL ソース形式』に説明します。EGL とリレーショナル・データベースの対話方法の概要については、『SQL サポート』を参照してください。

SQL レコード・パーツの例を次に示します。
  Record ExampleSQLRecordPart type sqlRecord
    { 
      tableNames = [["mySQLTable", "T1"]],
      keyItems = ["myHostVar01"],
      defaultSelectCondition = 
        #sqlCondition{ // #sqlCondition と中括弧の間にスペースを入れない
          myHostVar02 = 4 -- start each SQL comment 
                        -- with a double hypen
            }
     }

    // SQL レコードの構造には階層がありません。
    10 myHostVar01 myDataItemPart01 
       {
         column = "column01",
         isNullable = no,
         isReadOnly = no
       };
    10 myHostVar02 myDataItemPart02
       {
         column = "column02",
         isNullable = yes,
         isReadOnly = no
       };
	 end
SQL レコード・パーツの構文図は、以下のとおりです。

SQL レコード・パーツの構文図
Record recordPartName sqlRecord
パーツを sqlRecord 型のレコード・パーツとして識別し、名前を指定します。命名の規則については、『命名規則』を参照してください。
tableNames = [["name", "label"], ...., ["name", "label"]]
テーブルまたは SQL レコードによってアクセスされるテーブルをリストします。特定のテーブル名にラベルを指定する場合、そのラベルは、レコードに関連付けられているデフォルトの SQL 文に含まれます。
テーブル名変数には二重引用符 (") を含めることができますが、その場合は、二重引用符の前にエスケープ文字 (¥) を付ける必要があります。その規則は、 例えば、テーブル名が以下の SQL 予約語のいずれかである場合に必要です。
  • CALL
  • FROM
  • GROUP
  • HAVING
  • INSERT
  • ORDER
  • SELECT
  • SET™
  • UPDATE
  • UNION
  • VALUES
  • WHERE
これらの名前は、二重引用符で囲む必要があります。唯一のテーブル名が SELECT である場合は、 例えば、tableNames 文節は次のとおりです。
  tableNames=[["¥"SELECT¥""]]

SQL 予約語の 1 つが列名として使用される場合にも同様な状態が当てはまります。

tableNameVariables = [["varName", "label"], ...., ["varName", "label"]]

1 つ以上のテーブル名変数をリストします。 それぞれのテーブル名変数には SQL レコードによってアクセスされるテーブルの名前が含まれます。テーブルの名前は実行時にのみ決定されます。

変数は、ライブラリー名によって修飾することや、添え字を付けることができます。

特定のテーブル名変数にラベルを指定する場合、そのラベルは、レコードに関連付けられているデフォルトの SQL 文に含まれます。

テーブル名変数を単独で、 またはテーブル名とともに使用することができますが、 テーブル名変数を使用すると、SQL 文の特性は実行時にのみ決定される特性が保証されます。

テーブル名変数には二重引用符 (") を含めることができますが、その場合は、二重引用符の前にエスケープ文字 (¥) を付ける必要があります。

keyItems = = ["item", ...., "item"]
特定のレコード項目に関連付けられている列が、データベース・テーブル内のキーの一部であるかどうかを指定します。データベース・テーブルが複合キーを持つ場合、キーとして定義されたレコード項目の順序は、データベース・テーブルのキーとなる列の順序と同じでなければなりません。
defaultSelectCondition = #sqlCondition { sqlCondition }
暗黙の SQL 文の WHERE 文節内の検索基準の一部を定義します。defaultSelectCondition の値には、SQL キーワードの WHERE は含まれません。
次の EGL 文のいずれかをコーディングすると、EGL により WHERE 文節が指定された暗黙の SQL 文が提供されます。
  • get
  • open
  • execute (暗黙の SQL DELETE または UPDATE 文を要求する場合に限る)

暗黙の SQL 文は、EGL ソース・コード内に保管されません。 これらの文の概要については『SQL サポート』を参照してください。

level
構造体フィールドの階層位置を示す整数。この値を除外する場合、パーツは レコード・パーツです。この値をインクルードする場合、パーツは固定レコード・パーツです。
structureFieldName
構造体フィールドの名前。命名の規則については、『命名規則』を参照してください。
primitiveType
構造体フィールドに割り当てられるプリミティブ型。
length
構造体フィールドの長さ (整数)。構造体項目に基づくメモリー領域の値には、指定された数の文字または数字が含まれます。
decimals
decimals は、数値タイプ (BIN、DECIMAL、NUM、NUMC、または PACF) に対して指定できます。これは、小数点以下の桁数を表す整数です。小数部の桁の最大数は、18 または length で宣言された桁数の小さいほうです。小数点は、データとともに保管されません。
"dateTimeMask"
INTERVAL 型または TIMESTAMP 型の項目には、"dateTimeMask" を指定できます。これは、項目の値の特定の位置に意味 (「年の桁」など) を割り当てるものです。 マスクは、実行時にデータと共に存在します。
dataItemPartName
宣言されている構造体項目の形式のモデルとして機能する dataItem パーツ名を指定します。詳細については、『typeDef』を参照してください。
embed sqlRecordPartName
sqlRecord 型のレコード・パーツ名を指定し、 そのレコード・パーツの構造体を現在のレコードに組み込みます。組み込まれた構造体項目は 一定レベルの階層を現在のレコードに追加しません。詳細については、『typeDef』を参照してください。
property
項目のプロパティー。詳細については、『EGL プロパティーとオーバーライドの概要』に説明します。SQL レコードでは、SQL フィールドのプロパティーが特に重要です。

関連概念
EGL プロジェクト、パッケージ、およびファイル
EGL プロパティーの概要
パーツ
パーツの参照
レコード・パーツ
SQL サポート
Typedef

関連タスク
EGL 文およびコマンドの構文図

関連リファレンス
配列

EGL ソース形式の DataItem パーツ
EGL ソース形式
EGL ソース形式の関数パーツ
EGL ソース形式の索引付きレコード・パーツ
EGL ソース形式の MQ レコード・パーツ
命名規則
プリミティブ型
EGL ソース形式のプログラム・パーツ
EGL での変数の参照
EGL ソース形式の相対レコード・パーツ
EGL ソース形式のシリアル・レコード・パーツ
SQL フィールド・プロパティー

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.