1

ADOに少し問題があります。Accessを使用するデータベースアプリケーションをデプロイしました。異なるバージョンのリリースに伴い、データベーステーブルには異なるフィールドがあり、追加されたものと削除されたものがあります。私が作業できないのは、データベースにBOOLEANフィールドを追加する方法です。

アップグレードの目的で、次のようなSQLで標準SQLクエリコンポーネントを使用します。

ALTER TABLE XXX ADD COLUMN YY BOOLEAN

これは、VARCHAR、INTEGER、DOUBLEなどの他のデータ型では機能しますが、BOOLEANでは機能しません。ブール値の場合はYES/NOであるため、Accessのせいであると思われますが、誰が知っていますか。

また、TADOTableを使用してテーブルにフィールドを追加するにはどうすればよいですか?

前もって感謝します。

4

4 に答える 4

6

Microsoft Access SQL では、BIT 列は YES/NO フィールドに直接対応します。これを後でSQL Serverに変換しようとすると、奇妙な動作が発生しました。次のことをお勧めします。

このフィールドに対して常にチェックを行うときは、構文が (FIELD <> 0) で TRUE をチェックし、(FIELD = 0) で FALSE をチェックする必要があることに注意してください。SQL Server は TRUE/FALSE の概念を理解せず、アクセスでは値は -1 と 0 を返しますが、SQL Server では値は 1 と 0 です。

アクセスでは、フィールドを非 null に設定した場合にのみ、チェック ボックスがレンダリングされます。null が許可されている場合は、0 または -1 または空が表示されます。

于 2009-04-24T17:56:02.627 に答える
2

Accessについてはわかりませんが、SQLServerはビット型を使用してブール値を処理します。

于 2009-04-24T14:17:48.860 に答える
1

BOOLEANではなくBITを試してください

于 2009-04-24T14:17:24.837 に答える
0

BIT(または独自のカスタム)タイプで多くの操作を実行することはできません。TINYINT(1)を使用して0/1を使用する方がはるかに優れています。

于 2009-04-24T14:34:07.277 に答える