powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение по умолчанию в полях типа bit
12 сообщений из 12, страница 1 из 1
Значение по умолчанию в полях типа bit
    #32854041
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема: в таблице MSSQL есть поле bit, значение по умолчанию 1. Привязываем эту таблицу к MS Access97 (sp2). Добавляем запись в этой таблице, но значения поля bit в новой записи получаются 0, а не 1.

При добавлении записи через SQL Enterprise Manager или даже Access XP (не adp) все в порядке: значения поля = 1.

Кто нибудь сталкивался с такой проблемой?
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854049
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854054
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищ Темный, к сожалению Q28 не имеет никакого отношения к моему вопросу.
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854066
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Q28 говорится о том, что в access и mssql логическое "истина" различается ( -1 и 1 соответственно ).

А у меня вопрос про значение по умолчанию в bit полях связанных таблиц :(
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854145
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть добавление в поле через Акс происходит из формы? И на форме контрол, связанный с полем по-умолчанию = 0 (False)?
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854152
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Rivkin Dmitry:
Нет, обновление происходит именно в таблице.

В форме все проще, там действительно можно переопределить значение по умолчанию и оно будет работать. Но мне нужно, чтобы записи добавлялись именно в таблице, а не в форме.
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854197
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что profiler показывает?
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854232
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Profiler показывает, что Access97 посылает insert-запрос уже со значением 0 (интересно, кто его об этом просит?), поэтому сервер значение по умолчанию не подставляет.

А если редактировать таблицу через AccessXP (такая же прилинкованная таблица, не .adp), то insert-запрос уже не содержит этого поля, поэтому сервер подставляет корректное значение по умолчанию, т.е. 1

Проблема эта актуальна не только для какой-то одной конкретной таблицы, а вообще для любой таблицы с полем типа bit.

Вот такие пироги.
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854282
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас проверил: такая проблема есть только для полей типа bit.
С текстовыми, дата/время, числовыми полями все нормально
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854297
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте поставить значение по умолчанию -1. Невероятно интересно, что же будет.
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854307
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причины ИМХО следующие.
В mdb базах булевские поля (Yes/No) не могут быть NULL (так mdb устроен)

Аксесс отображает тип BIT на свой YES/NO. При добавлении записи бедному аксессу что-то нужно записать в эти поля, он пишет 0, не взявши DEFAULT из MSSQL(тяжко брать оттуда Default, там могут быть не только константы, но и выражения) Отличия между 97 и 2003 в том, что 2003 посылает только изменённые пользователем поля, а 97 гонит всю запись целиком.
Это хорошо видно в 2003 при добавлении записи: вводим данные в текстовое поле, поля BIT получают значения 0. сохраняем запись, они становятся -1,IDENTITY поле получает своё значение.

Предлагаю считать не багой, а фичей, причём поведение 97 мне кажется более предсказуемым
...
Рейтинг: 0 / 0
Значение по умолчанию в полях типа bit
    #32854334
dan_nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Темный Попробуйте поставить значение по умолчанию -1. Невероятно интересно, что же будет.
Ничего не будет. Сервер исправит на 1

Alexey Sh
Отличия между 97 и 2003 в том, что 2003 посылает только изменённые пользователем поля, а 97 гонит всю запись целиком.

Предлагаю считать не багой, а фичей, причём поведение 97 мне кажется более предсказуемым

Да, с этим бороться бесполезно, похоже. Но все-таки это подло со стороны acc97 гнать на сервер всю запись, если изменилось только одно поле.

Придется как-нибудь хитро выкручиваться :)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение по умолчанию в полях типа bit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]