Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Метода проверки "на дураков". Может и глупо, но все же любопытно. / 14 сообщений из 14, страница 1 из 1
26.09.2006, 10:02
    #34011732
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Эпиграф ( томным трепещущим голосом ):
- Ах, я вся такая непредсказуемая... Я вся такая изменчивая...
х/ф "Покровские ворота" )))))

Леди и джентльмены!
Простите уж за нестоль важный и несколько странный вопрос.
Я в отпуске ездила в один городок в Ленинградской области. И вышло так, что познакомилась с одной барышней-аспиранткой, которая подрабатывает в отделе культуры и довольно сносно (на мой взгляд) владеет Фоксом. Барышней разрабатывается проект (немного громко сказано) для библиотеки. Меня поразила у нее одна деталь.
Я в клике кнопки ОК, по которому происходит добавление или редактирование записей, обязательно делаю "защиту от дураков". Метода такая (пример):
Код: plaintext
1.
2.
3.
4.
IF EMPTY(thisform.txtBox1.Value)=.t. .AND. thisform.txtBox2.Value< 10 
=MESSAGEBOX("Каля-маля!", 48 )
thisform.txtBox3.SetFocus
RETURN
ENDIF
А у барышни эта проверка выведена по-другому. Таблица у нее буферизована. Пользователь нажимает ОК, происходит запись или изменение уже существующей. И потом уже начинается код проверки "на дурака", но только по значениям в полях. Если ошибка - TABLEREVERT, если все нормально - TABLEUPDATE.
Вы люди опытные, какая метода более приемлема? Как лучше осуществлять проверку? Или это абсолютно без разницы?
...
Рейтинг: 0 / 0
26.09.2006, 10:12
    #34011767
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Лисонька Как лучше осуществлять проверку? Или это абсолютно без разницы?Согласно рекомендациям компании Microsoft - Ваш способ наиболее приемлем, то есть проверка до совершения активного действия.

P.S. Аспирант каких наук, если не секрет?
...
Рейтинг: 0 / 0
26.09.2006, 10:47
    #34011881
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Пока работал в DOS-е все хранил в переменых.

С появлением буфферизации пишу все сразу в таблицу - контролы привязаны к полям. Т.к. работать черех переменые или Value контролов это приделывать еще один буффер своими силами. А оно надо?
Да и код получается компактнее;)
...
Рейтинг: 0 / 0
26.09.2006, 11:11
    #34011959
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Sergey ChСогласно рекомендациям компании Microsoft - Ваш способ наиболее приемлем, то есть проверка до совершения активного действия.Рекомендации от MS? М-дя-я...
Я все же больше доверяю советам старых лисоводов от SQL.RU.
Мне просто понравилось, что писанины в коде заметно меньше у барышни, чем у меня. Аргументируйте, пожалуйста, чем страшен ее метод. А то я тут уже в одной форме ради эксперимента переписала строки в клике. Работает вроде. Я, правда, пользователям такой вариант не ставила, их объем работы не сравнить с моими двумя десятками пробных записей и исправлений, может у них и был бы какой-нибудь сбой. А какой?
Sergey ChP.S. Аспирант каких наук, если не секрет?Наук?.. Да не знаю. У нас же знакомство получилось чисто шапочным. Я и код этот узрела у нее, потому что он на мониторе был. Барышня сама, насколько я поняла, из питерского ИНЖЭКОНа, что-то связанное с программированием в экономике и управлении. Или информатизации в экономике. Не помню. Барышня в возрасте, ей за 30, старше меня. Зовут Юля. Старая дева. Комедию можно снимать, как она мужиков ненавидит. ;-)) Но то, что умница, видно сразу. Я ей и в подметки не гожусь. Вот только Фоксом она занимается абы-кабы и объясняет через пень-колоду про него.
...
Рейтинг: 0 / 0
26.09.2006, 11:32
    #34012016
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
2 Лисонька

Эх, мужика ей надо.

... без мужика, что без сахара чай .... (В.Сердючка)
...
Рейтинг: 0 / 0
26.09.2006, 11:55
    #34012104
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
По большому счету - без разницы.

Твой подход более "дружественный" по отношению к пользователю. Ее - проще в реализации (писанины меньше).

Точнее, тебе кроме того, что написано у нее, еще приходится писать собственную предварительную обработку. Не "вместо", а "в дополнение".

Да, надеюсь, буферизацию ты используешь? Писать собственный буфер, в большинстве случаев, бессмысленно. Проще воспользоваться готовым.

