Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Повторный INSERT / 2 сообщений из 2, страница 1 из 1
16.08.2007, 14:57
    #34732629
denvio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторный INSERT
Процесс: на КПК выполняется cmdSqlServer.ExecuteNonQuery(); на вставку строки в БД
процедура на сервере - простая
begin tran
...
insert ...
...
if <условие> commit tran
if <условие> rollback tran

Проблема в том, что когда на кпк выполняется cmdSqlServer.ExecuteNonQuery(); в этот момент прерывается связь с сервером SqlException.Number = 4060 или = 6 или = 11
При этом в таблицу могут вставиться 2 записи. Т.е. получается что с кпк вызвали два раза
cmdSqlServer.ExecuteNonQuery();
Как с этим бороться?
Может попробовать использовать транзакцию в SQLCommand? Поможет ли это?
...
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;

transaction = connection.BeginTransaction("SampleTransaction");

command.Connection = connection;
command.Transaction = transaction;
...
...
Рейтинг: 0 / 0
12.09.2007, 09:45
    #34793212
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторный INSERT
Эээ... Ключ сурогатный identity? или пара с ест-нным? (я имею ввиду, что можно проверять существование и вместо втавки проводить например обновление или ничего не делать, а тупо возвращать ID новой-существующей записи.)
Хотя да если Вы откроете транзакцию с клиенте, а потом коннект протухнет, то она откатится :)
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Повторный INSERT / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]