Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
Известна проблема VFP6 (да и других версий), что обработчик ошибок on error do ... не вызывается, пока активно окно browse. Если ошибка возникает в процедуре типа valid для поля - то обработчик вызывается. А если browse работает по обновляемому удаленному представлению и пытается сделать update для поля, а сервер возвращает ошибку, то VFP вываливает свое окно с надписью на английском языке про ошибку и кнопки OK и Revert. Все бы было ничего, но если не нажать Revert, то потом невозможно нормально ни приложения закрыть, ни саму среду VFP, так как при попытке закрытия курсора (use, close all и пр.) опять выдается оператор update, сервер возвращает ошибку, но VFP ее уже не ловит, а рассказывает что-то малопонятное. Как народ такую ситуацию обходит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 10:31 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
речь идет по работу с удаленным представлением ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 10:49 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
если да то имеет смысл использовать буферизацию и транссакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 10:51 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
По-моему, в этом случае необходимо написать свою форму с использованием Grid и полным управлением всех событий от разработчика. Использовать стандартный BROWSE как-то не очень... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 11:01 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
To Leaf: >речь идет по работу с удаленным представлением ? >если да то имеет смысл использовать буферизацию и транссакции Да. Удаленное представление к серверу PostgreSQL. Транзакции делает сам сервер. Или Вы предлагаете отключить автотранзакции, а включить в Foxpro, чтобы клиент выдавал begin-commit ? А что это даст ? To SergeyPl: Есть куча (более 30) справочников, на каждый из которых писать форму с grid как-то влом ... А писать универсальную форму на справочники - еще более влом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 14:50 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
вот поэтому вы и не можете откатить свои изменения и зависаете в воздухе з.ы. когда что-то в лом это плохо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 14:55 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
strizhTo Leaf: >речь идет по работу с удаленным представлением ? >если да то имеет смысл использовать буферизацию и транссакции Да. Удаленное представление к серверу PostgreSQL. Транзакции делает сам сервер. Или Вы предлагаете отключить автотранзакции, а включить в Foxpro, чтобы клиент выдавал begin-commit ? А что это даст ? To SergeyPl: Есть куча (более 30) справочников, на каждый из которых писать форму с grid как-то влом ... А писать универсальную форму на справочники - еще более влом. В классических учебниках по ООП часто говорится, что иногда, на разработку одного нужного класса уходит времени гораздо больше, чем на использование этого класса в последствии более 30 раз :) Это я о том, что если пишем что-то путное, то написать форму для справочников сам Бог велел ! А если использовать BROWSE, то можно ничего не писать, а дать пользователям VFP и пусть работают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 18:29 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
strizhTo Leaf: Есть куча (более 30) справочников, на каждый из которых писать форму с grid как-то влом ... А писать универсальную форму на справочники - еще более влом. Посуди сам BROWSE это для совместимости. А в этом случае какие там события в Фоксе 2.0? А класс всё таки напиши. Поможет и не раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 19:34 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
Ладно-ладно. Убедили. Теперь скажите, как нормально в гриде обработать ошибку ODBC-соединения номер 1526 ? Нужно программно сделать revert, чтобы отменить изменения в поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2004, 13:25 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
ну вы с буферизацией и трансакциями разобрались ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2004, 13:56 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
> ну вы с буферизацией и трансакциями разобрались Вы имеете в виду, чтобы поставить свойство transaction в режим НЕАВТО ? Так тут одинаково. В какой не ставь - в логах все равно видно, что сначала идет begin, потом update, потом при ошибке rollback. И только после rollback VFP идет на ошибку. Причем, обработчик на событие error можно повесить только для грида, для конкретного столбца грида событие error с ошибкой ODBC не возникает. А дальше для грида - как узнать, для какого столбца возникла ошибка ? Обработчику в названии объекта передается сам грид. Фигня какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2004, 14:59 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
ну это про буферизацию а про трансакции например в случае неудачи откатить ее и все а так у вас изменения остаются база подвисает остается только правка вручную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2004, 15:03 |
|
||
|
Обработчик ошибок не вызывается при выполнении browse - как обойти ?
|
|||
|---|---|---|---|
|
#18+
У меня есть мечта: Чтобы новички, прежде чем задавать свой вопрос поискали аналогичные вопросы в конференции. Жаль, что мечта несбыточная. 1) Стратегия построчного редактирования данных в таблицах - в корне ошибочна. Имеется в виду, что у Вас открыта таблица, вы вносите изменения в одну строку таблицы и эти изменения тут же сбрасываются в исходные таблицы. 2) Если Вы хотите самостоятельно обрабатывать процесс возникновения ошибок, то надо самостоятельно управлять процессом сброса изменений на сервер. Имеется в виду, что нельзя отдавать системе сам процесс сброса изменений. Следствия из всего этого: 1) На Remote View необходимо наложить режим табличной буферизации (5). По умолчанию, все View открываются в режиме строковой буферизации (3) 2) Сброс внесенных изменений производится только и исключительно по нажатии кнопки "Сохранить" в которой и подается команда вроде: IF TableUpdate()=.F. AERROR(laError) * Анализ содержимого массива laError ENDIF PS: Большая просьба, воспользуйся поиском в данной конфе по упомянутым здесь ситуациям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2004, 15:23 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32697078&tid=1595793]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 322ms |

| 0 / 0 |
