Validation error for column id value null

Ошибка при заполнении таблицы: Validation error for column Firebird/InterBase Решение и ответ на вопрос 145338
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (1,42101,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (2,42102,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (3,42103,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (4,42104,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (5,42105,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (6,42106,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (7,42107,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (8,42108,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (9,42109,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');
INSERT INTO STATUS(Status_ID,PC_Number,PC_Status,Blok_Status,Mother_Status,Privod_Status,HDD_Status,Video_Status,Sound_Status,Ram_Status,CPU_Status,Monitor_Status,Key_Status,Mouse_Status)
VALUES (10,42110,'работает','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен','исправен');

Модератор: Модераторы

Выполнение SQL-скрипта через TSQLScript…

Пишет «CommitRetaining :
-validation error for column ID, value «*** null ***»» при попытке создания уникального индекса несмотря на то, что пустых значений-то там и нет… Перерыл все и перепробовал все… Из внешних утилит все ОК (SQLLY, IBExpert), а тут странно… Откуда могут появится пустые значения, ума не приложу… Ну не может быть их там по определению!!!
Пример БД, запроса и программы с исходниками во вложении… Похоже на баг, но не уверен… Может я где ошибся!?

У вас нет необходимых прав для просмотра вложений в этом сообщении.

avmaksimov
новенький
 
Сообщения: 20
Зарегистрирован: 17.10.2010 12:38:54
  • Профиль
  • Сайт

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение dunin » 17.10.2010 15:40:43

Код: Выделить всё
procedure TMainFrm.btnUpdateDBClick(Sender: TObject);
begin
  IBConnection.HostName := Trim(edtHost.Text);
  IBConnection.Connected:=True;
  SQLTransaction.Active:=True;

  SQLScript.Script.Clear; /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  SQLScript.Script.LoadFromFile(CurPath + 'PatchDB.sql');
  SQLScript.ExecuteScript;
  MessageDlg('Обновление завершено', 'Скрипт выполнен', mtInformation, [mbOK], 0);
end;

Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
  • Профиль
  • Сайт
  • ICQ

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение avmaksimov » 17.10.2010 16:32:34

dunin писал(а):

Код: Выделить всё
procedure TMainFrm.btnUpdateDBClick(Sender: TObject);
begin
  IBConnection.HostName := Trim(edtHost.Text);
  IBConnection.Connected:=True;
  SQLTransaction.Active:=True;

  SQLScript.Script.Clear; /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  SQLScript.Script.LoadFromFile(CurPath + 'PatchDB.sql');
  SQLScript.ExecuteScript;
  MessageDlg('Обновление завершено', 'Скрипт выполнен', mtInformation, [mbOK], 0);
end;

Спасибо за ответ, но насколько помню LoadFromFile сам делает очистку TStrings… И не удивительно, что ваш совет не помог…

Да, я забыл указать, что у меня Lazarus: 0.9.28.2.22279 i386-win32-win32/win64, FPC: 2.2.4, Firebird: 2.1.3.18185 Win32 Server.

avmaksimov
новенький
 
Сообщения: 20
Зарегистрирован: 17.10.2010 12:38:54
  • Профиль
  • Сайт

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение Vadim » 17.10.2010 16:47:22

avmaksimov
А Вы не пробовали оставлять в скрипте по одной процедуре и проверить, на какой именно происходит ошибка?

Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение avmaksimov » 17.10.2010 17:03:21

Vadim писал(а):avmaksimov
А Вы не пробовали оставлять в скрипте по одной процедуре и проверить, на какой именно происходит ошибка?

Пробовал… Получается ошибка после последнего коммита после строки «ALTER TABLE CONFIG ADD CONSTRAINT PK_CONFIG PRIMARY KEY (ID);»… Притом, что как видно, в БД ID никогда не принимает значение NULL!!! Я даже пробовал вставлять что-то вроде «update config set id=777 where id=null» — не помогло и 777 нигде не появилось…

avmaksimov
новенький
 
Сообщения: 20
Зарегистрирован: 17.10.2010 12:38:54
  • Профиль
  • Сайт

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение Brainenjii » 17.10.2010 17:17:16

Может сначала попробовать поменять столбец на NOT NULL?

Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение avmaksimov » 17.10.2010 17:22:26

Brainenjii писал(а):Может сначала попробовать поменять столбец на NOT NULL?

Так он уже NOT NULL:

Код: Выделить всё
ALTER TABLE CONFIG ADD TEMP$$ID Smallint NOT NULL;
COMMIT WORK;
UPDATE CONFIG SET TEMP$$ID = ID;
ALTER TABLE CONFIG DROP ID;
COMMIT WORK;
ALTER TABLE CONFIG ALTER COLUMN TEMP$$ID TO ID;

COMMIT WORK;

Все-таки я все больше склоняюсь к багу Lazarus’а.

P.S. Если выполнить строку «ALTER TABLE CONFIG ADD CONSTRAINT PK_CONFIG PRIMARY KEY (ID);» в следующий раз (т.е. подправить SQL-файл), то все ОК.

avmaksimov
новенький
 
Сообщения: 20
Зарегистрирован: 17.10.2010 12:38:54
  • Профиль
  • Сайт

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение Vadim » 17.10.2010 17:35:27

avmaksimov

avmaksimov писал(а):«ALTER TABLE CONFIG ADD CONSTRAINT PK_CONFIG PRIMARY KEY (ID);»

А Вы можете обычными словами (не кодом :) ) описать, что эта строка должна сделать? :)

Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение avmaksimov » 17.10.2010 18:05:16

Vadim писал(а):avmaksimov

avmaksimov писал(а):«ALTER TABLE CONFIG ADD CONSTRAINT PK_CONFIG PRIMARY KEY (ID);»

А Вы можете обычными словами (не кодом :) ) описать, что эта строка должна сделать? :)

Прикольно :). Ну вообще-то добавляет первичный ключ по полю ID с названием PK_CONFIG — http://www.firebirdsql.su/doku.php?id=constraint.

avmaksimov
новенький
 
Сообщения: 20
Зарегистрирован: 17.10.2010 12:38:54
  • Профиль
  • Сайт

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение Vadim » 18.10.2010 12:19:46

avmaksimov писал(а):Ну вообще-то добавляет первичный ключ по полю ID с названием PK_CONFIG

Я догадывался об этом, но хотел просто Вас плавно подвести к следующему вопросу. ;)
В колонке, по которой Вы делаете первичный ключ, не должно существовать ни NULLовых значений, ни повторяющихся. Поскольку колонка у Вас уже есть, можно предположить, что там есть и значения какие-то. Какие?

Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Выполнение SQL-скрипта через TSQLScript…

Сообщение avmaksimov » 18.10.2010 13:42:13

Vadim писал(а):

avmaksimov писал(а):Ну вообще-то добавляет первичный ключ по полю ID с названием PK_CONFIG

Я догадывался об этом, но хотел просто Вас плавно подвести к следующему вопросу. ;)
В колонке, по которой Вы делаете первичный ключ, не должно существовать ни NULLовых значений, ни повторяющихся. Поскольку колонка у Вас уже есть, можно предположить, что там есть и значения какие-то. Какие?

Ненулевые… Вообще, я думал, что все заметят, но нет … в архиве файл есть suo.gdb — там как раз эта таблица CONFIG и есть.

Получается, что либо это баг и мне писать в баг-трекер надо, либо параметр какой-то надо поставить… Чтоб коммит коммитил реально… Хотя и дело не в коммите вроде… Блин, непонятно…

avmaksimov
новенький
 
Сообщения: 20
Зарегистрирован: 17.10.2010 12:38:54
  • Профиль
  • Сайт



Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Непонятки с внешним ключом

Модераторы: kdv, CyberMax

Gelios

Сообщения: 13
Зарегистрирован: 27 окт 2004, 11:02

Непонятки с внешним ключом

есть таблица
CREATE TABLE CONTRACTS_TAB (

EMPLOYER TID_NULL /* TID_NULL = NUMERIC(18,3) */,
…..
);

ALTER TABLE CONTRACTS_TAB ADD CONSTRAINT FK_CONTRACTS_TAB_EMPLOYER FOREIGN KEY (EMPLOYER) REFERENCES CLIENTS_TAB (ID);

остальные поля несущественны

при попытке вставить запись с полем employer, содержащим null, сервер (Yaffil 885) выдает ошибку
The insert failed because a column definition includes validation constraints.
validation error for column EMPLOYER, value «*** null ***».

хотя, если мне не изменяет память, внешние ключи поддерживают null-значения.
Как побороть это сообщение сервера?


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Непонятки с внешним ключом

Сообщение

Merlin » 27 окт 2004, 11:52

Gelios писал(а):есть таблица
CREATE TABLE CONTRACTS_TAB (

EMPLOYER TID_NULL /* TID_NULL = NUMERIC(18,3) */,
…..
);

ALTER TABLE CONTRACTS_TAB ADD CONSTRAINT FK_CONTRACTS_TAB_EMPLOYER FOREIGN KEY (EMPLOYER) REFERENCES CLIENTS_TAB (ID);

остальные поля несущественны

при попытке вставить запись с полем employer, содержащим null, сервер (Yaffil 885) выдает ошибку
The insert failed because a column definition includes validation constraints.
validation error for column EMPLOYER, value «*** null ***».

хотя, если мне не изменяет память, внешние ключи поддерживают null-значения.
Как побороть это сообщение сервера?

Посмотреть на описание домена TID_NULL не в комментариях, а наяву, и убедиться, что там написано Not Null?


kdv

Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Непонятки с внешним ключом

Сообщение

kdv » 27 окт 2004, 12:05

Gelios писал(а):есть таблица
CREATE TABLE CONTRACTS_TAB (

EMPLOYER TID_NULL /* TID_NULL = NUMERIC(18,3) */,

Однако проблема именно в том, что в качестве FK (и где то значит PK) используется NUMERIC(18,3). Если это третий диалект, то это int64, а если 1-ый, то double precision.
В обоих случаях практически никогда для идентификаторов не требуется такой разрядности. Поэтому использовать надо ОБЫЧНЫЙ INTEGER.

А NUMERIC(18,3) — для числовых значений, зарплата там, кол-во ящиков и т.п.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Непонятки с внешним ключом

Сообщение

Merlin » 27 окт 2004, 12:21

kdv писал(а):

Gelios писал(а):есть таблица
CREATE TABLE CONTRACTS_TAB (

EMPLOYER TID_NULL /* TID_NULL = NUMERIC(18,3) */,

Однако проблема именно в том, что в качестве FK (и где то значит PK) используется NUMERIC(18,3). Если это третий диалект, то это int64, а если 1-ый, то double precision.
В обоих случаях практически никогда для идентификаторов не требуется такой разрядности. Поэтому использовать надо ОБЫЧНЫЙ INTEGER.

А NUMERIC(18,3) — для числовых значений, зарплата там, кол-во ящиков и т.п.

Казалось бы, при чём тут Лужков, то есть тьфу, проверка на Null? И какой найк 18,3 в первом диалекте? 15 максимум :wink:


Gelios

Сообщения: 13
Зарегистрирован: 27 окт 2004, 11:02

Сообщение

Gelios » 27 окт 2004, 12:36

диалект 3.
для данной задачи часть PK и FK имеют тип NUMERIC(18,3). использовать ОБЫЧНЫЙ INTEGER для данной задачи практичеки невыполнимо (нужно будет полностью переделать базу на оракле и всех клиентов другой задачи, с которой связана проектируемая задача, а этого никто не будет делать). следовательно нужно как то выкручиваться с таким типом. (можно конечно отключить FK, но не хотелось бы…)


Gelios

Сообщения: 13
Зарегистрирован: 27 окт 2004, 11:02

Re: Непонятки с внешним ключом

Сообщение

Gelios » 27 окт 2004, 13:04

Merlin писал(а):Посмотреть на описание домена TID_NULL не в комментариях, а наяву, и убедиться, что там написано Not Null?

CREATE DOMAIN TID_NULL AS
NUMERIC(18,3)


Андрей Могильный

Сообщения: 12
Зарегистрирован: 26 окт 2004, 15:47

Сообщение

Андрей Могильный » 27 окт 2004, 13:31

Не знаю как насчет доменов, но у нас имеется достаточное количество NULL-ВК при ПК и ВК — INTEGER.
Так что либо тут бага (предположительно из-за использования домена), либо ты чего не видишь. Еще раз внимательно и с фонариком… Или попробуй сделать тесты на выявление бага.


Gelios

Сообщения: 13
Зарегистрирован: 27 окт 2004, 11:02

Сообщение

Gelios » 27 окт 2004, 13:57

интересная ситуация. сменил у полей FK/PK тип на integer, потом снова вернул тип numeric(18,3) теперь работает…
правда другая проблемка вылезла:
по этой таблице создано представление (есть триггеры на вставку/замену/удаление). если теперь вставляь запись не через таблицу а через представление, и поле employer в команде на вставку не указан (или там значение null) то выходит вышеописанная ошибка. если в триггере прописать какое либо значение, то вставеа проходит нормально. такие же ошибки идут и с другими полями, которые описаны с атрибутом not null, но значение которым присваивается в триггере (либо на представление, либо на таблицу)


Gelios

Сообщения: 13
Зарегистрирован: 27 окт 2004, 11:02

Сообщение

Gelios » 27 окт 2004, 14:16

тему можно закрыть.
проблему решил обходным маневром.


Odysseos

Сообщения: 9
Зарегистрирован: 27 окт 2004, 14:24

все проблема, видимо, в другом

Сообщение

Odysseos » 27 окт 2004, 14:34

Надо было проверить не только not null у домена, но и not null У УЖЕ СОЗДАННОГО ПОЛЯ с этим доменом!
Была такая бяка — то ли Yaffil в том был виноват, то ли давние версии IBExpert’а… Короче — если создать поле с каким-либо доменом, где у домена есть constraint not null, то поле создавалось так:

field field_type not null

Соответственно, если потом у домена not null прибить — у поля он оставался!

Кстати — на текущей версии IBExpert’а (2004.10.18 и уже давно, в общем-то) и Firebird 1.5.x — такого вот нюанса при создании полей с доменами not null не наблюдается.

А с представлениями — при создании представления constraint’ы полей оно запоминает те, которые были на момент создания, и потом, при их изменении для таблиц/доменов — у представления они остаются _старыми_, а потому его надо прибивать/создавать заново (потому и не рекомендуется в IB особенно широко пользовать представления — геморроя зачастую с ними больше, чем пользы).


>
validation error for column
, InterBase

  • Подписаться на тему
  • Сообщить другу
  • Скачать/распечатать тему



Сообщ.
#1

,
17.11.05, 19:55

    Проблема в следующем:
    пишу вот такой вот запрос

    ExpandedWrap disabled

      INSERT INTO Trener(FIO, ZVANIE,ADRES,TELEFON,NVS)

        VALUES(:FIO,:ZVANIE,:ADRES,:TELEFON,:NVS);

    т.е. надо вставить значения в поля, но при активации IBQuery, выдаётся ошибка validation error for column NVS, value «*** null ***»…
    В чём проблема?

    Эта тема была разделена из темы «InterBase»


    .DeV!L



    Сообщ.
    #2

    ,
    17.11.05, 20:35

      Full Member

      ***

      Рейтинг (т): 11

      Цитата DroN_S @ 17.11.05, 19:55

      но при активации IBQuery

      ну для начала для изменений в базе лучше использовать

      ExpandedWrap disabled

        IBQuery1.ExecSQL;

      ну а для SELECT уже

      ExpandedWrap disabled

        IBQuery1.Open;

        IBQuery1.Close;

      Сообщение отредактировано: .DeV!L — 17.11.05, 20:36


      dron-s



      Сообщ.
      #3

      ,
      17.11.05, 20:41

        .DeV!L
        это всё понятно, но речь то шла не о том… из за чего вылазиет ошибка?


        .DeV!L



        Сообщ.
        #4

        ,
        17.11.05, 20:55

          Full Member

          ***

          Рейтинг (т): 11

          может не всем переменным присвоиз значения, посмотри, может :NVS нигде не определяется…


          dron-s



          Сообщ.
          #5

          ,
          17.11.05, 21:13

            .DeV!L
            в общем в база написана так…

            ExpandedWrap disabled

              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);

            вот тригер для него

            ExpandedWrap disabled

              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 не может быть пустым… но как присвоить ему значение…


            .DeV!L



            Сообщ.
            #6

            ,
            17.11.05, 23:21

              Full Member

              ***

              Рейтинг (т): 11

              DataBase

              попробуй слить мой вариант, поля там соответствуют, так что разногласий не должно быть :unsure:


              dron-s



              Сообщ.
              #7

              ,
              17.11.05, 23:43

                .DeV!L
                а можно скрипт в ПМ или пример с работой, а то так как то не то….


                Coala



                Сообщ.
                #8

                ,
                18.11.05, 05:18

                  DroN_S, у тебя ошибка при создании самой таблицы TRENER. NVS надо определить, как внешний ключ.

                  ExpandedWrap disabled

                    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

                    );

                  Сообщение отредактировано: Coala — 18.11.05, 05:23


                  .DeV!L



                  Сообщ.
                  #9

                  ,
                  18.11.05, 06:16

                    Full Member

                    ***

                    Рейтинг (т): 11

                    DroN_S

                    я там прикрепил не скрипт, а базу….
                    просто её скачать нада, на загрузившейся страничке жмёшь кнопку Free и потом ждёшь, пока отсчитается время и появится ссылка:) (весит 36Кб)


                    dron-s



                    Сообщ.
                    #10

                    ,
                    18.11.05, 07:44

                      .DeV!L
                      да, нет, я скачал архи, в архиве баз, ты напиши маленький исходник или дай сам скрипт базы, а ток так трудно с ней работать…

                      Coala

                      Цитата

                      у тебя ошибка при создании самой таблицы TRENER. NVS надо определить, как внешний ключ.

                      можно по подробнее…


                      Coala



                      Сообщ.
                      #11

                      ,
                      18.11.05, 07:54

                        Давай попробуем:
                        есть таблица VID_SPORTA, в которой есть первичный ключ NVS, его ты определил.
                        Есть таблица TRENER, в которой также есть поле для указания вида спорта — причем только такого, который есть в VID_SPORTA.
                        Другие значение недопустимы. То есть — имеем место на ограничение по ссылочной целостности.
                        Для ее реализации необходимо не просто создать в TRENER поле для вида спорта, но и указать, что оно может принимать
                        только те значение, кои указаны в VID_SPORTA. То есть, использовать при создании таблицы TRENER внешний ключ
                        из таблицы VID_SPORTA :

                        ExpandedWrap disabled

                          NVS integer not null,

                          foreign key(NVS) references VID_SPORTA

                        ключевые слова foreign key и references.


                        dron-s



                        Сообщ.
                        #12

                        ,
                        18.11.05, 08:10

                          Coala
                          и что притаком раскладе, ошибка с пустым полем пропадёт?


                          Coala



                          Сообщ.
                          #13

                          ,
                          18.11.05, 08:12

                            DroN_S, RTFM :wall: :wall: :wall:


                            dron-s



                            Сообщ.
                            #14

                            ,
                            18.11.05, 08:23

                              Coala

                              и что бы это значило


                              H.Iglesias II



                              Сообщ.
                              #15

                              ,
                              18.11.05, 08:39

                                я может чего-то не понял, но по порядку

                                запрос

                                ExpandedWrap disabled

                                  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?

                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                                0 пользователей:

                                • Предыдущая тема
                                • Delphi: Базы данных
                                • Следующая тема

                                [ Script execution time: 0,0567 ]   [ 16 queries used ]   [ Generated: 10.02.23, 05:06 GMT ]  


                                Форум программистов Vingrad

                                Поиск:

                                Ответ в темуСоздание новой темы
                                Создание опроса
                                > Validation error for column 

                                :(

                                   

                                Опции темы

                                Lola8669
                                Дата 25.5.2009, 19:15 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Шустрый
                                *

                                Профиль
                                Группа: Участник
                                Сообщений: 142
                                Регистрация: 24.1.2009

                                Репутация: нет
                                Всего: нет

                                В ID_ZURNAL ввожу 1, а он выдаёт ошибку: Проект вызвал ошибку класса EIBInterBaseError с сообщением ‘validation error for column ID_ZURNALA, value «***null***». Процесс остановлен…

                                Чё делать(((

                                PM MAIL ICQ Skype   Вверх
                                Данкинг
                                Дата 25.5.2009, 19:26 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Yersinia pestis
                                ****

                                Профиль
                                Группа: Завсегдатай
                                Сообщений: 8302
                                Регистрация: 7.11.2006
                                Где: მოსკოვი

                                Репутация: 35
                                Всего: 130

                                Цитата(Lola8669 @  25.5.2009,  20:15 Найти цитируемый пост)
                                В ID_ZURNAL

                                Что такое ID_ZURNAL ? smile

                                Цитата(Lola8669 @  25.5.2009,  20:15 Найти цитируемый пост)
                                ‘validation error for column ID_ZURNALA, value «***null***»

                                А, так это столбец так называется. smile Ну так текст ошибки прочитай и проверь, допускает ли в твоей таблице столбец ID_ZURNAL значения NULL. И откуда вообще вводишь-то?

                                Цитата(Lola8669 @  25.5.2009,  20:15 Найти цитируемый пост)
                                Чё делать((( 

                                ((((( smile

                                Это сообщение отредактировал(а) Данкинг — 25.5.2009, 19:26

                                ———————

                                There’s nothing left but silent epitaphs.

                                PM MAIL WWW   Вверх
                                Lola8669
                                Дата 25.5.2009, 19:35 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Шустрый
                                *

                                Профиль
                                Группа: Участник
                                Сообщений: 142
                                Регистрация: 24.1.2009

                                Репутация: нет
                                Всего: нет

                                в Delphi в DBGrid, ID_ZURNALA — это первичный ключ, туда 1 ввожу, а он ошибку выдаёт smile 

                                PM MAIL ICQ Skype   Вверх
                                Palladin
                                Дата 25.5.2009, 21:24 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Опытный
                                **

                                Профиль
                                Группа: Участник
                                Сообщений: 932
                                Регистрация: 15.5.2007
                                Где: Беларусь г.Гомель

                                Репутация: 1
                                Всего: 17

                                Ну может у тебя уже в этом столбце есть значение ‘1’ в другой строке? 

                                ———————

                                Глуп тот кто полагается на истину авторитета, а не на авторитет истины
                                [color=red]KAV&KIS==Evil[/color]

                                PM MAIL   Вверх
                                Lola8669
                                Дата 25.5.2009, 21:47 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Шустрый
                                *

                                Профиль
                                Группа: Участник
                                Сообщений: 142
                                Регистрация: 24.1.2009

                                Репутация: нет
                                Всего: нет

                                Цитата(Palladin @ 25.5.2009,  21:24)
                                Ну может у тебя уже в этом столбце есть значение ‘1’ в другой строке?

                                неа, только одну строчку пытаюсь заполнить… smile 

                                PM MAIL ICQ Skype   Вверх
                                Akella
                                Дата 25.5.2009, 23:53 (ссылка)
                                |    (голосов:1)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Творец
                                ****

                                Профиль
                                Группа: Модератор
                                Сообщений: 18485
                                Регистрация: 14.5.2003
                                Где: Корусант

                                Репутация: 29
                                Всего: 329

                                Lola8669, а что у тебя в триггерах?

                                Добавлено @ 23:56
                                Lola8669, хочу высказать в целях воспитания:
                                1. Название темы исправь, дай осмысленное название.
                                2. Твой вопрос относится ближе к Delphi+базы данных или вообще к firebird, нежели к общим вопросам по Delphi
                                3. Настоятельно рекомендую к прочтению:
                                http://forum.vingrad.ru/forum/topic-237714.html
                                http://forum.vingrad.ru/forum/topic-126445.html

                                Добавлено @ 23:58
                                Способ подключения где указан? СУБД тоже не указана (хорошо хоть это указала -EIBInterBaseError)! Ты же не первый день на форуме. smile

                                Добавлено через 8 минут и 8 секунд
                                а UpdateSQL и InsertSQL мы тоже должны угадать?

                                Это сообщение отредактировал(а) Akella — 25.5.2009, 23:58

                                PM MAIL   Вверх
                                bems
                                Дата 26.5.2009, 04:14 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Эксперт
                                ****

                                Профиль
                                Группа: Комодератор
                                Сообщений: 3400
                                Регистрация: 5.1.2006

                                Репутация: нет
                                Всего: 88

                                TIBTable? 
                                там сначала вставляется пустая запись ,а потом в ней апдейтятся поля. Поэтому что бы ты ни писала в поле, сначала компонент попытается втулить туда пустое значение. Для первичых ключей используй триггеры с генераторами

                                ———————

                                Обижено школьников: 8

                                PM MAIL   Вверх
                                meti
                                Дата 26.5.2009, 09:23 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Новичок

                                Профиль
                                Группа: Участник
                                Сообщений: 5
                                Регистрация: 24.5.2009

                                Репутация: нет
                                Всего: нет

                                Цитата(bems @ 26.5.2009,  04:14)
                                TIBTable? 
                                там сначала вставляется пустая запись ,а потом в ней апдейтятся поля. Поэтому что бы ты ни писала в поле, сначала компонент попытается втулить туда пустое значение. Для первичых ключей используй триггеры с генераторами

                                Совершенно верно,

                                 или вводите значение ключа в эвенте OnNewRecord

                                PM MAIL   Вверх
                                Данкинг
                                Дата 26.5.2009, 09:57 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Yersinia pestis
                                ****

                                Профиль
                                Группа: Завсегдатай
                                Сообщений: 8302
                                Регистрация: 7.11.2006
                                Где: მოსკოვი

                                Репутация: 35
                                Всего: 130

                                Цитата(bems @  26.5.2009,  05:14 Найти цитируемый пост)
                                Для первичых ключей используй триггеры с генераторами 

                                Вот это мудрая мысль, кстати. Зачем первичный ключ вручную создавать? smile 

                                ———————

                                There’s nothing left but silent epitaphs.

                                PM MAIL WWW   Вверх
                                Lola8669
                                Дата 26.5.2009, 10:30 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Шустрый
                                *

                                Профиль
                                Группа: Участник
                                Сообщений: 142
                                Регистрация: 24.1.2009

                                Репутация: нет
                                Всего: нет

                                Спасибо!!! Получилось!!! smile

                                тока его вводить всё равно приходится, но сохраняет хоть запись)

                                Это сообщение отредактировал(а) Lola8669 — 26.5.2009, 10:31

                                PM MAIL ICQ Skype   Вверх
                                bems
                                Дата 26.5.2009, 10:56 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Эксперт
                                ****

                                Профиль
                                Группа: Комодератор
                                Сообщений: 3400
                                Регистрация: 5.1.2006

                                Репутация: нет
                                Всего: 88

                                не придется, если из датасета убрать

                                ———————

                                Обижено школьников: 8

                                PM MAIL   Вверх
                                Данкинг
                                Дата 26.5.2009, 12:09 (ссылка)
                                |    (голосов:2)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Yersinia pestis
                                ****

                                Профиль
                                Группа: Завсегдатай
                                Сообщений: 8302
                                Регистрация: 7.11.2006
                                Где: მოსკოვი

                                Репутация: 35
                                Всего: 130

                                Цитата(Lola8669 @  26.5.2009,  11:30 Найти цитируемый пост)
                                тока его вводить всё равно приходится,

                                Зачем вручную вводить первичный ключ? smile А если 6540333 записи в таблице — ты уверена, что ничего не перепутаешь? smile  

                                ———————

                                There’s nothing left but silent epitaphs.

                                PM MAIL WWW   Вверх
                                Lola8669
                                Дата 26.5.2009, 17:57 (ссылка)
                                | (нет голосов)
                                Загрузка ... Загрузка …




                                Быстрая цитата

                                Цитата

                                Шустрый
                                *

                                Профиль
                                Группа: Участник
                                Сообщений: 142
                                Регистрация: 24.1.2009

                                Репутация: нет
                                Всего: нет

                                Цитата(bems @ 26.5.2009,  10:56)
                                не придется, если из датасета убрать

                                Ошибку выдаёт! в запросе в DataSet’e по ID_ZURNALA таблицы 2 связываются, как убрать??

                                PM MAIL ICQ Skype   Вверх



















                                Ответ в темуСоздание новой темы
                                Создание опроса
                                Правила форума «Delphi: Базы данных и репортинг»
                                Vit
                                Петрович

                                Запрещено:

                                1. Публиковать ссылки на вскрытые компоненты

                                2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

                                Обязательно указание:

                                1. Базы данных (Paradox, Oracle и т.п.)

                                2. Способа доступа (ADO, BDE и т.д.)

                                • Литературу по Дельфи обсуждаем здесь
                                • Действия модераторов можно обсудить здесь
                                • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
                                • Вопросы по реализации алгоритмов рассматриваются здесь
                                • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
                                • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

                                FAQ раздела лежит здесь!


                                Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

                                 

                                0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
                                0 Пользователей:
                                « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

                                Понравилась статья? Поделить с друзьями:
                              • Validation error flask
                              • Validation error drf
                              • Validation error data incomplete in file etc x11 xorg conf
                              • Validate signature error sig error trust wallet
                              • Validate signature error but it is not contained of permission