powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Метода проверки "на дураков". Может и глупо, но все же любопытно.
14 сообщений из 14, страница 1 из 1
Метода проверки "на дураков". Может и глупо, но все же любопытно.
    #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
Метода проверки "на дураков". Может и глупо, но все же любопытно.
    #34011767
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лисонька Как лучше осуществлять проверку? Или это абсолютно без разницы?Согласно рекомендациям компании Microsoft - Ваш способ наиболее приемлем, то есть проверка до совершения активного действия.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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