котавасия

brans
Дата: 08.06.2011 17:23:06
Почему при выполнение программно запроса "Insert into Zone VALUES (null,'279',N'АВГУР')" возникает ошибка:
"The INSERT statement conflicted with the FOREIGN KEY constraint "Client_Zone_FK1". The conflict occurred in database "tavl2", table "dbo.Client", column 'ClientId'."

при выполнении того же запроса напрямую, вручную из sms - ошибки не возникает. почему?
brans
Дата: 08.06.2011 17:24:40
хочу заметить, что данные корректны ClientId (279) присутствует в таблице "dbo.Client"
Гавриленко Сергей Алексеевич
Дата: 08.06.2011 17:25:42
brans
Почему при выполнение программно запроса "Insert into Zone VALUES (null,'279',N'АВГУР')" возникает ошибка:
Это в профайлере такая команда?
brans
при выполнении того же запроса напрямую, вручную из sms - ошибки не возникает. почему?
А в студии что именно вы запускате?
Гавриленко Сергей Алексеевич
Дата: 08.06.2011 17:26:26
И, вообще, поля в таблице при вставке надо явно перечислять.
brans
Дата: 08.06.2011 18:43:28
Перечислил поля явно, то же самое.

автор
Это в профайлере такая команда?

А в студии что именно вы запускает?



Это запрос, который я выполняю программно. И он вызывает ошибку. (Конфликт проверки номера клиента) Потом этот же запрос, я копирую и вставляю в SMS ("New query").
Там тот же запрос ошибки не вызывает. Мне не понятно почему и как такое возможно.


автор
И, вообще, поля в таблице при вставке надо явно перечислять.

Перечислил явно. То же самое.
Гавриленко Сергей Алексеевич
Дата: 08.06.2011 18:44:24
Вы не пересказывайте. Вы откройте профайлер, и посмотрите, какой запрос в каждом случае приходит на сервер.
brans
Дата: 08.06.2011 18:45:27
brans,

программно - я имею виду. в коде программы C#. (через System.Data.SqlClient;)
alexeyvg
Дата: 08.06.2011 18:45:51
brans
Перечислил поля явно, то же самое.

автор
Это в профайлере такая команда?

А в студии что именно вы запускает?



Это запрос, который я выполняю программно. И он вызывает ошибку. (Конфликт проверки номера клиента) Потом этот же запрос, я копирую и вставляю в SMS ("New query").
Там тот же запрос ошибки не вызывает. Мне не понятно почему и как такое возможно.
Посмотрите в профайлере, что реально выполняется из приложения. Наверняка там что то типа передачи 0 вместо null или выполнения 2 раза одного запроса.
brans
Дата: 08.06.2011 18:52:19
к сожалению профайлером пользоваться не умею. и база активная. постоянно поступает сотни запросов. рыться в логе проблематично
Гавриленко Сергей Алексеевич
Дата: 08.06.2011 18:53:59
brans
к сожалению профайлером пользоваться не умею.
Пора научиться, значит.
brans
и база активная. постоянно поступает сотни запросов. рыться в логе проблематично
В профайлере есть фильтры.