|
|
|
Объясните поведение зыкрытых view
|
|||
|---|---|---|---|
|
#18+
Значит порядок такой : В классе приложения отрывается база OPEN DATABASE (This.cDataBase) SHARED никакие таблицы не используются и их view тоже Далее запускается любая форма с private DE в loade которой делаем USE view таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Потом в каком-нибудь init объекта происходит вызов метода класса сохранения восстановления настроек объекта, в котором делается USE другого view Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Далее закрываем форму в событии destroy Код: plaintext 1. 2. 3. 4. 5. 6. Теперь при вызове этой процедуры упаковки Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Ругается на строчку USE (laTables[m.i]) IN 0 EXCLUSIVE Файл уже используется Но как же так aused(gg) в debugere показывает 0 до начала цикла Где что открыто если я делаю close tables all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 17:32 |
|
||
|
Объясните поведение зыкрытых view
|
|||
|---|---|---|---|
|
#18+
Попутал немного private DataSession ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 17:34 |
|
||
|
Объясните поведение зыкрытых view
|
|||
|---|---|---|---|
|
#18+
Вылечил так в момент закрытия view закрывал и таблицу Код: plaintext 1. 2. 3. 4. Но мне все равно интересно почему fox говорил что файл используется если было принудительное close tables all Т.е получается что хоть в момент загрузки формы делается USE view то в закрытии нужно еще делать use in исходной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 08:49 |
|
||
|
Объясните поведение зыкрытых view
|
|||
|---|---|---|---|
|
#18+
Все дело в том, что команды типа CLOSE DATABASE CLOSE TABLES действуют в пределах ОДНОЙ (текущей) DataSession. На таблицы и базы данных, открытые в других DataSession они не распространяются. А у тебя форма работает именно в Private DataSession. Т.е. именно в другой сессии. При этом, если в другой DataSession открыты таблицы какой-либо базы данных, то команда Close DataBase не закроет базу данных, а всего-лишь сделает ее не активной. Т.е. сработает как команда SET DATABASE TO В случае, если база данных уже открыта, команда OPEN DATABASE MyBase Не откроет ранее открытую базу данных, а просто сделает ее текущей. Т.е. сработает как команда SET DATABASE TO MyBase Опция EXCLUSIVE будет проигнорирована, поскольку переоткрытия контейнера базы данных не произойдет. Любая команда Select-SQL (Local View, по сути, и есть команда Select-SQL) автоматически открывает таблицы-источники. В принципе, чтобы не отслеживать самостоятельно открытие/закрытие таблиц достаточно просто включить их в DataEnvironment формы и оставить в значении по умолчанию свойства DataEnvironment AutoOpen Tables = .T. AutoOpen Close = .T. Local View также можно включить в DataEnvironment. Для Private DataSession это будет означать, что таблицы автоматически откроются при открытии формы и также автоматически закроются при закрытии. Ничего специально отслеживать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:36 |
|
||
|
Объясните поведение зыкрытых view
|
|||
|---|---|---|---|
|
#18+
Я сознательно ничего не помещаю в DE, здесь где-то читал что и не рекомендуется лучше некоторые делать самостоятельно в соответствующих методах и событиях чтобы не полагаться на срабатывание всяких auto про DataSession понятно Danke Alles Gut ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 11:44 |
|
||
|
Объясните поведение зыкрытых view
|
|||
|---|---|---|---|
|
#18+
332_j0hnЯ сознательно ничего не помещаю в DE, здесь где-то читал что и не рекомендуется лучше некоторые делать самостоятельно в соответствующих методах и событиях чтобы не полагаться на срабатывание всяких auto Зависит от конкретной задачи. Для достаточно большого круга задача - это вполне нормальный механизм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 11:52 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33636902&tid=1592007]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 465ms |

| 0 / 0 |
