"YES/No"型では0(No)と0以外=-1(Yes)で扱われますが
"bit"型は0(False)と0以外=1(True)で扱われます。
この"bit"型、閲覧モードでみるとFalseやTrueで表示されますし、
実際プログラムを組む際はFalseやTrueで指定しないと構文エラーになるそうな。
パッと見は【0と-1データ】が【0と1データ】に変換されるので調整が必要??とか思いそうだが
bit型はなかなかうまくできています。
「0以外」という所がミソで、
今まで通り-1(Yes)を入力しても、bit型は1(True)として処理してくれます(0以外だから)。
もちろん、True,Falseで入力すれば間違いはないんだけど。
と、いうことで入力処理は問題なさそう。
しかも、ACCESSでリンクテーブルを貼ってSQLServerを見た場合、
1(True)→-1(Yes)として表示されるではないか。従来に合わせて。
つまり、ACCESSモジュール部分で、
MySet!フラグ = -1
という表記がしてあるのは問題ないんです。
と、いうことで出力判定処理も問題なさそう。
あとの問題はデータを読み込むときのSQL文…
どうやら以下の現象になるみたい。(追記)
○ACCESSから作成するSQL文を ~WHERE フラグ = True " としている
○ACCESSから作成するSQL文を ~WHERE フラグ = Yes " としている
(SQLServerに投げるときにTrueに変換してくれている模様。でも今時キモチワルイ)
×ACCESSから作成するSQL文を ~WHERE フラグ = -1 " としている
(ACCESSでは-1と出てる癖に!
実際にSQLServerにSQL文投げるときは1(てかTrue)にする必要があるみたい)
SQL文の部分はやはり修正する必要ありです。
入力値 | ACCESS | SQLServer |
-1 | -1(YES) | 1(True) |
0 | 0(No) | 0(False) |
1 | -1(Yes) | 1(True) |
True | -1(Yes) | 1(True) |
False | 0(No) | 0(False) |
Yes | -1(Yes) | #Err |
No | 0(No) | #Err |
出力値 | ACCESS表示 | SQLServer表示 |
1(True) | -1(YES) | 1(True) |
0(False) | 0(No) | 0(False) |
0 件のコメント:
コメントを投稿