【VB】制約を有効にできませんでした。行に入力できるのは、null 以外の値、一意な値、あるいは外部キー……とかなんとか。【DATASET】

検証環境では出ずに、本番に載せた瞬間、こんなエラー。
本番でのエラーって、反射的に環境のせいにしたくなるよね。

制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。

ごちゃごちゃ書いてて混乱するけど、単純に、テーブルに乗ってるCONSTRAINTのどれかが違反してるよーって、ただそれだけのこと。
桁あふれというか、プログラムと実際のテーブルの定義が異なっているときも、発生するとかなんとか。

というのも、DataSetをGUIで作成すると、VB側でも同じ制約を持ったDataTableが作成されるらしい。
枠だけ作成させてくれればいいのに。
それはそれで不便なんだろうな……でもどう考えても便利さのほうが勝つでしょ……。

で、自分の場合はNOT NULL制約に引っかかってました。
単体の検証漏れとかそういう原因ですね。
条件が不完全な項目で、NULLになってました。
ソースからクエリを引っこ抜いて、わざわざ本番で動かして、ようやく気付けました。

くだらないうえに無駄に神経をすり減らしてしまった……。

コメント