AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2008, 07:41   #1  
zYmosi3 is offline
zYmosi3
Участник
 
1 / 10 (1) +
Регистрация: 28.03.2007
Значение по умолчанию при добавлении нового поля
Всем добрый день.

При добавлении нового поля в таблицу и последующей синхронизации к БД генерится запрос вида "ALTER TABLE TABLE1 ADD (FIELD1 VARCHAR2(10) DEFAULT '' NOT NULL)"
Вопрос, можно ли добиться того, чтобы запрос добавления нового поля генерился без DEFAULT '' NOT NULL, и не грозит ли это глюками при последующей работе с таблицей?
Старый 04.04.2008, 08:36   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от zYmosi3 Посмотреть сообщение
Всем добрый день
День добрый

Цитата:
При добавлении нового поля в таблицу и последующей синхронизации к БД генерится запрос вида "ALTER TABLE TABLE1 ADD (FIELD1 VARCHAR2(10) DEFAULT '' NOT NULL)"
так точно

Цитата:
Вопрос, можно ли добиться того, чтобы запрос добавления нового поля генерился без DEFAULT '' NOT NULL
невозможно

Цитата:
и не грозит ли это глюками при последующей работе с таблицей?
не грозит, потому что невозможно

по существу: AX не поддерживает NULL значения для не-BLOB полей. Поэтому нет в синтаксисе SELECT X++ выражений типа ISNULL. Неинициализированное значение для строки - пустая строка, для чисел - 0. Соответственно генерятся WHERE условия в запросе. Поэтому синхронизация при добавлении нового поля выполняет одновременно и его инициализацию (процесс небыстрый, потому что обычно ведет к большому количеству расщеплений страниц в терминологии сиквела или блоков в оракле)
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: Logger (2).
Старый 08.04.2008, 00:52   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Vadik Посмотреть сообщение
по существу: AX не поддерживает NULL значения для не-BLOB полей.
Единственное исключение было сделано для RecVersion в 3.0 KR-каком-то с тем, чтобы ускорить процесс синхронизации при переходе на KR...
За это сообщение автора поблагодарили: Logger (2).
Старый 08.04.2008, 12:03   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от zYmosi3 Посмотреть сообщение
Вопрос, можно ли добиться того, чтобы запрос добавления нового поля генерился без DEFAULT '' NOT NULL, и не грозит ли это глюками при последующей работе с таблицей?
Средствами БД можно сгенерить такое поле, так что синхронизация из Аксапты не потребуется. Но я вам это не рекомендую, так как в этом случае глюки гарантированы.

SQL использует троичную логику -
1. Да
2. Нет
3. Не знаю

"Не знаю" соответсвует Null для его проверки SQL имеет специальный функции
IS NULL
и
IS NOT NULL
Ядро аксапты их не использует для работы с обычными полями (исключение, может быть recVersion - но речь то не о нем). А любое сравнение с Null значением в WHERE дает false.

Так что наличие null значений в полях Аксапты противопоказано.
Кроме того при выборке из базы, если встречается null значение в выбираемом поле, то ядро аксапты генерит исключение.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Значение по умолчанию параметра типа EDT c array elements либо просто массива HorrR DAX: Программирование 16 20.02.2008 19:18
Добавление нового поля в старую таблицу PavelSR DAX: Программирование 3 14.06.2006 08:22
Как при вводе новой записи установить значение поля по умолчанию Zman DAX: Программирование 3 17.01.2005 10:23
Получить значение поля таблицы по номеру (Id) поля Anais DAX: Программирование 2 15.04.2004 13:00
Проблема при добавлении в таблицу нового поля Maxim Gorbunov DAX: База знаний и проекты 2 09.08.2002 15:30
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:02.