現在地: LANSA テクニカル リファレンスガイド > 9. 組み込み関数 > 9.1 組み込み関数の規則

9.1 組み込み関数の規則

ロングネーム

LANSAオブジェクトを参照する場合、大多数の既存の組み込み関数は、オブジェクトIDにのみに対応しています。ロングネームをサポートする組み込み関数はそれぞれ明示されています。

BIF の引数と戻り値のタイプ

入力引数または戻り値のタイプはA、N、L、U、w またはXが使用できます。

タイプ

説明

A

英数字 - 指定できるフィールド・タイプはAlpha、String およびChar

N

数値 - 指定できるフィールド・タイプはPacked、Signed、Float およびInteger

L

リスト

U

Unicodo - 指定できるフィールド・タイプはAlpha、String、Char、NChar およびNvarchar

w

Unicode を除くすべてのフィールド・タイプが指定可能(ただしリスト以外)。つまり、Xと同じであるがUnicodeを含まない

X

すべてのフィールド・タイプを指定可能(ただしリスト以外)

 

 

Date、Datetime、およびBLOBなどのその他のフィールド・タイプはすべて独自タイプに分類されます。したがって、'A'または'N'タイプの引数/戻り値に有効ではありません。これらのフィールド・タイプを使用するには、組み込みファンクションを使って適切なクラスに強制型変換する必要があります。組み込みファンクションに関する詳細については、「組み込みファンクション」を参照してください。

ユーザーが定義した組み込み関数のフィールド・タイプはすべてのRDMLXフィールド・タイプと正確に一致させる必要があります。そのため、ユーザーが定義した組み込み関数の宣言でStringが使用される場合、呼び出し時に使用できるものはStringのみです。Alpaフィールドは使用できません。しかし、Alphaで引数として宣言された場合は、Stringフィールドを利用できます。これは、下位互換性をサポートするための例外です。ユーザーが定義した組み込み関数は、X、U またはwタイプで引数または戻り値を宣言できません。

'X' は特別な引数/戻り値のタイプで、すべてのフィールド・タイプを使用できます。

フィールドとリテラル

引数の長さに50を超える値の指定が許されるのは、フィールドの場合だけです。リテラル値は最大長が50に制限されます。

RDMLX の引数や戻り値に対するFFC警告(FFC エラーではない)

最大長が256桁のA、u、w またはX(すべて)の引数または戻り値に、それよりも長いフィールドが渡された場合、エラーではなくFFC警告が発生します(BIF は256バイト長を超えるフィールドに対処することができません)。

最大長が30桁で最大小数点以下桁数が9桁のNタイプの引数または戻り値に、それよりも長いフィールドが渡された場合、エラーではなくFFC警告が発生します(BIFは30,9を超えるフィールドに対処することができません)。

RDMLX の無制限長/ 無制限小数点以下桁数

BIFの引数や戻り値の中には、新しい最大長の値である2147483647、つまり無制限を定義できるものがあります。この場合、フィールド長の最大/最小をチェックする必要はありません。

NまたはXの引数や戻り値の中には、新しい小数点以下桁数の最大値である32767、つまり無制限を定義できるものがあります。この場合、小数点以下桁数の最大/最小をチェックする必要はありません。

Integer フィールド・タイプ

Integerフィールド・タイプは、長さではなくバイト数でサイズを指定します。小数部はなく正確です。

次のテーブルにはIntegerで考えられる各バイト長の暗黙の長さが示されています。暗黙の長さは、SignedまたはPackedフィールドの実際の長さに相当します。

バイト数

最大値
(符号付き)

最大値
(符号なし)

最大桁数
(暗黙の長さ)

1

127

255

3

2

32767

65535*

5

4

2147483647

4294967295*

10

8

9223372036854775807

18446744073709551615*

19 符号付き
20 符号なし*

 

Integerタイプのフィールドは、以下の条件下でのみ、数値の引数または数値の戻り値として使用することができます。

タイプFloatのフィールド

Floatフィールド・タイプは、長さではなくバイト数でサイズを指定します。小数部を仮定することはできますが固定長ではありません。また、特定の桁数に対して正確です。

次のテーブルはFloatで考えられる各バイト長の正確な長さの一覧です。正確な長さはSignedまたはPackedフィールドの実際の長さに相当すると考えることができます。考えられる実行時の小数点以下桁数もテーブルに示されています。

バイト数

正確な桁数(正確な長さ)

考えられる小数点以下桁数

4

6

0 - 6

8

15

0 - 15

 

Floatタイプのフィールドは、実行時に0から15桁の間のどこにでも小数点を持つことができるため、一般的にBIFの数値引数には不適切であると考えられています。実際の小数点位置を予測することが不可能なためです。数値引数にFloatタイプのフィールドが使用された場合、引数の最大長が2147483647でなければ、FFC警告が発生します。

ただし、Floatタイプのフィールドは以下の条件下では、数値の戻り値に適します。

英数字の引数と戻り値の規則

英数字の引数または戻り値が必要な場合、BIF の引数と戻り値のタイプに加えて以下の規則が適用されます。

Unicode の引数と戻り値の規則

XおよびUタイプの引数および戻り値がUnicodeをサポートしています。

Unicodeの引数および戻り値の規則は英数字のものと同じです。例外は以下のとおりです。

リストの引数と戻り値の規則

FFCは作業リストの合計バイト長を検査しません。BIFが特定の合計バイト長を必要とする場合、合計バイト長が正しいかどうかを確認する必要があります。

すべての多言語組み込み関数

DBCS SQL Server以外のデータベース・サーバーでは、DBCSデータが壊れる可能性があります。DBCS SQL Serverでは、その他すべての言語のテキストが壊れる可能性があります。データの破損を確実に防ぐには、データベース・サーバーの文字セットと互換性があるテキストのみ変更してください。

Visual LANSAに統合されている開発環境では、さまざまな方法でデータベースIOが実行されるため、データの破損を防ぐことができます。