validation error for column
, InterBase
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.42] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
| Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
validation error for column
, InterBase
|
Сообщ.
#1
,
|
|
|
|
Проблема в следующем:
пишу вот такой вот запрос ![]() ![]() INSERT INTO Trener(FIO, ZVANIE,ADRES,TELEFON,NVS) VALUES(:FIO,:ZVANIE,:ADRES,:TELEFON,:NVS); т.е. надо вставить значения в поля, но при активации IBQuery, выдаётся ошибка validation error for column NVS, value "*** null ***"... В чём проблема? Эта тема была разделена из темы "InterBase" |
|
Сообщ.
#2
,
|
|
|
|
Цитата DroN_S @ но при активации IBQuery ну для начала для изменений в базе лучше использовать ![]() ![]() IBQuery1.ExecSQL; ну а для SELECT уже ![]() ![]() IBQuery1.Open; ... IBQuery1.Close; |
|
Сообщ.
#3
,
|
|
|
|
.DeV!L
это всё понятно, но речь то шла не о том... из за чего вылазиет ошибка? |
|
Сообщ.
#4
,
|
|
|
|
может не всем переменным присвоиз значения, посмотри, может :NVS нигде не определяется...
|
|
Сообщ.
#5
,
|
|
|
|
.DeV!L
в общем в база написана так... ![]() ![]() CREATE table VID_SPORTA( NVS integer not null primary key, NAZVANIE varchar(40)); CREATE table TRENER( NT integer not null primary key, FIO varchar(40), ZVANIE varchar(30), ADRES varchar(40), TELEFON numeric(9), NVS integer not null references VID_SPORTA); вот тригер для него ![]() ![]() CREATE trigger VID_SPORTA1 for VID_SPORTA after update as begin if(old.NVS<>new.NVS) then update TRENER set NVS=new.NVS where NVS=old.NVS; end!! видно что NVS не может быть пустым... но как присвоить ему значение... |
|
Сообщ.
#6
,
|
|
|
|
|
Сообщ.
#7
,
|
|
|
|
.DeV!L
а можно скрипт в ПМ или пример с работой, а то так как то не то.... |
|
Сообщ.
#8
,
|
|
|
|
DroN_S, у тебя ошибка при создании самой таблицы TRENER. NVS надо определить, как внешний ключ.
![]() ![]() create table TRENER ( NT integer not null primary key, FIO varchar(40), ZVANIE varchar(30), ADRES varchar(40), TELEFON numeric(9), NVS integer not null, foreign key(NVS) references VID_SPORTA ); |
|
Сообщ.
#9
,
|
|
|
|
DroN_S
я там прикрепил не скрипт, а базу.... просто её скачать нада, на загрузившейся страничке жмёшь кнопку Free и потом ждёшь, пока отсчитается время и появится ссылка:) (весит 36Кб) |
|
Сообщ.
#10
,
|
|
|
|
.DeV!L
да, нет, я скачал архи, в архиве баз, ты напиши маленький исходник или дай сам скрипт базы, а ток так трудно с ней работать... Coala Цитата у тебя ошибка при создании самой таблицы TRENER. NVS надо определить, как внешний ключ. можно по подробнее... |
|
Сообщ.
#11
,
|
|
|
|
Давай попробуем:
есть таблица VID_SPORTA, в которой есть первичный ключ NVS, его ты определил. Есть таблица TRENER, в которой также есть поле для указания вида спорта - причем только такого, который есть в VID_SPORTA. Другие значение недопустимы. То есть - имеем место на ограничение по ссылочной целостности. Для ее реализации необходимо не просто создать в TRENER поле для вида спорта, но и указать, что оно может принимать только те значение, кои указаны в VID_SPORTA. То есть, использовать при создании таблицы TRENER внешний ключ из таблицы VID_SPORTA : ![]() ![]() NVS integer not null, foreign key(NVS) references VID_SPORTA ключевые слова foreign key и references. |
|
Сообщ.
#12
,
|
|
|
|
Coala
и что притаком раскладе, ошибка с пустым полем пропадёт? |
|
Сообщ.
#13
,
|
|
|
|
DroN_S, RTFM
|
|
Сообщ.
#14
,
|
|
|
|
Coala
Цитата RTFM и что бы это значило |
|
Сообщ.
#15
,
|
|
|
|
я может чего-то не понял, но по порядку
запрос ![]() ![]() INSERT INTO Trener(FIO, ZVANIE,ADRES,TELEFON,NVS) VALUES(:FIO,:ZVANIE,:ADRES,:TELEFON,:NVS); теперь первое: в структуре таблицы первым полем идет NT - PK. Как это поле заполняется? В запросе нет этих данных. Далее триггер. Это триггер "after update". Какое он может иметь отношение к INSERT INTO в TRENER???? Тебе перед вставкой нового тренера надо определять ключ его вида спорта из VID_SPORTA и вставлять его значение явно в запросе. И еще такое замечание по поводу триггера VID_SPORTA1 - зачем редактировать PK? |