|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Добрый день! Друзья, кто-нибудь поможет объяснить такую странность (возможно закономерность) при работе с временной таблицей MS SQL из VBA? Окрыл Connection, создал врем.таблицу #t, В процессе работы я успешно к ней обращаюсь, изменяю в некоторые данные, но стоит только открыть рекордсет, как сразу все! Обратиться к ней уже не могу, пока его не закрою Код: 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. 28. 29. 30. 31. 32.
Что за засада? Может кто знает, как ее победить? Заранее благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 01:17 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Maximusu, не уверен, но попробуйте поиграться типами курсора как вариант установите явно CursorType в adOpenKeyset ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 07:09 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Временная таблица существует только в пределах коннекшена. А ADO использует пуллинг. Когда ты открываешь рекордсет - неявно используется другой коннекшен. Можешь проверить - у них разные SPID. Как альтернативу можно использовать CN.Execute - будет выполняться в одном коннекшене ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 08:44 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Shocker.Pro, Ммм.. Про существование времянок только в рамках одного connection я знал. Но уж вот бы никогда не подумал, что передавая рекордсету конкретное подключение, тот все равно открывает новое. Видимо использует переданное подключение просто для клонирования настроек. Спасибо, попробую через комманду ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 09:09 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Немного не так. Клиент MSSQL не умеет выполнять что-либо еще, если есть открытый недофетченный набор данных в сессии. Таким образом, если открыт рекордсет и не весь набор выбран на клиента, в текущей сессии ничего сделать нельзя. Для обхода этой ситуации ADO неявно открывает дополнительное соединение (и временные таблицы основной сессии там уже недоступны). Чтобы такого не было, сразу после открытия рекордсета сразу фетчте весь набор данных до конца. Тогда текущая сессия будет доступна для других запросов, и ADO не откроет неявную дополнительную сессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 12:00 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
ziktuw, А как такой вариант, чтобы создать глобальную времянку ##t ? Какие минусы, если учесть, что с данной базой никто не работает кроме 1 человека. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 15:09 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Да, в общем-то, никаких Я вообще отказался от использования временных таблиц, использовал постоянную и записывал туда данные с неким идентификатором для выборки (это может быть и SPID и ИД пользователя и GUID) - все от обстоятельств зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 15:20 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Просто постоянная мало чем будет отличаться от глобальной временной, плюс не надо морочиться проверкой и созданием самой таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 15:22 |
|
Подключение к MS SQL из VBA странности с временной таблицей
|
|||
---|---|---|---|
#18+
Shocker.ProДа, в общем-то, никаких Я вообще отказался от использования временных таблиц, использовал постоянную и записывал туда данные с неким идентификатором для выборки (это может быть и SPID и ИД пользователя и GUID) - все от обстоятельств зависит. Ну я ведь правильно понимаю, что глобальная никуда уже не денется пока я ее не дропну? ... Или пока все пользователи не отключаться от сервера. Пользователь один значит то что нужно? И правильно я понимаю, что мою проблему это вылечит? Процедура ее создания и уничтожения ничем не отличается от локальной? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 15:35 |
|
|
start [/forum/topic.php?fid=60&fpage=15&tid=2155271]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 302ms |
total: | 422ms |
0 / 0 |