Skip to main content

 

 

 

 

 
Language:

 

 

 

 
 
OutSystems

データベースレコードへのnull値の挿入

質問

フィールドにnull値を挿入するにはどのようにすればよいですか?

nullを挿入しようとすると0になります。

回答

OutSystemsプラットフォームでは、常にビルトイン型のデフォルト値を想定しています。

アトリビュートが外部キーである場合を除き、データベースを作成または更新するビルトインアクションによってデータベースに値が書き込まれます。制約に関する問題を避けるため、外部キーが定義されていない場合はnullとして保存されます。しかし、未定義の小数は0として書き込まれます。

データベースにnullを保存するには、SQLノードを使用します。異なるDBMSに十分対応できる汎用のコードを作成し、クエリ内にビジネスロジックを含めるのを避けることができます。

以下の例では、SQLノードに2つの入力があります。ActivityNotesはテキスト入力で、Expand Inlineプロパティがyesに定義されています。そのため、ActivityNotes入力の値はクエリに直接挿入されます。

画像のaltテキスト

ActivityNodesクエリパラメータにデータを渡すため、値について以下を確認します。

  • 空の場合、文字列「null」を渡します。

  • それ以外の場合、SQLとしてエンコードされた値を渡します。

Expand InlineによるクエリパラメータへのSQLインジェクションを避けるには、EncodeSql()を使用します。

画像のaltテキスト

このように、異なるDBMSに十分対応できる汎用のコードを作成すると、クエリ内にビジネスロジックを含めるのを避けることができます。

追加情報:

使用できるデータ型

各型のデフォルト値を定義しています。

  • Was this article helpful?