ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQL Server Nullについて

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-7-4 17:20 | 最終変更
nkmt  長老   投稿数: 1668
先日の事ですが
Magicのデータリポジトリ上の定義のみ
データベースデフォルト値に ' ' か 0 を設定すれば
Nullが入らない とここで書きましたが、
APGではOKですが、自作したマスタメンテPGなどで

データビューに定義しなかった場合は、Nullのままでした。
(ちょっと残念。)

データビューに定義すれば、' ' や 0 などが格納されますけど。

割り切って、アプリケーション特性で
Null計算・・・Nullにする を デフォルト に変えるのも
有りかなぁーと思いますが、他社連携を考えると躊躇しますね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-26 15:32
nkmt  長老   投稿数: 1668
それは大変ですね。T_T;
レスありがとうございます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-26 15:18
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
計算項目の場合そのようなことで対応できると思いますが範囲・位置等抽出したりする場合でなんか変な動きになった事があったような・・・・
NULLになっている項目を更新しようとするとエラーになったような・・・・
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-6-26 15:10
nkmt  長老   投稿数: 1668
レスありがとうございます。
項目A+項目B+項目C=答え
もしどれかの項目にNullが入っていると計算がされませんので
(手間も軽減する為に、ユーザー関数を自作して)
(↓Nullだと0を返す)
NullCUT(A) + NullCUT(B) + NullCUT(C) みたいな記述をしないといけないなぁと思ってます。やりたくありませんが。T_T;
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-26 14:31
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
NULLを想定してプログラミングするのは無理なのでは?
普通の記述型言語であれば何とでもなりますがMAGICみたいにブラックボックスのところはどうしようもないですよ・・・
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-6-26 13:28
nkmt  長老   投稿数: 1668
ISHIJIMAさん、レスありがとうございます。^^
データベースの設定がNull許可となっている以上
それを想定してプログラミングするのが無難なんでしょうね。
ISHIJIMAさんが仰る通りMagicからしかデータが入らなければ今回の設定はOKなのでしょうね。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-6-26 11:15
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
まずいかまずくないかと言えば多分まずいでしょうね・・・
MAGIC上からしかデータが入らないのであればある程度は問題はなさそうとおもわれますが別のところから変なデータが入った場合にはどんなことになるかは想定できないと思います。
おかしな時に調査するのが大変だと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 | 投稿日時 2014-6-25 12:20
nkmt  長老   投稿数: 1668
よそ様が作ったSQL Serverのデータがあり、定義変更はしないで欲しいとなってます。

これをMagicから定義取得を行いました。

キー項目以外のSQL Server上の項目はNull可、デフォルト値未設定になっています。

なんだけどNullは入ってないはずだとお客様は仰ってくれています。

このままMagicで開発を行い、レコードInsertすると数値項目もNullが入ってしまうので、あらゆるPGで気を遣わないといけませんし、集計などの処理も面倒になるので、Magic上の定義をNull値=不可、データベースデフォルト値=0と設定し(数値項目の場合)、物理変換は行いませんでした。

MagicのオンラインPGで、Magic上に項目定義しなくても、レコードInsertすればデータベースデフォルト値が効いているのか数値項目にはちゃんと0が入ってくれます。

SQL Server上のデフォルト値と、Magic上のデータベースデフォルト値が違いますが、これってまずいでしょうか?

投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約