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


トナカイ  2011-07-12 00:29:48  No: 40780

現在、下記のコードで

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 16:59:05  No: 40781

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


トナカイ  2011-07-12 22:22:37  No: 40782

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


定義  2011-07-12 23:14:19  No: 40783

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

たぶん


どら  2011-07-13 19:34:11  No: 40784

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加