最近のアクセス:
[Nulls in Form behavior] プロパティ

トランザクションフォームに値を挿入するときに、値が設定されていないフィールドがある場合、それは NULL 値なのか空なのか、どちらと見なされるべきなのでしょうか。このあいまいな状況を解決するには、項目属性の [ Nulls in Form behavior ] プロパティを使用します。このプロパティを使用すると、ユーザーがトランザクション UI で項目属性のコントロールフィールドを空のままにしたときに null と空のどちらの値を格納するかを、設計時に指定できます。

Blank as Null 値が空白の場合にのみデータベースに NULL を保存します。保存されている値が NULL の場合は値が表示されず (空白)、値が 0 の場合は 0 が表示されます。
Compatible
No Nulls
Empty as Null 値が 0 または空白の場合に NULL を保存します。保存されている値が 0 または NULL の場合は常に 0 が表示されます (既定値)。

適用範囲

データストアで利用できます。
データストア: iSeries、DB2 UDB、Informix、MySQL、Oracle、PostgreSQL、SQLCE、SQL Server
オブジェクト: Transaction
対応しているプラットフォーム: Web (.NET、Java)

説明

[ Nulls in Form behavior ] プロパティは項目属性レベルまたは項目属性のコントロールレベルで設定でき、コントロールの空の値を null とみなすかどうかを指定します。
このプロパティが項目属性レベルで設定されている場合は、その項目属性が受け入れられたすべてのコントロールで設定値が引き継がれ、空の値が null 値と見なされます。それ以外の場合、このプロパティは無視されます。
このプロパティを Empty as Null に設定することは、トランザクションで次のルールを指定することと同じです:
 [ WEB ] 
{
Att.SetNull() If Att.IsEmpty()
}
このプロパティを Blank as Null に設定すると、フィールドが空 (空白) の場合にのみ Null が保存され、空の値 (0) が入力された場合はデータベースに 0 が保存されます。
[ Empty as Null ] プロパティはビジネスコンポーネントには適用されません。このプロパティが True に設定されている場合、次のルールを追加してビジネスコンポーネントで同様の動作を実現することができます。
 [ BC ] 
{
AttId.SetNull() if AttId.IsEmpty();
}

顧客トランザクションと請求書トランザクションの例について説明します。CustomerId に対して [ Empty as Null ] プロパティを Yes に設定しても、このプロパティは顧客トランザクションには適用されません。これは、CustomerId は主キーの構成要素であり、null は許可されないためです。これに対し、請求書トランザクションでは、CustomerId は null 値を受け取ることができ ( [ Null ] プロパティが Yes の場合)、トランザクションフォームで値が指定されなかった場合、または空の値が割り当てられた場合 (つまり、CustomerId が Numeric で 0 が割り当てられた場合) には、null が格納されます。

プロパティの変更の適用方法

プロパティの値を設定したときに、それに対応する変更を適用するには、 [ すべてリビルド ] を実行します。

互換性

GeneXus 9.0 より前のバージョンに由来するナレッジベースとの下位互換性を維持するため、このプロパティはナレッジベースのバージョンレベルで実装されています。プロパティの名前は [ Empty as null behavior ] です。有効な値は次のとおりです: Current Version、Version 8.0 and prior (非推奨)。新しいナレッジベースの既定値: Current Version。変換されたナレッジベースの既定値: Version 8.0 and prior (非推奨)。 [ Empty as null behavior ] プロパティが [ Version 8.0 and prior ] に設定されている場合は、新しい値 [ Compatible ] も [ Empty as Null ] 項目属性/コントロールプロパティに表示されます。これは、ナレッジベースが旧バージョンに由来し、互換性を確保する場合の既定値です。「Compatible (互換性のある)」値とは? GeneXus 8.0 まで、ユーザーがトランザクションフォームの項目属性フィールドに値を入力しないと、空の値が挿入されていました。これが、「Compatible (互換性のある)」プロパティ値の動作です。

参考情報

Handling Nulls with GeneXus


サブページ
Created: 14/09/18 03:43 by Admin Last update: 21/05/20 04:38 by Admin
カテゴリ
Powered by GXwiki 3.0