|
|
|
Подскажите с LocalView
|
|||
|---|---|---|---|
|
#18+
Всем Привет! Подскажите что я делаю не так. В БД есть LocalView, на одной форме она открывается под алиас1, а на другой форме под алиас2 и буферизируются (5). Почему после команды TABLEUPDATE() для алиас1 все ее изменения отображаются на алиас2. Хотя для алиас2 никаких REQUERY() не делалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 15:28 |
|
||
|
Подскажите с LocalView
|
|||
|---|---|---|---|
|
#18+
Была подобная проблема. Долго искал. Оказалось, что одна форма самопроизвольно(!) меняет в процессе работы свой режим буферизации. В коде активации формы воостанавливал нужные зачения буферизации. Или можно сделать Private DataSession для форм. Не обязательно, конечно. Но зато эту версию сразу легко отсечь проверкой режима буферизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 15:41 |
|
||
|
Подскажите с LocalView
|
|||
|---|---|---|---|
|
#18+
Пардон. Я работал не с представлениями, а с таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2007, 15:44 |
|
||
|
Подскажите с LocalView
|
|||
|---|---|---|---|
|
#18+
Вариант с Privat DataSession наверно бы помог, но у меня есть необходимость работать в одной сессии. Непонятность какая-то или настройка, которую я не учитываю, потому как получается, что буффер одного из курсоров скидывается не только во вьюху, но и в буфферы других курсоров, источником для которых она является. Хотя все курсоры буфферизированы (5). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 16:58 |
|
||
|
Подскажите с LocalView
|
|||
|---|---|---|---|
|
#18+
Буфер - это то, что возникает в момент внесения изменений. Причем буфер - это не есть копия исходных данных. Буфер - это только и исключительно измененные данные. Грубо говоря, наложение буфера - это наложение прозрачной кальки на лист бумаги. Изменения попадают не на собственно лист бумаги, а на эту прозрачную кальку. Если в другой рабочей области внесли изменения в собственно исходные данные (собственно на лист), то, естесственно, если поверх этих данных нет буфера (нет изменений на кальке), то в другой рабочей области эти изменения отобразятся. Другими словами, в данном случае, исходными данными (листом бумаги) для обоих копий View оказалась одна и та же временная таблица. Какая именно можно посмотреть через команду Код: plaintext Дело в том, что по умолчанию, открытие как таблиц, так и Local View происходит с использованием опции AGAIN. Командой вроде Код: plaintext Так вот, опция AGAIN как раз и говорит о том, что надо не заново выполнить Local View в новую временную таблицу, а использовать ранее открытую временную таблицу. Вам надо исключить Local View из DataEnvironment одной из форм и открывать его вручную командой USE без опции AGAIN. Можно в событии Form.Load(). Также вручную придется и закрывать это Local View при закрытии формы. Хотя, более грамотным решением было бы выполнение каждой формы в Private DataSession. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 17:32 |
|
||
|
Подскажите с LocalView
|
|||
|---|---|---|---|
|
#18+
Спасибо ВладимирМ за информацию, что то я действительно с источниками для вьюх тормознул. Что касается использования Private DataSession, то в моем случае это не подходит (так как для ее использования прийдется много чего переписать). Поэтому для обхода этой ситуации я просто добавил в базу еще один LocalView, теперь каждая форма использует свою вьюху. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2007, 14:49 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34935800&tid=1588529]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 527ms |

| 0 / 0 |
