Булева колонка таблицы базы данных ADO - PullRequest
1 голос
/ 24 апреля 2009

У меня проблемы с ADO. Я развернул приложение базы данных, которое использует Access. С выпуском разных версий таблицы базы данных имеют разные поля, некоторые добавляются, другие удаляются и т. Д. Я не могу заставить работать поле BOOLEAN в базе данных.

В целях обновления я использую стандартный запрос SQL с SQL, который выглядит следующим образом:

ALTER TABLE XXX ADD COLUMN YY BOOLEAN

, хотя это работает для других типов данных, таких как VARCHAR, INTEGER, DOUBLE и т. Д., Но не для BOOLEAN. Я подозреваю, что это ошибка Access с тем, что это да / нет для логического, но кто знает.

Также, как я могу добавить поля в таблицу, используя TADOTable?

Заранее спасибо.

Ответы [ 4 ]

5 голосов
/ 24 апреля 2009

В Microsoft Access SQL столбец BIT напрямую соответствует полю YES / NO. Я испытал странное поведение с ним, если вы пытаетесь преобразовать это позже в SQL Server, и я советую сделать следующее:

Когда КОГДА-ЛИБО выполняется проверка этого поля, помните, что синтаксис должен быть (FIELD <> 0) для проверки TRUE и (FIELD = 0) для проверки false. SQL Server не понимает концепцию ИСТИНА / ЛОЖЬ, и при доступе значение возвращает -1 и 0, а в SQL Server - 1 и 0.

При доступе он будет отображать флажок только в том случае, если вы также установите поле не равным нулю. Если разрешены пустые значения, тогда будет отображаться 0 или -1 или пусто.

2 голосов
/ 24 апреля 2009

Не уверен насчет Access, но SQL Server использует битовый тип для обработки логических значений.

1 голос
/ 24 апреля 2009

Попробуйте BIT, а не BOOLEAN

0 голосов
/ 24 апреля 2009

Вы не можете выполнять много операций над типом BIT (или вашим собственным), гораздо лучше использовать TINYINT (1) и использовать 0 / 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...