BufferMode - какую выбрать? | |
---|---|
IgorDokukin Автор Сообщений: 21 Дата регистрации: 21.02.2005 |
Привет всем.
Прошу подскажите какую лучше выбирать буфферизацию? Аптимистическую или писсемистическую. |
Re: BufferMode - какую выбрать? | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Вопрос поставлен некорректно. Надо исходить не из того, что лучше, а что требуется для конкретной задачи.
Впрочем, лично я считаю, что идеологически более "правильным" является использование оптимистической буферизации. Если когда-нибудь в будущем, будешь переходить на клиент-серверные технологии, будет меньше "ломки" и непонимания самой идеологии работы. |
Re: BufferMode - какую выбрать? | |
---|---|
IgorDokukin Автор Сообщений: 21 Дата регистрации: 21.02.2005 |
Есть задачка - редактирует базу данных. Как правильно сделать откат (вернуть старое значение) после редактирования.
Используется прямое редактирование полей. Краем уха я слышал что надо использовать буфферизацию. |
Re: BufferMode - какую выбрать? | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Почитай статьи во вложенном файле
|
Re: BufferMode - какую выбрать? | |
---|---|
IgorDokukin Автор Сообщений: 21 Дата регистрации: 21.02.2005 |
Благодарю! Помогло.
Если можно - еще один вопросик. Есть форма с приватной сессией. Установлена связь основной базы со справочником по идентификатору (лог.номеру в справочнике). Основная база содержит поле с лог. номером из справочника. В текстбоксах выводятся поля из связаного справочника. Для изменения основной базы (выбора другого значения из справочника) - вызываю другую форму тоже с приватной сессией где есть 2 базы (основная и сам справочник) связь уже не устанавливаю. Далее... Меняю в основной базе, новым значением из справочника, код в поле. И выхожу из формы. В первой базе текстбоксы не обновляются даже после рефреша формы. Смотрю в саму основную базу - да, новое значение присвоено. Такое впечатление что среда данных не обновлена а база физически обновлена? Что это может быть? |
Re: BufferMode - какую выбрать? | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Ты повнимательнее приведенные статьи почитай. Особенно то, что написал Игорь Королев при систему буферов как в ОС, так и собственно в FoxPro.
При работе в 2-х формах, каждая из которых имеет Private DataSession, изменения сделанные в одной форме станут "видны" в другой не сразу, а с некоторой задержкой. Время этой задержки, до некоторой степени, регилируется вторым параметром в настройке SET REFRESH и по умолчанию составляет 5 секунд. В идеале, при возврате к первой форме надо делать не Refresh(), а по новой обратиться к исходным таблицам. Т.е. "по полной программе" сделать поиск нужных записей по SEEK() или Select-SQL. |
Re: BufferMode - какую выбрать? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, IgorDokukin!
1) Я бы не стал "менять" что-то в форме "выбора из справочника" - там лишь собственно выбор делается, а его результат (т.е. код/PK из справочника) передаётся в точку вызова. Там же и производится "замена". Если я правильно понял твою схему конечно 2) Если ты используешь Relation (что есть не очень хорошо - мне ближе Local View для отображения связанных данных), то для "обновления" связи нужно "дёрнуть" указатель записи в главной таблице - без этого "новые подчинённые" не появятся. ------------------ WBR, Igor |
Re: BufferMode - какую выбрать? | |
---|---|
IgorDokukin Автор Сообщений: 21 Дата регистрации: 21.02.2005 |
Извени, не заметил в списке продолжения разговора и задал вопрос опять.
Решил оставить все в датасессии по умолчанию - все работает. Но всеже так и не справился с обновлением используя приватную датасессию. При выходе из формы справочника после изменения в основной базе идентификатора делаю _Tec_rec=Thisform._tek_rec && от RECNO() DO FORM fotvet WITH _Tec_rec && Для позиционирование на запись основной базы в форме 2 * Во второй, Repl в основной базе идентификатор по справочнику (использую 5 буфферизацию) * и tableup(.T.) SYS(1104) SELECT DOCS && Основная база GO TOP GO (_Tec_rec) ThisForm.Refresh ************** не работает |
Re: BufferMode - какую выбрать? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, IgorDokukin!
Перечитай совет 1 и сделай так как там написано. Т.е. НЕ делай REPLACE ВО второй форме! Передай что там выбрано (код из справочника) в первую и уж там и делай REPLACE. p.s. Работать предпочтительно не по RECNO() а по кодам (т.е. первичным ключам) записей. ------------------ WBR, Igor |
Re: BufferMode - какую выбрать? | |
---|---|
IgorDokukin Автор Сообщений: 21 Дата регистрации: 21.02.2005 |
Ясно.
а как лучше вернуть значение при выходе из формы? Еще вопросик можно? Какие средства в Visual Fox 8 гарантируют сохранность данных в таблицах после отключения питания компа. Может ли это грарнтировать использование буфферизации или необходимо что то еще? Спасибо |
© 2000-2024 Fox Club  |