03.07.2007, 16:55 | #1 |
Участник
|
Мне интересно это только у меня такие странности или еще кто с ними сталкивался.
1.Имеем 2 базы одинаковые. Одна рабочая, другая - тестить вносимые изменения. Если в объект типа таблицы вносить какие-либо изменения (добавить поля + написать/изменить тригерры), то: при импорте этого объекта в базу система предалагает Merge: Existing<-New и в результате такого слияния бывает, что либо поля не добавляются, либо триггеры остаются от старой версии. Помогает только ручной выбор Replace 2.Второй глюк бывает что изменишь какой-то объект, к примеру отчет или форму. И даже если ты ее перезапускаешь, то изменений не видно. Помогает только закрыть/открыть базу. Такое чувство, что старая копия объекта продолжает браться из какого-то кэша. 3.Компилятор тоже доставляет порой головную боль. Если какая-то процедура вызывается из тригера и ты одновременно подправишь процедуру (добавишь еще 1 параметр к примеру) и вызовы этой процедуры в триггере, то при компиляции будет выскакивать ошибка (если рассматривать данный пример, то будет ругаться что неправильное число параметров функции). Тобишь опять такое чувство что он пытается не весь сходник перекомпилировать, а только измененые триггеры/функции. И зачастую просто напросто приходится поэтапно вносить изменения и компилить. Как со всем этим бороться? |
|
03.07.2007, 17:19 | #2 |
Участник
|
1. По обновлению все действительно так. То что механизм не совершенный никто спорить не будет.
2. Дак так и есть. Запущеные однажды объекты далее загружаются из кэша. Читайте документацию. 3. Здесь уже навыки нужны и последовательность действий. Если вы запустили объект на модификацию, те объекты которые используются в коде будут представлены первоначальной версией. Возможно это вам покажется неудобным, но поверьте это быстро проходит.
__________________
Want to believe... |
|
03.07.2007, 22:27 | #3 |
Участник
|
2. Можно в опциях Object Cache = 0 поставить.
|
|
04.07.2007, 09:41 | #4 |
Участник
|
1. Не надо использовать Merge при ипорте таблиц ни в каком виде. Исключительно Replace, либо руками.
2. Не совсем так. Если вы поправили репорт, таблицу или форму на своей машине и после этого запускаете эти объекты то проблем в 95% случаев нет. Иногда, некоторые объекты действительно берутся старые тогда да, надо переоткрыть базу. Если же пользователь окрывает объект на другой машине то ВСЕГДА необходимо переоткрыть базу. 3. Не совсем понял Вы одновременно отредактировали и триггер и саму процедуру? В одной таблице? И пытаетесь сохранить? Ну дак никаких проблем быть не должно. Или я не так понял? В общем, бороться со всем этим не надо-так оно работает. Мне лично никаких проблем не доставляет. |
|
04.07.2007, 15:22 | #5 |
Участник
|
2 rov
Цитата:
3. Не совсем понял Вы одновременно отредактировали и триггер и саму процедуру? В одной таблице?
И пытаетесь сохранить? Ну дак никаких проблем быть не должно. Или я не так понял? |
|