Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BEFORE INSERT - Error! Field Must Have A Value [D7, IB6.x]


azamatufa ©   (2008-01-21 20:33:00) 

Люди добрые! Помогите.

Использую TIBDataSet1.
В таблице есть поле ID (инкермент) для которого есть Гена и Триггер.

Говорю:
TIBDataSet1.Append;
...заполняю поля кроме ID
TIBDataSet1.Post;

и ругается что поле ID must have a value.
это поле делал по умолчанию NULL - не помогло

IBExpert прекрасно добавляет записи, делается инкремент..

Вроде бы если юзать IBQuery с запросом
INSERT INTO Table1 VALUES (NULL, 'ФИО', 'Адрес','Tel')
то работает...

как быть? нельзя ли все-таки Append'ом сделать?

Спасибо!!!!!!!!!!


Sergey13   (2008-02-21 08:45:00) [1]

> [11] Sirus   (21.02.08 07:28)

Ну и при чем тут ReadOnly:=True? Как по твоему возможность редактирования этого поля в датасете влияет на обязательность наличия его в таблице?


Sirus   (2008-02-21 07:28:00) [2]


> Sergey13 ©   (20.02.08 14:09) [10]
> > [9] Sirus   (20.02.08 13:38)
> > А вот и правильный ответ
>
> Стоило поднимать месячной давности топик, что бы написать
> подобную фигню.

Это не фигня... Если поищешь в инете то поиск тебе ничего такого не даст. Все считают что этот вопрос слишком легок чтобы писать о нем в инете. На самом деле очень много людей пишут insert into Table1 (Code, Name) values (:Code, :Name)вместо insert into Table1 (Name) values (:Name)


Sergey13   (2008-02-20 14:09:00) [3]

> [9] Sirus   (20.02.08 13:38)
> А вот и правильный ответ

Стоило поднимать месячной давности топик, что бы написать подобную фигню.


Sirus   (2008-02-20 13:38:00) [4]

А вот и правильный ответ: Свойство ReadOnly поля должно быть True.
Пример Query1Code.ReadOly:=True;
Code это поле по которому есть и генератор и триггер...


Sirus   (2008-02-20 13:22:00) [5]

тут дело скорее всего не в GeneratorField...
У меня есть две почти одинаковые формы для добавления записей в две таблицы... Так вот в одной форме insert into table (name) value (:name) проскакивает... а в другой форме не проскакивает и выдает field 'CODE' must have a value.
Таблицы одинаковые по структуре...


Правильный_Вася   (2008-01-22 12:02:00) [6]


> Что криминального в том, чтобы полю, по котрому построен
> PK по умолчаниювыставлять Required?

ничего
только нужно понимать последствия и делать обработку


azamatufa   (2008-01-22 09:33:00) [7]

Спасибо Вам!!!
Помогло поле GeneratorField !!!


turbouser   (2008-01-21 22:58:00) [8]


> Правильный_Вася   (21.01.08 22:53) [4]
>
>
> > Неужели?
>
> ужели

Что криминального в том, чтобы полю, по котрому построен PK по умолчанию
выставлять Required?


Правильный_Вася   (2008-01-21 22:53:00) [9]


> Неужели?

ужели
до IB дело не доходит

ЗЫ если "дельфийская ошибка" тобой воспринята как "ошибка борланда"


turbouser   (2008-01-21 22:23:00) [10]


> Sergey Masloff   (21.01.08 21:31) [2]
>
> Johnmen ©   (21.01.08 21:22) [1]
> Да не в этом дело. Это ж дельфийская ошибка

Неужели?

> azamatufa ©   (21.01.08 20:33)  

У TIBDataSet есть свойство GeneratorField


Sergey Masloff   (2008-01-21 21:31:00) [11]

Johnmen ©   (21.01.08 21:22) [1]
Да не в этом дело. Это ж дельфийская ошибка он когда словарь читает для ключей генерит свойство Required в TField. Соответственно ругается еще до попытки выполнения любых SQL


Johnmen   (2008-01-21 21:22:00) [12]

У TIBDataSet есть, среди других, замечательное свойство InsertSQL.
СтОит посмотреть на него... Подумать...


Наверх

Титульная страница Поиск, карта сайта Написать письмо