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

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

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

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

Это не тот случай. Никакая библиотека тебе не будет наборы данных сохранять. Так что велосипед изобрести придется....
...
Рейтинг: 0 / 0
28.02.2006, 16:06
    #33571318
i2i
i2i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Rowset.MoveFirst без повторн. выполнения stored procedure
Всем привет!
Есть такое чудное своство: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
28.02.2006, 16:10
    #33571342
i2i
i2i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Rowset.MoveFirst без повторн. выполнения stored procedure
MasterZiv
Никакая библиотека тебе не будет наборы данных сохранять...

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

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

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

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

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


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