Логика сохранения в общих чертах примерно такая:

0) Провека факта внесения хоть каких-нибудь изменений (не обязательно)
1) Проверка факта заполнения всех полей обязательных для заполнения (не обязательно)
2) Заполнение служебных данных, которые не может заполнить пользователь (если есть такие данные)
3) Сброс буфера и сохранение внесенных изменений
4) Обновление отображенной на форме информации по актуальным данным (если необходимо)

Так вот, твой код отличается от ее только наличием первого пункта. Даже при наличии буферизации.

Лично я такую проверку тоже делаю, хотя таблицы буферизированы. Правда, в этом случае я проверяю не содержимое объектов формы, а содержимое буфера таблиц. Ведь именно это содержимое я и буду пытаться сохранить.
...
Рейтинг: 0 / 0
26.09.2006, 15:00
    #34012921
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Лисонька Рекомендации от MS? М-дя-я...
Дело в том, что они в последнее время ориентируются на клиент-серверные приложения и Web Services и рекомендуют проводить все возможные проверки на клиенте перед тем как загружать сервер и сеть ненужной работой (предствьте, если Вы работаете с базой данных через модем)...

Хотя Владимир все объяснил более подробно...
...
Рейтинг: 0 / 0
26.09.2006, 15:07
    #34012948
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
ВладимирМ0) Провека факта внесения хоть каких-нибудь изменений (не обязательно)Нет. ВладимирМ 1) Проверка факта заполнения всех полей обязательных для заполнения (не обязательно) Обязательно. Какой смысл корректной работы без такой проверки? ВладимирМ 2) Заполнение служебных данных, которые не может заполнить пользователь (если есть такие данные) Да, когда это требуется. ВладимирМ 3) Сброс буфера и сохранение внесенных изменений Да, после всех проверок на вшивость данных и их корректности - TABLEUPDATE. ВладимирМ 4) Обновление отображенной на форме информации по актуальным данным (если необходимо) Конечно, особенно если имеются объекты, в которых отображатеся служебная информация, получающаяся при изменении пользователем данных и их сохранении.
...
Рейтинг: 0 / 0
26.09.2006, 15:18
    #34012986
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Лисонька ВладимирМ 1) Проверка факта заполнения всех полей обязательных для заполнения (не обязательно) Обязательно. Какой смысл корректной работы без такой проверки?

Это не функция Вашего приложения, это ф-ия ограничений самих данных, поэтому такая проверка не обязательна.
...
Рейтинг: 0 / 0
26.09.2006, 15:24
    #34013010
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Лисонька ВладимирМ 1) Проверка факта заполнения всех полей обязательных для заполнения (не обязательно) Обязательно. Какой смысл корректной работы без такой проверки?
Тут придется копать глубоко

Дело в том, что все то, что должно заполняться обязательно также обязательно должно проверяться на уровне базы данных. Не на уровне заполнения/не заполнения каких-то объектов формы, а именно на уровне факта записи в поля таблицы. Т.е. это RULE и (или) триггера.

Как следствие, проверка корректности заполнения обектов формы перестает быть обязательной. Вы получите отказ в сохранении при попытке сбросить буфер или перейти к другой записи. Т.е. на этапе (3). Ошибка уровня базы данных. Все тот же TableRevert() если TableUpdate() прошел с ошибкой.

Тут просто получается перестраховка. Мы предполагаем , что, скорее всего, пользователь НЕ введет ряд обязательных реквизитов. Вот заранее и выполняем эту проверку, хотя ее можно и отложить на другие этапы сохранения.
...
Рейтинг: 0 / 0
27.09.2006, 17:45
    #34016715
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Правильной дорогой иду, товарищи!
И это радует ))))))))))))))))
Спасибо всем-всем-всем!

Елизавета Скрунскайте
...
Рейтинг: 0 / 0
27.09.2006, 18:56
    #34016971
Cyv
Cyv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
авторЯ в отпуске ездила в один городок в Ленинградской области
А откуда ездила, Елизавета? :-)
...
Рейтинг: 0 / 0
27.09.2006, 19:34
    #34017050
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
CyvА откуда ездила, Елизавета? :-)Ох, оттуда, откуда далёко до Прибалтики ;-)
...
Рейтинг: 0 / 0
01.10.2006, 00:39
    #34024320
Zero12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Метода проверки "на дураков". Может и глупо, но все же любопытно.
Мальчик хочет в Тамбов ,...
Угадал? :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Метода проверки "на дураков". Может и глупо, но все же любопытно. / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]