Нулевое значение в поле таблицы

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Нулевое значение в поле таблицы

Сообщение falcon »

По коду из документации пытаюсь создать таблицу с нулевым значением у строку отличным от пустой и равным "З".
Но почемуто, не работает...Прошу помочь, возможно нужно указывать еще какие-то параметры

Код: Выделить всё

create table Projects "Проекты" using "%DATA%DATA\projects" with replace
 (
    NREC : tNREC "Номер записи", // Одна запись - один проект
    name : string[50] "Название",
    status : string[1] "Статус" null= "З",
 	// Т - текущий З - завершенный
    comment : lvar "Описание проекта"
 )
 with index
 (
    Projects0 = NREC (unique, surrogate, journal),
    Projects1 = name (upcase, length = 10 ),
    Projects3 = status
 );
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Нулевое значение в поле таблицы

Сообщение cruger »

это рудимент из начала 90х
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Re: Нулевое значение в поле таблицы

Сообщение falcon »

А можно тогда как-то создать строковое поле у таблицы с нулевым значением отличным от пустой строки ?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Нулевое значение в поле таблицы

Сообщение cruger »

а что значит "нулевое значение, отличное от пустой строки"?
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Re: Нулевое значение в поле таблицы

Сообщение falcon »

Когда создаешь запись в таблице, то поля по умолчанию заполняются "нулевыми" значениями. Числовые - 0, строки - пустой строкой, логические- False.

И предполагалось, что есть возможность изменить "нулевое" значение по умолчанию на требуемое:

Код: Выделить всё

status : string[1] "Статус" null= "З",
   // Т - текущий З - завершенный
Но похоже данную возможность отключили, а новую не ввели....
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Нулевое значение в поле таблицы

Сообщение cruger »

не нулевое, значит, а значение по умолчанию
значений по умолчанию и не было никогда
а этот null afair задаёт нулевое значение для null-индексов
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Re: Нулевое значение в поле таблицы

Сообщение falcon »

Выдержка из документации из оператора описания физических таблиц:
<описание-поля> = <имя-поля> : <тип> [<заголовок-поля>] [<нулевое-значение>]

<нулевое-значение> =
null = {'символ' | целое-от-0-до-255}
Конструкция null устанавливает индивидальное нулевое значение для данного поля, перекрывающее соответствующую установку для типа.
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Нулевое значение в поле таблицы

Сообщение cruger »

да, есть такой фрагмент
и что из этого должно следовать?
m0p3e
заказчик
Сообщения: 46
Зарегистрирован: Вт, 13/01/2009 10:52
Имя Фамилия: Сергей Головчак
Откуда: Гипротрубопровод

Re: Нулевое значение в поле таблицы

Сообщение m0p3e »

Если очень нужно, то можно программным триггером на before insert сделать :)
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Re: Нулевое значение в поле таблицы

Сообщение falcon »

cruger писал(а):да, есть такой фрагмент
и что из этого должно следовать?
Я хотел узнать, можно ли как-то сдлеать данный "фрагмент" работающим. Предположил, что неправильно указал параметры.
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Re: Нулевое значение в поле таблицы

Сообщение cruger »

я же описал выше, для чего эти null-значения

ещё раз - это не значения по умолчанию и никогда ими не были
Аватара пользователя
larin
топ-софт
Сообщения: 228
Зарегистрирован: Пн, 10/09/2007 12:13
Имя Фамилия: Михаил Ларин
Откуда: ТопCофт
Контактная информация:

Re: Нулевое значение в поле таблицы

Сообщение larin »

К слову сказать. Мой опыт разработки таблиц для Галактики подсказывает, что поле "status" лучше сделать числовым. И статусы обозначать числовыми константами. Например 0 - статус не определен, 1 - текущий, 2 - завершенный.

Использовать буквы для этого, тем более русские, не совсем хороший тон. С буквами постоянно придется помнить о проблемах с регистром букв. О проблемах с кодировкой DOS866-WIN1251-Unicode.

Если вы проектируете новую БД сделайте это поле числовым.
falcon
партнер
Сообщения: 45
Зарегистрирован: Чт, 04/10/2007 09:27
Имя Фамилия: Александр Волков
Откуда: Фалькон плюс

Re: Нулевое значение в поле таблицы

Сообщение falcon »

Совершенно с Вами согласен, что статусы лучше делать числовыми.
Я привел "кусок" кода из документации только для примера....
Ответить