|
|
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Проблема: в таблице MSSQL есть поле bit, значение по умолчанию 1. Привязываем эту таблицу к MS Access97 (sp2). Добавляем запись в этой таблице, но значения поля bit в новой записи получаются 0, а не 1. При добавлении записи через SQL Enterprise Manager или даже Access XP (не adp) все в порядке: значения поля = 1. Кто нибудь сталкивался с такой проблемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 08:20:17 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 08:40:35 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Товарищ Темный, к сожалению Q28 не имеет никакого отношения к моему вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 08:45:30 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
В Q28 говорится о том, что в access и mssql логическое "истина" различается ( -1 и 1 соответственно ). А у меня вопрос про значение по умолчанию в bit полях связанных таблиц :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 08:58:46 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Может быть добавление в поле через Акс происходит из формы? И на форме контрол, связанный с полем по-умолчанию = 0 (False)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 10:32:50 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
to Rivkin Dmitry: Нет, обновление происходит именно в таблице. В форме все проще, там действительно можно переопределить значение по умолчанию и оно будет работать. Но мне нужно, чтобы записи добавлялись именно в таблице, а не в форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 10:40:36 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
А что profiler показывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 11:29:04 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Profiler показывает, что Access97 посылает insert-запрос уже со значением 0 (интересно, кто его об этом просит?), поэтому сервер значение по умолчанию не подставляет. А если редактировать таблицу через AccessXP (такая же прилинкованная таблица, не .adp), то insert-запрос уже не содержит этого поля, поэтому сервер подставляет корректное значение по умолчанию, т.е. 1 Проблема эта актуальна не только для какой-то одной конкретной таблицы, а вообще для любой таблицы с полем типа bit. Вот такие пироги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 12:03:26 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Сейчас проверил: такая проблема есть только для полей типа bit. С текстовыми, дата/время, числовыми полями все нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 12:45:34 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Попробуйте поставить значение по умолчанию -1. Невероятно интересно, что же будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 13:01:04 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Причины ИМХО следующие. В mdb базах булевские поля (Yes/No) не могут быть NULL (так mdb устроен) Аксесс отображает тип BIT на свой YES/NO. При добавлении записи бедному аксессу что-то нужно записать в эти поля, он пишет 0, не взявши DEFAULT из MSSQL(тяжко брать оттуда Default, там могут быть не только константы, но и выражения) Отличия между 97 и 2003 в том, что 2003 посылает только изменённые пользователем поля, а 97 гонит всю запись целиком. Это хорошо видно в 2003 при добавлении записи: вводим данные в текстовое поле, поля BIT получают значения 0. сохраняем запись, они становятся -1,IDENTITY поле получает своё значение. Предлагаю считать не багой, а фичей, причём поведение 97 мне кажется более предсказуемым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 13:10:44 |
|
||
|
Значение по умолчанию в полях типа bit
|
|||
|---|---|---|---|
|
#18+
Темный Попробуйте поставить значение по умолчанию -1. Невероятно интересно, что же будет. Ничего не будет. Сервер исправит на 1 Alexey Sh Отличия между 97 и 2003 в том, что 2003 посылает только изменённые пользователем поля, а 97 гонит всю запись целиком. Предлагаю считать не багой, а фичей, причём поведение 97 мне кажется более предсказуемым Да, с этим бороться бесполезно, похоже. Но все-таки это подло со стороны acc97 гнать на сервер всю запись, если изменилось только одно поле. Придется как-нибудь хитро выкручиваться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2005, 13:32:33 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32854145&tid=1669442]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 387ms |

| 0 / 0 |
