SQL Server Nullについて
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
先日の事ですが
Magicのデータリポジトリ上の定義のみ
データベースデフォルト値に ' ' か 0 を設定すれば
Nullが入らない とここで書きましたが、
APGではOKですが、自作したマスタメンテPGなどで
データビューに定義しなかった場合は、Nullのままでした。
(ちょっと残念。)
データビューに定義すれば、' ' や 0 などが格納されますけど。
割り切って、アプリケーション特性で
Null計算・・・Nullにする を デフォルト に変えるのも
有りかなぁーと思いますが、他社連携を考えると躊躇しますね。
Magicのデータリポジトリ上の定義のみ
データベースデフォルト値に ' ' か 0 を設定すれば
Nullが入らない とここで書きましたが、
APGではOKですが、自作したマスタメンテPGなどで
データビューに定義しなかった場合は、Nullのままでした。
(ちょっと残念。)
データビューに定義すれば、' ' や 0 などが格納されますけど。
割り切って、アプリケーション特性で
Null計算・・・Nullにする を デフォルト に変えるのも
有りかなぁーと思いますが、他社連携を考えると躊躇しますね。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
それは大変ですね。T_T;
レスありがとうございます。
レスありがとうございます。
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
計算項目の場合そのようなことで対応できると思いますが範囲・位置等抽出したりする場合でなんか変な動きになった事があったような・・・・
NULLになっている項目を更新しようとするとエラーになったような・・・・
NULLになっている項目を更新しようとするとエラーになったような・・・・
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
レスありがとうございます。
項目A+項目B+項目C=答え
もしどれかの項目にNullが入っていると計算がされませんので
(手間も軽減する為に、ユーザー関数を自作して)
(↓Nullだと0を返す)
NullCUT(A) + NullCUT(B) + NullCUT(C) みたいな記述をしないといけないなぁと思ってます。やりたくありませんが。T_T;
項目A+項目B+項目C=答え
もしどれかの項目にNullが入っていると計算がされませんので
(手間も軽減する為に、ユーザー関数を自作して)
(↓Nullだと0を返す)
NullCUT(A) + NullCUT(B) + NullCUT(C) みたいな記述をしないといけないなぁと思ってます。やりたくありませんが。T_T;
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
NULLを想定してプログラミングするのは無理なのでは?
普通の記述型言語であれば何とでもなりますがMAGICみたいにブラックボックスのところはどうしようもないですよ・・・
普通の記述型言語であれば何とでもなりますがMAGICみたいにブラックボックスのところはどうしようもないですよ・・・
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
ISHIJIMAさん、レスありがとうございます。^^
データベースの設定がNull許可となっている以上
それを想定してプログラミングするのが無難なんでしょうね。
ISHIJIMAさんが仰る通りMagicからしかデータが入らなければ今回の設定はOKなのでしょうね。
データベースの設定がNull許可となっている以上
それを想定してプログラミングするのが無難なんでしょうね。
ISHIJIMAさんが仰る通りMagicからしかデータが入らなければ今回の設定はOKなのでしょうね。
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
まずいかまずくないかと言えば多分まずいでしょうね・・・
MAGIC上からしかデータが入らないのであればある程度は問題はなさそうとおもわれますが別のところから変なデータが入った場合にはどんなことになるかは想定できないと思います。
おかしな時に調査するのが大変だと思います。
MAGIC上からしかデータが入らないのであればある程度は問題はなさそうとおもわれますが別のところから変なデータが入った場合にはどんなことになるかは想定できないと思います。
おかしな時に調査するのが大変だと思います。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
よそ様が作ったSQL Serverのデータがあり、定義変更はしないで欲しいとなってます。
これをMagicから定義取得を行いました。
キー項目以外のSQL Server上の項目はNull可、デフォルト値未設定になっています。
なんだけどNullは入ってないはずだとお客様は仰ってくれています。
このままMagicで開発を行い、レコードInsertすると数値項目もNullが入ってしまうので、あらゆるPGで気を遣わないといけませんし、集計などの処理も面倒になるので、Magic上の定義をNull値=不可、データベースデフォルト値=0と設定し(数値項目の場合)、物理変換は行いませんでした。
MagicのオンラインPGで、Magic上に項目定義しなくても、レコードInsertすればデータベースデフォルト値が効いているのか数値項目にはちゃんと0が入ってくれます。
SQL Server上のデフォルト値と、Magic上のデータベースデフォルト値が違いますが、これってまずいでしょうか?
これをMagicから定義取得を行いました。
キー項目以外のSQL Server上の項目はNull可、デフォルト値未設定になっています。
なんだけどNullは入ってないはずだとお客様は仰ってくれています。
このままMagicで開発を行い、レコードInsertすると数値項目もNullが入ってしまうので、あらゆるPGで気を遣わないといけませんし、集計などの処理も面倒になるので、Magic上の定義をNull値=不可、データベースデフォルト値=0と設定し(数値項目の場合)、物理変換は行いませんでした。
MagicのオンラインPGで、Magic上に項目定義しなくても、レコードInsertすればデータベースデフォルト値が効いているのか数値項目にはちゃんと0が入ってくれます。
SQL Server上のデフォルト値と、Magic上のデータベースデフォルト値が違いますが、これってまずいでしょうか?
投票数:0
平均点:0.00