makkonen
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Умные люди. Проблема. Не знал точно куда написать, форум криво работал или у меня инет. Вобщем вот что. Я пишу базу данных на Borland Builder и использую компоненты interbase, а сами базы создаю в IbEXPERT. И вот проблема с первичными ключами((( Кинул Датамодуль как полагается, на него ibквери, упдейты и вот что использую при закрытии формы ввода параметров: void __fastcall TUpdateProduct::FormClose(TObject *Sender, TCloseAction &Action) { switch(ModalResult) { case mrOk: DataModule2->IBQuery_PRODUCT->ApplyUpdates(); break; case mrCancel: DataModule2->IBQuery_PRODUCT->CancelUpdates(); break; } } В билдере выскакивает ошибка примерно гласящая, что ID должно иметь значение. Я в експерте сделал вроде и прототипы и триггеры и генераторы нужные(с 0 начинаются). В первой таблицей долго мучался, она всего и 2 полей CREATE TABLE TYPES ( ID INTEGER NOT NULL, NAME VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите название типа' NOT NULL, CONSTRAINT PK_TYPES PRIMARY KEY (ID) ); Это типа главная таблица, когда в нее добавлять пытался-не выходило, потом покопался чета в експерте и там ввел первое значение, генератор сдвинулся и все заработало. Но есть еще и другая таблица, которая связана с ней по TYPEPROGRAM CREATE TABLE "PRODUCT" ( ID INTEGER NOT NULL, NAME VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите название программы' NOT NULL, TYPEPROGRAM INTEGER NOT NULL, MEMORYSIZE INTEGER DEFAULT 0 NOT NULL, RAMSIZE INTEGER DEFAULT 0 NOT NULL, COST NUMERIC(15, 2) DEFAULT 0 NOT NULL, DATEOFBERN INTEGER DEFAULT 1999 NOT NULL, FATHER VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите произволителя' NOT NULL, CONSTRAINT PK_PRODUCT PRIMARY KEY (ID) ); И вопщем суть проблемы, кто может помочь, как заставить базу генерить первичные ключи самой, если используешь компонент IBUpdate Заранее спасибо, думаю проблема распространенная и ответ будет дан) |