|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
Доброго времени суток. Разбираюсь с чужими довольно старыми отчетами, связка VBA + ADO(MS SQL). При работе программы, используется перемещение по рекордсету вперед и назад, для чего у рекордсета при создании ставится cursortype =adOpenStatic. Работает это до тех пор, пока хранимка на MS SQL состоит из одного гигантского запроса, если разбить на несколько запросов, или использовать например CTE, то после выполнения хранимки cursortype меняется на adOpenForwardOnly и делает невозможным перемещение по курсору назад вызывая ошибку (DB_E_CANTFETCHBACKWARDS, Набор строк не поддерживает обратную выборку). Естественно, при разбивке запроса на подзапросы, я ставлю set nocount on. Вопрос - можно ли избавится от необходимости делать весь расчет в одном большом запросе, чтобы тип курсора не менялся на adOpenForwardOnly? P.S. Может вопрос более уместен бы был в разделе про ADO.Net, EF .... Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2015, 09:55 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
denis_viktorovich, Насколько мне позволяет судить личный опыт, то Ваш вопрос никаким образом не соотносится к ADO.NET и EF, и должен быть перенесен в ветку MS Access. Там Вам быстро помогут. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 11:53 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
Скорее к нам в VB/VBA, вероятно все-таки используется ADO, а не ADO.NET А с местоположением курсора adUseClient/adUseServer играли? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 12:00 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
Axelerondenis_viktorovich, Насколько мне позволяет судить личный опыт, то Ваш вопрос никаким образом не соотносится к ADO.NET и EF, и должен быть перенесен в ветку MS Access. Там Вам быстро помогут. Возможно Вы правы, правда макрос VBA функционирует в книге MS Excel, а хранимка возвращающая рекордсет выполняется на сервере MS SQL 2008. Проблему с ходу (некрасиво правда) решил тем, что внес свои изменения, добавлением подзапросов в этот большой запрос, не разбивая на несколько запросов с времянками и не юзая CTE. Интересно просто почему так, и есть ли стандартный способ обойти это. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 12:31 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
Shocker.ProСкорее к нам в VB/VBA, вероятно все-таки используется ADO, а не ADO.NET А с местоположением курсора adUseClient/adUseServer играли? Да, ADO, не ADO.Net, почему я сразу и не запостил сюда. Про CursorLocation - спасибо за идею, попробую поиграться. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 12:36 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
denis_viktorovich, может гуглить по словам disconnected recordset? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 12:36 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
я думаю, клиентский курсор решит проблему. Еще вариант, юзать в хранимках что угодно, а результат сложить во временную таблицу. А в конце вернуть клиенту простой SELECT * из времянки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 12:39 |
|
Вопрос по ADO и MS SQL, изменяется CursorType после выполнения хранимой процедуры.
|
|||
---|---|---|---|
#18+
denis_viktorovichмакрос VBA функционирует в книге MS Excelна будущее - это в http://www.sql.ru/forum/ms-office ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2015, 12:40 |
|
|
start [/forum/topic.php?fid=17&msg=39100534&tid=1349469]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
193ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 306ms |
0 / 0 |