- PR -

Byteの計算

1
投稿者投稿内容
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-20 12:11
こんにちは。

バイト計算に困っています。あるテーブルにIDというフィールドがあって
そのフィールドに Byte(1)をORさせるSQL文を発行しています。

SQL
UPDATE Tbl1 SET ID = ID Or 1

しかしこのSQLを実行すると、IDがすべて 255 になってしまいます。
簡単な質問ですいませんが、お分かりの方いらっしゃいましたら情報
提供よろしくお願いします。

環境
MicroSoft Access 2000 SP3
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-20 17:37
引用:

SE卵さんの書き込み (2005-01-20 12:11) より:
UPDATE Tbl1 SET ID = ID Or 1


上の式は「ID 又は 1が真ならば真」と言う意味の論理式であって「IDと1のビット毎の論理和」を計算するビット演算式ではない。SQLServerで論理和を計算したいなら「UPDATE Tbl1 SET ID = ID | 1」と書く所だけど、ACCESSがビット演算式に対応しているかは知らない。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-20 17:44
甕星さん、返信ありがとうございます。

Accessで論理和 | には対応していないようですね。対応方法を変え、一度データ
を取得してから、IDを書き換えて、Updateするようにします。

今行っている事がWebシステムで、クライアント側にAccess,サーバ側にSQLServer
を置くことになってしまいまして、このような問題に当たっていました。とにかく
出来なさそうなので、面倒ですが、一個一個やっていきます。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-01-21 08:41
試してみたところ、ACCESS 2002 では SQL で mod が使えたので、
ID = ID + 1 - (ID mod 2)
でできないことはないけど、わかりづらいかも。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-21 08:48
にしざきさん、返信ありがとうございます。

Access 2000でも実行可能みたいです。modでやる方法はさすがに
思いつきませんでした。勉強になりました。

以上です。今後ともよろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)