DBGridの空白フィールドの許可について


トナカイ  2011-07-11 15:29:48  No: 40780  IP: 192.*.*.*

現在、下記のコードで

data[0] := 'TEST001';
data[1] := '0';
data[2] := '';    (or data[2] := ' ' ←半角スペースもダメ)

DBGrid1.DataSource.DataSet.AppendRecord([data[0],data[1],data[2]]);
このAppend命令のところで
『フィールド値が必要です。』と、エラーになってしまいます。

data[2] := 'A'; としてあげると、問題なくAppendされます。

空白フィールドを設定したいのですが、どのようにすれば
よろしいのでしょうか?

dbは、AS400を使用しています。
data[2]のDDSのフィールドのデータタイプは  「Aタイプ」 で設定しています。

編集 削除
HOta  2011-07-12 07:59:05  No: 40781  IP: 192.*.*.*

データーベース側の定義でNotNullになっていないですか?

編集 削除
トナカイ  2011-07-12 13:22:37  No: 40782  IP: 192.*.*.*

AS400側では、『A』は文字データですので、
NotNullとかは関係ないと思うのですが・・・。

編集 削除
定義  2011-07-12 14:14:19  No: 40783  IP: 192.*.*.*

HOtaさんが言われているのは
NotNullはテーブルを作成された時フィールドの定義です。
そのフィールドがNullを許容されるように最初から設計されていれば
空文字でも受け入れるでしょうが、そうで無ければ空文字(場合によ
っては半角空白)はエラー(値が必要とかNullはダメとか)を返しま
す。
よって、テーブルを再定義する必要があるでしょう。
もし再定義できなければ、何かルール付けしてそれに基づいたデータ
を挿入するしかないでしょう。

たぶん

編集 削除
どら  2011-07-13 10:34:11  No: 40784  IP: 192.*.*.*

>dbは、AS400を使用しています。

細かいことを言うようですがAS400ではなくDB2ですよね?
(AS400はIBMのオフコンの名称かと)

編集 削除