|
|
|
Повторный INSERT
|
|||
|---|---|---|---|
|
#18+
Процесс: на КПК выполняется 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; ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2007, 14:57 |
|
||
|
Повторный INSERT
|
|||
|---|---|---|---|
|
#18+
Эээ... Ключ сурогатный identity? или пара с ест-нным? (я имею ввиду, что можно проверять существование и вместо втавки проводить например обновление или ничего не делать, а тупо возвращать ID новой-существующей записи.) Хотя да если Вы откроете транзакцию с клиенте, а потом коннект протухнет, то она откатится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2007, 09:45 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34793212&tid=1352628]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 320ms |

| 0 / 0 |
