C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Значение по умолчанию, default InterBase
Savl
Отправлено: 19.06.2004, 18:34


Ученик-кочегар

Группа: Участник
Сообщений: 3



Создаю и модифицирую таблицу
CREATE TABLE PERIOD ( NAM VARCHAR(20) CHARACTER SET WIN1251 NOT NULL, INDICATOR SMALLINT, PRIMARY KEY (NAM) );
ALTER TABLE PERIOD DROP INDICATOR, ADD INDICATOR SMALLINT DEFAULT 1 NOT NULL;

Использую компонент со страницы InterBase PeriodSet :TIBDataSet:
DataModule1->PeriodSet->Insert();
DataModule1->PeriodSet->FieldByName("Nam")->AsString=FormatDateTime("MMMM.yyyy",DTP1->Date);
DataModule1->PeriodSet->Post();
Привыполнение данного кода генерируется сообщения об ошибке во время выполнение программы, как я понял проблема в том что field ‘indicator’ default ‘1’ не присваивается и остается null — значения, я только начало работать с InterBase и решил создать аналог bool поле как в paradox.
AVC
Отправлено: 21.06.2004, 09:04


Ветеран

Группа: Модератор
Сообщений: 1583



Возможно ошибку вам выдает не сервер а компонент, который ни чего о default не знает. Если это так отключите у него встроенные проверки.
А зачем так сложно создавать таблицу, что конструкция
CREATE TABLE PERIOD
(NAM VARCHAR(20) CHARACTER SET WIN1251 NOT NULL Primary Key
,INDICATOR SMALLINT default 1 not Null
)
в InterBase не работает ?
olegenty
Отправлено: 21.06.2004, 11:24


Ветеран

Группа: Модератор
Сообщений: 2412



да нет, тут скорее проблема в том, что у Primary Key, который ДОЛЖЕН быть уникальным, ты додумался установить значение по умолчанию. предположим на секунду, что у тебя УЖЕ ЕСТЬ в таблице поле со значением ключа = 1. ты создаёшь новую запись. заполняешь одно поле даты, постишь. сервер вмето null в ключ подставляет 1, но у него уже есть поле с ключом = 1. и он тебя посылает туда, куда посылает. заметь — обоснованно посылает.
AVC
Отправлено: 21.06.2004, 11:38


Ветеран

Группа: Модератор
Сообщений: 1583



Внимание
QUOTE (Savl @ писал)

PRIMARY KEY (NAM)

olegenty
Отправлено: 22.06.2004, 06:48


Ветеран

Группа: Модератор
Сообщений: 2412



я лоханулся. предположение AVC верно на 100% (про проверки).
Nick
Отправлено: 22.06.2004, 09:24


Машинист паровоза

Группа: Участник
Сообщений: 247



просто тяжело въехать сразу, что в таблице
с одним текстовым полем и одним числовым примари кеу поставили на текстовое

Вернуться в Работа с базами данных в C++Builder