powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как работают курсоры??
7 сообщений из 7, страница 1 из 1
Как работают курсоры??
    #36463504
heavenmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый. А вы не подскажете почему создание и комит транзакции приводит к завершению внешнего курсора??

Create DBA Procedure "informix".test2();

Define fSerno SmallInt;

set debug file to "c:\temp\test2.txt";
trace on;

ForEach
select serno into fSerno
from services
trace fSerno;

Begin Work;
Commit Work;

End ForEach;

End Procedure;

Вот этот селект возвращает 3 строки

select serno into fSerno
from services

А курсор выполняется только 1 раз - вопрос почему?
...
Рейтинг: 0 / 0
Как работают курсоры??
    #36463553
heavenmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как работают курсоры??
    #36463617
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Транзакция внутри курсора закрывает курсор. Чтобы этого не происходило, надо вызывать курсор с опцией WITH HOLD.

С уважением,
Виктор
...
Рейтинг: 0 / 0
Как работают курсоры??
    #36463647
heavenmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я уже понял. Не понятно лишь зачем?
...
Рейтинг: 0 / 0
Как работают курсоры??
    #36463829
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavenmasterДа я уже понял. Не понятно лишь зачем?
я тоже нарвался (давным давно)...

Для себя считай, что "исторически сложилось"
Когда кто-то решил, что так надо - и только так (впал в крайность по неизвестным мотивам).
Позже одумался (или надоумили), что и вторая религия имеет право на существование...
Но сторонникам новой религии всё равно как молиться, зачем же переучивать старых...
Вот и осталось по умолчанию старое (неудобно).
А таким как мы с тобою - просто тщательнее нужно читать документацию. Там иногда кроме таки мелочей и новые (приятные) вещи попадаются :)
...
Рейтинг: 0 / 0
Как работают курсоры??
    #36464444
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойheavenmasterДа я уже понял. Не понятно лишь зачем?
я тоже нарвался (давным давно)...
Для себя считай, что "исторически сложилось"
Когда кто-то решил, что так надо - и только так (впал в крайность по неизвестным мотивам).

Ну почему же "крайность". Завершение транзакции подразумевает некое завершение определенного объема работ (пакета), связанных с изменениями данных, а значит и освобождением ресурсов, которые были до этого задействованы. Особенно учитывая блокировки, которые в многопользовательской среде могут причинять много неудобств, а также учитывая культуру программистов, которые "забывают" закрывать курсоры и не только :)
Разве никогда не приходилось расследовать ситуации, что приложение постоянно разрастается в памяти, плодятся блокировкии т.п. ?
А тут все автоматом - раз и подчистили за программистом :)
Не нужно закрывать - примени другую конструкцию курсора, в чем проблема ?
АнатоЛой
Позже одумался (или надоумили), что и вторая религия имеет право на существование...
Но сторонникам новой религии всё равно как молиться, зачем же переучивать старых...
Вот и осталось по умолчанию старое (неудобно).
Так обычно всегда и делается, иначе сколько старого софта бы заглючило....
АнатоЛойА таким как мы с тобою - просто тщательнее нужно читать документацию. Там иногда кроме таки мелочей и новые (приятные) вещи попадаются :)
...
Рейтинг: 0 / 0
Как работают курсоры??
    #36469193
heavenmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, видимо всё так и есть. Спасибо.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как работают курсоры??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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