Vlad Khorsun пишет:


>>а потом и FreeIBComponents, и IBX/FIBPlus
убивают кэш в датасетах,

>>т.е. "закрывают запросы".
Ну... запрос закрыть это один вопрос. Второй вопрос это кэш в датасетах. Запрос закрыть необходимо. Он просто перестает быть валидным при закрытии транзакции в рамках которой был открыт. Что собственно и понятно.

   А при чём тут мои локальные, с таким трудом отфетченные, данные ?

Дык включаем CachedUpdates и можем вообще коннект обрубить не то что транзакцию закрыть. :) С трудом отфетченные данные остаются на месте.
Хочешь - обсудм еще раз.

Как скажешь ;) Скажу сразу - это камень не в твой огород, а скорее в огород
Грегори

Мой огород давно не боится камней. :)

Недофетченный запрос, чего с ним делать при закрытии транзакции?

   А что - надо что-то делать ?

Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять недофетченным тоже плохо.

   Чем ? Тем что бедненький кодер испугается ошибки, которую выдаст
злобный сервер при попытке фетча из закрытого курсора ? Ай, как его жалко....
Мне больше жалко не его, а себя обычно. :)


Оба варианта плохи еще тем что девелопер вообще может не заметить, что что-то делается без его ведома.

   А вот не надо ничего делать без его ведома. Не надо. Это так просто :)
Это идеал. Недостижимый. Но по крайней мере если что-то делаешь без его ведома, нужно чтоб он сразу же видел что произошло и собственно понял причину по которой это произошло. Закрыть кэш - это как раз из этой серии. Сразу же и всегда видно, причина выясняется немедленно.


Проблема вообще может всплыть, когда девелопер прогу юзеру отдал. Посему датасет и закрываем, уж этого-то не заметить нельзя, так что девелопер вынужден решать сию проблему вовремя... а не тогда когда она вдруг всплывет.

   Конечно - мы же лучше знаем, что девелоперу нужно на самом деле...

Девелоперу нужно чтоб он мог реализовать свои собственные извращения и ему хватало для этого средств.


Конкретно эту проблему считаю высосанной их пальца
Я тоже. По причине того что проблема сразу видна и легко решается одним из трех способов.

и навязанной  множеству
кодеров, которые просто слепо верят в инструмент и не задумываются причинах.

ЗЫ. Кстати в FIBPlus ( а может и в ИБХ) если датасет в режиме CachedUpdates то при закрытии транзакции, датасет все-таки не закрывается, а дофетчивается.

Меня это всё не волнует лет этак 8-9 - с тех пор как я пользую CDS и не имею
проблем с нижележащими уровнями вообще :)

Я про себя скажу просто. Что бы я не делал в этой ситуации - меня все равно будут бить. :) Или за то что закрываю кэш, или за то что вдруг эксепшны выскакивают, или что дофетчиваю или что не дофетчиваю. Собственно разницы никакой, бить все равно будут, не одни так другие. :) Поэтому все остается как есть. По крайней мере выходы из ситуации отработаны и как отгавкиваться я тоже знаю, да и "проблема" давно уже никому не мешает. :)


Удачи

Ответить