![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Проблемы с записью В БД. Есть 3 таблицы БД : Игрок(Player), позиция на поле(OnGroundPosition), позиция игрока на поле(PlayerPosition).
Таблицы Player и OnGroundPosition связаны отношением многие-ко-многим, которое разруливается с помощью введения дополнительной таблицы PlayerPosition(Атрибуты таблиц во вложенном файле ). Пытаюсь добавить Новую запись в таблицу PlayerPosition и он жалуется на то что "violation of foreign key constraint Integ_117 on table PlayerPosition. foreign key reference target does not exist" Параметры процедуры передаются правильно, но при этом создается ощущение что не хочет записываться потому что пытается записать Null значение в ключевое поле. код добавления Код:
procedure TPlayerEditForm.PlayerPositionsKoeff(PosID,PlayerN,Coeff: integer);
begin
DataMForecast.dsPlayerPosition.Insert;
DataMForecast.dsPlayerPosition.FieldByName('PositionID').AsInteger := PosID;
DataMForecast.dsPlayerPosition.FieldByName('PlayerID').AsInteger := PlayerN;
DataMForecast.dsPlayerPosition.FieldByName('Koeff').AsInteger := Coeff;
DataMForecast.dsPlayerPosition.Post;
end;Последний раз редактировалось exy, 11.02.2011 в 14:48. |
|
#2
|
|||
|
|||
|
Попробуй через AppendRecord.
|
|
#3
|
|||
|
|||
|
Никакой разницы нет, пробовал append post, insert post, insertrecord, appendrecord...
У меня такое ощущение что неправильно работает запрос на вставку..... Ну помогите Плиз!!!!!!!! Последний раз редактировалось exy, 12.02.2011 в 01:06. |
|
#4
|
|||
|
|||
|
Цитата:
Пс. вот не люблю я foreign key из за этого ![]() |
|
#5
|
|||
|
|||
|
И как же мне решить эту проблему???? подскажите, пожалуйста!!!
|
|
#6
|
|||
|
|||
|
Выкладывай код запроса и структуру БД, посмотрим.
ЗЫ. Твой код целиком смотреть просто лень. Выложи именно значимые для проблемы куски в теле сообщения. |
|
#7
|
|||
|
|||
|
Запрос на вставку таков:
Код:
insert into PLAYERPOSITION (POSITIONID, PLAYERID, KOEFF) values (:POSITIONID, :PLAYERID, :KOEFF) |
|
#8
|
||||
|
||||
|
Т.е. получается, что в таблице PlayerPosition поля PositionID,PlayerID являются одновременно FK и PK?
PK там вообще нафик не нужен. Если вы хотите избежать повтора данных в PlayerPosition на уровне ядра БД, то просто сделайте уникальный индекс по этим полям.Последний раз редактировалось Страдалецъ, 16.02.2011 в 11:37. |