BASEのフォームに作成したテキストボックスについて(未解決?)

おそらくこれは非常に基本的な質問です。



おそらくと書いているのは、私自身がぶっつけ本番でBASEを使用しだしたため、いったい何が基本知識なのかを区別できていないからです。

###フォームのテキストボックスの属性設定のデフォルトが

###「空白の文字列をNULLとみなす」となっている理由を知りたいのです


画像の説明




個人的にNULLの扱いが不得手だからかもしれませんが、

できれば空文字''にしておきたい。。気がいつもしています。

###(1)設定で初期属性を「いいえ」にできないのでしょうか?



いずれにしても、いつも、ここをいいえに変更するようにしてるのですが、

実はここをいいえにすれば、空文字''になるのかすらわかっていません。



クエリとかを触っていると、
どうも実際には空文字''になっていない気配を感じます。

###(2)「空白の文字列をNULLとみなす」とは、

「リブレ内での実際の扱い」では、どういう定義づけなのでしょうか?


あと、以下もよくわかっていないのですが、

``HSQLDB``では、空文字の存在が、``空文字としてNULLとは別に許される``のに対して、
``FIREBIRD``では、空文字の存在は、``初めから許されずにNULLになる``ような内容を他で見かけました。

ですが、``HSQLDB``で使用している状態ですら、ここを``いいえ``に変更しても、
``NULL``のまま?で扱われている気がしてなりません。。

内容的に私にはチンプンカンプンな高レベルの文中で見つけたので、
私の解釈が間違っているのかもしれませんが、わかりやすく知りたいです。

部分点狙いのメモ。使用したのは6.4系の7月23日版nightly build
日本語はそのうち考える。

問題2:

  1. LibreOffice Baseを起動
  2. Firebird Embeddedを使ったデータベースを作成。ファイル名は適当にabc.odbとした。3ペインのウィンドウが開く
  3. 「AutoValueを有効にしたInteger型のカラム"ID"」と「VARCHAR型の"TEST"。(入力必須ではない)」の2つのカラムを持つテーブルTable1を作成
  4. フォームを作成。
  5. メインメニューのForm->Design Modeが有効になっていることを確認。
  6. その後「Navigation Bar」「テキストボックス(Text Box 1)」の2つを配置。
  7. テキストボックスのコンテキストメニューから、Form Propertiesを選択。
  8. DataタブのContentをTable1に設定
  9. 再びテキストボックスのコンテキストメニューから、Control Propertiesを選択
  10. DataタブのData fieldをTESTに設定
  11. Empty String is NULLをYesにする
  12. Form->Design Modeをオフにする
  13. テキストボックスにxと入力
  14. テキストボックスの内容が変化したおかげでナビゲーションバーからレコードの保存が可能になる。
  15. レコードをこの段階で保存するのを忘れない。忘れると以下の手順でエラーが出る。
  16. テキストボックスの内容を全削除
  17. レコードを保存する
  18. Form->Design Modeを有効にする
  19. テキストボックスのEmpty String is NULLをNoに変更
  20. Form->Design Modeをオフにする
  21. ナビゲーションバーからNext Record
  22. テキストボックスにxと入力
  23. レコードを保存する
  24. テキストボックスの内容を全削除
  25. レコードを保存する
  26. 3ペインのウィンドウに戻る。
  27. メインメニューからTools->SQL
  28. Show output of “select” statements.のチェックボックスを入れる
  29. ダイアログの一番上のテキストボックスにSELECT "TEST" IS NULL FROM "Table1"を押してExecute
  30. 結果が上からTrue, Falseになることを確認。