|
Двойное обращение к хранимке на MS SQL сервере. Это лечится...
|
|||
---|---|---|---|
#18+
Тут описание косяка Акцесса. Двойное обращение к хранимке на MS SQL сервере. В конце описан обход этой проблемы. Для воспроизведения: Особенности Акцесса 'пример, демонстрирующий, что открытие рекордсета с запросом в виде "SELECT .. FROM sql_запрос", который обращается к хранимой процедуре, вызовет эту хранимку ДВАЖДЫ 'Возможно, что аналогично происходит не только с обращением к хранимке, но и с любым SELECT`ом 'В приведенном примере после каждого вызова в таблицу добавляется 2 записи, хотя в хранимке происходит добавление только одной записи 'При этом вывод результатов происходит именно для результата первого запуска хранимки, а не второго. На MS SQL сервере выполняем 1.Создаем таблицу Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
2. Создаем хранимку Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
3. В базе Акцесс создаем процедуру обновления sql-запроса Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
4. В БД Акцесс создаем процедуры для теста Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
и Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 09:18 |
|
Двойное обращение к хранимке на MS SQL сервере. Это лечится...
|
|||
---|---|---|---|
#18+
Диам, Так не обязательно открывать рекордсет, чтобы выполнить хранимку. Можно просто передать параметры в хранимку ( при необходимости) и выполнить execute её. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 17:57 |
|
Двойное обращение к хранимке на MS SQL сервере. Это лечится...
|
|||
---|---|---|---|
#18+
Сергей Лалов Диам, Так не обязательно открывать рекордсет, чтобы выполнить хранимку. Можно просто передать параметры в хранимку ( при необходимости) и выполнить execute её. А как вы хотите получить обратно результат? Приведите пример. Если что - я про accde или mde говорю. Не про adp ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 19:14 |
|
|
start [/forum/topic.php?fid=45&msg=39969588&tid=1610053]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 170ms |
0 / 0 |