Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Ну не знаю я как коротко проблему обозвать, ADO.Net короче  [new]
alreves
Member

Откуда: Город корабелов.
Сообщений: 157
Начну по порядку.
В БД на сервере храниться таблица пациентов. Пациенты имеют набор атрибутов (id, seria, num, strah). Пара seria, num - уникальна.
Список пациентов пополняется как вручную, так и из таблиц присылаемых страховыми компаниями.
Некоторые страховщики правильные, и присылают свои базы, в которых для записи присутствует атрибут: страховщик. Некоторые компании присылают как захочется.
Инструмент для работы с базами: С# + ADO.Net!
При загрузке записей из баз страховых компаний над своей базой необходимо выполнить ряд действий: добавить новые записи, обновить/удалить имеющиеся.
Естественно для обновления выбираю записи принадлежащие только одному страховщику, с внешней базой которого работаю.
Проверяю свои записи и записи страховщика, отсутсвующие у меня добавляю. И вот тут начинается заморочка: если в моей базе этот пациент был занесён вручную, но страховщик был указан ошибочно, то начинается бага: пациент не был выбран в результате первоначального запроса с отбором по страховщику, значит обработчик посчитает, что в базе его нету и соответственно добавит, как нового. При физической записи данных в базу возникнет ошибка [violation of PRIMARY or UNIQUE KEY constraint], это естественно, ведь пара seria, num - уникальна.
Вот она прелесть ADO.Net.
Господа, кто-нибудь, подскажет решение проблемы, отбирать все записи очень не хочеться, их там примерно 2 млн., как-то многовато.
12 сен 06, 15:50    [3125135]     Ответить | Цитировать Сообщить модератору
 Re: Ну не знаю я как коротко проблему обозвать, ADO.Net короче  [new]
Лиман Артём
Member

Откуда: УКРАИНА, г.Львов -> Дойчлянд, Хайдельберг
Сообщений: 2051

только причём тут Ado.Net понятия не имею.
проблема я так понимаю со стороны БД - вот там её и надо решать.


Posted via ActualForum NNTP Server 1.3

12 сен 06, 16:11    [3125279]     Ответить | Цитировать Сообщить модератору
 Re: Ну не знаю я как коротко проблему обозвать, ADO.Net короче  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
интересно, почему вы обвиняете во всем этом совем геморе ADO.NET?!
покажите технологию, где проблема бы не возникла

в команде на вставку сделайте проверку наличия этой записи, если есть - то просто меняйте страховщика
примерно такая процедура должна быть

cretae procedure ins_p  @seria, @numm, @strah
as
if exists (select * from yourTable where seria = @seria and numm = @numm)
begin
update yourTable set strah = @strah where seria = @seria and numm = @numm
end
else
insert into yourTable (seria, numm, strah) values (@seria, @numm @strah)
end

и нафиг вам id в таблице?
12 сен 06, 16:15    [3125294]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить