:: Архив конференции по VFP до 2005 года
BufferMode - какую выбрать?
IgorDokukin
Автор

Сообщений: 21
Дата регистрации: 21.02.2005
Привет всем.
Прошу подскажите какую лучше выбирать буфферизацию? Аптимистическую или писсемистическую.
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Вопрос поставлен некорректно. Надо исходить не из того, что лучше, а что требуется для конкретной задачи.

Впрочем, лично я считаю, что идеологически более "правильным" является использование оптимистической буферизации. Если когда-нибудь в будущем, будешь переходить на клиент-серверные технологии, будет меньше "ломки" и непонимания самой идеологии работы.
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
IgorDokukin
Автор

Сообщений: 21
Дата регистрации: 21.02.2005
Есть задачка - редактирует базу данных. Как правильно сделать откат (вернуть старое значение) после редактирования.
Используется прямое редактирование полей. Краем уха я слышал что надо использовать буфферизацию.
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Почитай статьи во вложенном файле
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
IgorDokukin
Автор

Сообщений: 21
Дата регистрации: 21.02.2005
Благодарю! Помогло.
Если можно - еще один вопросик.
Есть форма с приватной сессией. Установлена связь основной базы со справочником по идентификатору (лог.номеру в справочнике). Основная база содержит поле с лог. номером из справочника.
В текстбоксах выводятся поля из связаного справочника.
Для изменения основной базы (выбора другого значения из справочника) - вызываю другую форму тоже с приватной сессией
где есть 2 базы (основная и сам справочник) связь уже не устанавливаю. Далее... Меняю в основной базе, новым значением из справочника, код в поле. И выхожу из формы. В первой базе текстбоксы не обновляются даже после рефреша формы. Смотрю в саму основную базу - да, новое значение присвоено. Такое впечатление что среда данных не обновлена а база физически обновлена? Что это может быть?
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Ты повнимательнее приведенные статьи почитай. Особенно то, что написал Игорь Королев при систему буферов как в ОС, так и собственно в FoxPro.

При работе в 2-х формах, каждая из которых имеет Private DataSession, изменения сделанные в одной форме станут "видны" в другой не сразу, а с некоторой задержкой. Время этой задержки, до некоторой степени, регилируется вторым параметром в настройке SET REFRESH и по умолчанию составляет 5 секунд.

В идеале, при возврате к первой форме надо делать не Refresh(), а по новой обратиться к исходным таблицам. Т.е. "по полной программе" сделать поиск нужных записей по SEEK() или Select-SQL.
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, IgorDokukin!

1) Я бы не стал "менять" что-то в форме "выбора из справочника" - там лишь
собственно выбор делается, а его результат (т.е. код/PK из справочника)
передаётся в точку вызова. Там же и производится "замена". Если я правильно
понял твою схему конечно
2) Если ты используешь Relation (что есть не очень хорошо - мне ближе Local
View для отображения связанных данных), то для "обновления" связи нужно
"дёрнуть" указатель записи в главной таблице - без этого "новые подчинённые"
не появятся.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
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

**************
не работает
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, IgorDokukin!

Перечитай совет 1 и сделай так как там написано. Т.е. НЕ делай REPLACE ВО
второй форме! Передай что там выбрано (код из справочника) в первую и уж там
и делай REPLACE.

p.s. Работать предпочтительно не по RECNO() а по кодам (т.е. первичным
ключам) записей.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: BufferMode - какую выбрать?
IgorDokukin
Автор

Сообщений: 21
Дата регистрации: 21.02.2005
Ясно.
а как лучше вернуть значение при выходе из формы?

Еще вопросик можно?

Какие средства в Visual Fox 8 гарантируют сохранность данных в таблицах после отключения питания компа.
Может ли это грарнтировать использование буфферизации или необходимо что то еще?

Спасибо
Ratings: 0 negative/0 positive


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

On-line: 6 (Гостей: 6)

© 2000-2024 Fox Club 
Яндекс.Метрика