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

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

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

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

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

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

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

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

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

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

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

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

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

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


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