powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Rowset.MoveFirst без повторн. выполнения stored procedure
11 сообщений из 11, страница 1 из 1
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33550665
i2i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i2i
Гость
Привет!
Используется CCommand<CDynamicAccessor>. Проблема в пот что привызове метода MoveFirst() соответсвующая хранимая процедура перезапускается. Посоветуйте, плиз, как бы это избежать этого перезапуска...
(Очень приветсвуются цитаты кода :) )

Большое сасибо!
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33553165
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо не использовать курсоры. И вообще пробегать по набору первый раз и складывать в какой-то массивчик в памяти.

Курсор переделать так чтобы процедура не перевызывалась ты не сможеш.
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33554477
i2i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i2i
Гость
MasterZivИ вообще пробегать по набору первый раз и складывать в какой-то массивчик в памяти.
:))
ну это конечно выход. Но не хочется изобретать велосипед там где этого можно избежать. Неужто средсвами ATL нельзя решить эту задачу?
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33554563
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не использую MFC, но imho такое поведение должно регулироваться с помощью вида курсора
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33554716
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivскладывать в какой-то массивчик в памяти.

Опа! Осталось еще придумать ТЗ, где указано, сколько может
понадобится памяти.
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33556208
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i2i MasterZivИ вообще пробегать по набору первый раз и складывать в какой-то массивчик в памяти.
:))
ну это конечно выход. Но не хочется изобретать велосипед там где этого можно избежать. Неужто средсвами ATL нельзя решить эту задачу?

Это не тот случай. Никакая библиотека тебе не будет наборы данных сохранять. Так что велосипед изобрести придется....
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33571318
i2i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i2i
Гость
Всем привет!
Есть такое чудное своство:DBPROP_IRowsetScroll
Типа оно должно решить проблему (правда ценой серверного курсора).
Все бы хорошо, Но:
Вываливается
[80040e21] OLE DB Errors: 0: Source=Microsoft OLE DB Provider for SQL Server;Description=Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
HRESULT MGBDSRowset::OpenRowset(LONG ulIssuerID)
 
{.....
 
 CDBPropSet propset(DBPROPSET_ROWSET);
 
 propset.AddProperty(DBPROP_IRowsetScroll, true);
 
 hr = Open( *m_pSession, strprocnameID.c_str(),&propset );
 
...
 
}

Как бы это побороть?
Спасибо!
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33571342
i2i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i2i
Гость
MasterZiv
Никакая библиотека тебе не будет наборы данных сохранять...

Вы не находите странным что такая тривиальная (в принципе-то) задача не была решена? :)
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33571721
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"метода MoveFirst() соответсвующая хранимая процедура перезапускается."

"Есть такое чудное своство:DBPROP_IRowsetScroll
Типа оно должно решить проблему (правда ценой серверного курсора)."

Я же написал, нельзя это сделать. Нельзя из хранимой процедуры сделать курсор (только из запроса типа SELECT). Никакой OLEDB, ADO, ODBC, DBLib здесь не поможет. Потому что этого на сервере сделать нельзя.

Можно данные из таблицы запихать во временную (или псевдовременную) таблицу и из нее уже сделать select и тогда оно сможет сделать курсор по вашему набору данных.
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33571729
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i2i
Вы не находите странным что такая тривиальная (в принципе-то) задача не была решена? :)

Это - "неуловимый Джо". Знаете почему его никто еще не поймал ? Вот так и это.
...
Рейтинг: 0 / 0
Rowset.MoveFirst без повторн. выполнения stored procedure
    #33572194
i2i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i2i
Гость
MasterZIv
Спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Rowset.MoveFirst без повторн. выполнения stored procedure
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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