Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
Таблица содержит связи 1 ко многим к самой себе для определение наследства экземпляров. При попытке создать новую запись в таблице с установкой соответствующих данным связям полей вторичных ключей в 0 (передается в хранимку через Delphi) возникает "Конфликт инструкции Insert с ограничением foreign key same table "fk_doc_relations_doc"" по DocID, тоесть логика MS SQL - записи с индексом 0 нет= нарушение целостности? Прошу подсказать в чем я неправ и как следовало б поступить, чтоб не нарушая целостности позволить данным полям "пустовать".
14 май 11, 00:15    [10651137]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37051
Сделать fk-поле nullable, тогда можно туда писать null.
14 май 11, 00:17    [10651144]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
Гавриленко Сергей Алексеевич
Сделать fk-поле nullable, тогда можно туда писать null.


Allow nulls было выставлено сразу...
В Delphi dm.StoreDoc.Parameters.ParamValues['@Parent']:=0; Возможно null следовало выставлять иначе?
14 май 11, 01:22    [10651215]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37051
DolleMaster
Гавриленко Сергей Алексеевич
Сделать fk-поле nullable, тогда можно туда писать null.


Allow nulls было выставлено сразу...
В Delphi dm.StoreDoc.Parameters.ParamValues['@Parent']:=0; Возможно null следовало выставлять иначе?
Естественно, 0 и null - это две большие разницы.
14 май 11, 01:27    [10651221]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
В рекомендациях читал что вернее 0, а null следует избегать... А если null то как его установить через задание переменной хранимой процедуры в Delphi?
14 май 11, 01:41    [10651229]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37051
DolleMaster
В рекомендациях читал что вернее 0, а null следует избегать...
Чьих? К чему? И с какого перепугу, собственно?
DolleMaster
А если null то как его установить через задание переменной хранимой процедуры в Delphi?
Форум по Delphi рядом.
14 май 11, 01:46    [10651235]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
Речь идет больше о работе с MS SQL, и если Вам известен ответ, был бы благодарен за него, а если нет то надеюсь на подсказку от других.
Присвоение вместо 0 null ошибочно, возможно я упускаю какие то тонкости с хранимой проц. В любом случае не вижу ничего по Delphi так как другого способа передавать параметры в хранимую процедуру в Delphi нет.
14 май 11, 02:01    [10651249]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
iljy
Member

Откуда:
Сообщений: 8711
DolleMaster,

0 - это конкретное число, а null - это неопределенность. Ваши рассуждения по меньшей мере странные. Можно еще теорию подучить, например ограничения целостности по внешнему ключу.
14 май 11, 02:17    [10651266]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
У меня таблица в которую нужно внести запись, в которой foreign key пустой, к тому же вторичный ключ имеет связь с первичным той же таблицы. Вопрос был в том как это выполнить, а не о различии null и 0. Вопросом на вопрос отвечать это решение всех проблем?
14 май 11, 02:35    [10651275]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
Разницу между 0 и null знаю. В данном же случае не понятно как одним insert внести запись с вышеуказанным условием. По идее должен был работать вариант с 0, но возникает ошибка наруш. целостности. Буду благодарен за подсказку как решить проблему, с работой к сожалению завал и правка программы для работы с БД несколько чужда мне да еще и время ограничено...
14 май 11, 03:31    [10651300]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5975
DolleMaster
Буду благодарен за подсказку как решить проблему

Её уже дали выше:
Гавриленко Сергей Алексеевич
Форум по Delphi рядом.

Если этого недостаточно (и если вы хотите подсказку, а не готовое решение на блюдечке), могу попробовать я: используйте поиск
14 май 11, 04:54    [10651346]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
iljy
Member

Откуда:
Сообщений: 8711
DolleMaster
Разницу между 0 и null знаю. В данном же случае не понятно как одним insert внести запись с вышеуказанным условием. По идее должен был работать вариант с 0, но возникает ошибка наруш. целостности. Буду благодарен за подсказку как решить проблему, с работой к сожалению завал и правка программы для работы с БД несколько чужда мне да еще и время ограничено...

Если знаете разницу - так зачем указываете 0 и откуда это удивление, что с 0 не работает?
14 май 11, 10:00    [10651451]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
uses Variants;
......
dm.StoreDoc.Parameters.ParamValues['@Parent']:=NULL;
14 май 11, 10:39    [10651480]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
DolleMaster
Member

Откуда:
Сообщений: 7
Ошибку в коде нашел сам, все оказалось проще чем думал.
14 май 11, 11:29    [10651561]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
ГраблеИскатель
Guest
DolleMaster,

Это, конечно, замечательно, что вы нашли ошибку, но было бы гораздо лучше если бы написали о её решении.
17 янв 13, 16:36    [13786486]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в создании записи с нулевыми foreign key  [new]
ГраблеЗакапыватель
Guest
ГраблеИскатель,

А еще лучше не поднимать дохлые посты 3-х летней давности без надобности
17 янв 13, 16:41    [13786530]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить