powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Trigger failed
25 сообщений из 77, страница 1 из 4
Trigger failed
    #32179108
РусланVFP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это ошибка возникает если юзер пытается нарушить целостность данных...
Хотелось бы сменить надпись на более приятную например - Вы пытаетесь сделать ерундушку или ещё чего :). Как добраться до этого текста?
Заранее спасибо, Руслан.
...
Рейтинг: 0 / 0
Trigger failed
    #32179280
1234567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В базе данных есть такая фишка, как хранимые процедуры. Там написан текст всех триггеров, которые фокс генерирует.
...
Рейтинг: 0 / 0
Trigger failed
    #32179585
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это стандартное сообщение об ошибке, возникающее при генерации кода ошибки 1539. Заменить его невозможно. Однако можно подавить выдачу этого сообщения и выдать свое.

Например, если таблица была буферизирована и сброс происходит по команде TableUpdate(), то хотя TableUpdate() вернет .F., но никакого сообщения об ошибке не появится. Далее, используя функцию AERROR() можно уточнить, какая именно ошибка произошла и выдать свое сообщение.

Т.е. логика примерно такая:

IF TableUpdate()=.F.

=AERROR(MyArray)
DO CASE
CASE MyArray(1,1)=1539
* Ошибка триггера
CASE MyArray(1,1)=1884
* Нарушение уникальности индекса типа Primary или Candidad
CASE MyArray(1,1)=1526
* Ошибка ODBC
CASE InList(MyArray(1,1),1427,1429)=.T.
* Ошибка OLE
OTHERWISE
* Какая-то еще ошибка
ENDCASE

ENDIF
...
Рейтинг: 0 / 0
Trigger failed
    #32179727
РусланVFP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Это стандартное сообщение об ошибке, возникающее при генерации кода >ошибки 1539. Заменить его невозможно. Однако можно подавить выдачу >этого сообщения и выдать свое.

Есть такой человек в этом форуме Самир, он написал мне ответ как заменить этот текст, да вот проблема - письмо потерялось, и как это сделать вспомнить немогу :( ... и на e-mail Самиру письмо отправить немогу... mail демон отвечает Failed to deliver ...
Вот такие вот дела...
С уважением к вам Владимир!

p. s.

Смысл изменения текста был таков: какой-то камандой, необходимо было открыть тот файл в самом фокс про, и просто ручками попровить текст Trigger failed на свой ... да вот команду и само имя того файла вспомнить не могу ...
Помню ещё точно, был там ещё глюк с кодировками 1252 ... а мне нужно было 1251 поставить ... тогда ещё не представлял что это такое, поэтому всё отложил ... а теперь оно потерялось ..жаль :(
...
Рейтинг: 0 / 0
Trigger failed
    #32179757
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну в принципе, кончено можно. Текст сообщений об ошибках содержится в библиотеках поддержки VFPx....DLL. Но уж больно меня напрягает "ломать" системные файлы, тем более если можно обойтись без этого.

Есть еще ряд соображений:

-) В руссифицированной Run-Time библиотеке (т.е. в готовом EXE) этот текст и так будет по русски (вероятно "Ошибка триггера")
-) Этот текст всегда одинаковый вне зависимости от причины ошибки триггера. Лично мне представляется более правильным "разбор полетов" производить в отдельной процедуре.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Trigger failed
    #35090347
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошло 5 лет..
а вопрос до сих пор не закрыт и актуален..

ну как убрать это - "тринер файлед", "реверт" например этим: в главной базе "..." есть зависимые, подчиненные записи , удаление невозможно. и просто окей!

может ктото научился это делать?
ведь эти сообщения гдето лежат в фоксе, можно как то их подправить.. перевести на понятный пользователю язык.. пользователь не понимает что такое тригер и что такое реверт..
...
Рейтинг: 0 / 0
Trigger failed
    #35090926
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все файлы просмотрел
где искать незнаю
может ктото подскажет где хранятся эти сообщения?
...
Рейтинг: 0 / 0
Trigger failed
    #35091111
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставь свой обработчик ошибок
on error

Там игнорирую ошибку с кодом 1539 - Trigger failed in "cursor".

....
case nError=1539

MessageBox('У вас отсутствуют права на изменение данной
информации!!!',0+48+0,'Операция отменена!!!')



....


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Trigger failed
    #35091500
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galyamov Rinat
Поставь свой обработчик ошибок
on error

Там игнорирую ошибку с кодом 1539 - Trigger failed in "cursor".

....
case nError=1539

MessageBox('У вас отсутствуют права на изменение данной
информации!!!',0+48+0,'Операция отменена!!!')



....


Posted via ActualForum NNTP Server 1.4

1. где поставить? в тригере? в самой хранимой процедуре?
2. чем отменять операцию удаления? recall не работает, потому что вып. тригеррр,
таблереверт тоже не работает, потому что база локальная буферы не пользуем,
ролбак тоже не работает, т.к. тригер запущен фоксом и транзакция вып тригера контролируется им..
чем отменить?

вот бы найти эту форму и скорректировать , наверно есть класс с этой формой и с него генерятся все сообщения об ошибках
...
Рейтинг: 0 / 0
Trigger failed
    #35091727
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, Вы крайне не внимательно прочитали это старое сообщение. Ясно же было сказано, что в руссифицированных версиях Run-Time библиотек сообщение будет по русски. Правда, все-равно пользователь мало что поймет.

Во-вторых, для модификации данных лучше использовать буферизацию. В этом случае Вы имеет полный контроль надо сообщениями об ошибках триггера, да и много других проблем решаются значительно проще.

В-третьих, все-таки надо хотя бы самому хоть иногда думать. Команда ON ERROR - это настройка. Причем настройка глобальная. Как Вы думаете, а где вообще делают глобальные настройки? В какой момент?

В общем, решение есть. Причем уже 5 лет назад было. Но не перевелись еще люди, не желающие думать самостоятельно
...
Рейтинг: 0 / 0
Trigger failed
    #35091748
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильное решение вот:
Смысл изменения текста был таков: какой-то камандой, необходимо было открыть тот файл в самом фокс про, и просто ручками попровить текст Trigger failed на свой ... да вот команду и само имя того файла вспомнить не могу ...
Помню ещё точно, был там ещё глюк с кодировками 1252 ... а мне нужно было 1251 поставить ... тогда ещё не представлял что это такое, поэтому всё отложил ... а теперь оно потерялось ..жаль :(

Владимир, вам же сказали, что есть оно,
вы же предлагаете уйти от решения... можно конечно выкрутиться, но то что вы предлагаете Владимир, не решение, или точнее решение не достойное настоящего профессионала..
слишком просто, вы все на буфер ссылаетесь, но обьясните мне, зачем мне буфер если работа с базой происходит локально без сети?
...
Рейтинг: 0 / 0
Trigger failed
    #35091805
но обьясните мне, зачем мне буфер если работа с базой происходит локально без сети?
Интересная логика. А где-то, кто-то когда-то утверждал, что буфер нужен только для сети? Не надо путать теплое с мягким.
...
Рейтинг: 0 / 0
Trigger failed
    #35091866
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий. но обьясните мне, зачем мне буфер если работа с базой происходит локально без сети?
Интересная логика. А где-то, кто-то когда-то утверждал, что буфер нужен только для сети? Не надо путать теплое с мягким.
...
Рейтинг: 0 / 0
Trigger failed
    #35091877
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обьясняю,
буфер был создан и предназначен прежде всего для разделяемого сетевого обращения к таблицам
т.е. для того чтобы уменьшить нагрузку блокировками,
работая с буфером вы не держите таблицу, таблица блокируется только в момент записи..
это понятно?
...
Рейтинг: 0 / 0
Trigger failed
    #35091884
Если это объяснение для меня, то оно мимо кассы. Мне не надо рассказывать про буферизацию. И создавалась она отнюдь не только для сети. Учите матчасть.
...
Рейтинг: 0 / 0
Trigger failed
    #35091893
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ-третьих, все-таки надо хотя бы самому хоть иногда думать. Команда ON ERROR - это настройка. Причем настройка глобальная. Как Вы думаете, а где вообще делают глобальные настройки? В какой момент?


натройка, но как отменить удаление?
в хранимой процедуре нельзя, что мне даст эта глобальная настройка?
и зачем она мне глобальная, если нужна будет только в момент выполнения тригера..
...
Рейтинг: 0 / 0
Trigger failed
    #35091915
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий.Если это объяснение для меня, то оно мимо кассы. Мне не надо рассказывать про буферизацию. И создавалась она отнюдь не только для сети. Учите матчасть.

мне учить ?
все это создавалось на моих глазах
и буферизация создана была как раз тогда когда мы занимались ручной блокировкой строк в таблицах..
она сняла все эти вопросы сетевого обращения к базам..
учите лучше вы, и начните с 89 го года..
тогда увидите весь процесс развития фокса, всю его историю
...
Рейтинг: 0 / 0
Trigger failed
    #35091948
она сняла все эти вопросы сетевого обращения к базам..
Побочные эффекты не изменяют причину появления буферизации. Все-таки у Вас с логгикой что-то не так.
начните с 89 го года..
тогда увидите весь процесс развития фокса, всю его историю
Вот как раз где-то с тех пор и изучаю и что-то за это время про создание буферизации именно для сети пока не видел. Мож кинетесь ссылочкой?
...
Рейтинг: 0 / 0
Trigger failed
    #35091974
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Побочные эффекты не изменяют причину появления буферизации

мнда..
с ног на голову..
побочные.. ХА-ХА-ХА..
хотя не смешно, грусно.. и такие программисты пишут на фокспро...
МНДА..
...
Рейтинг: 0 / 0
Trigger failed
    #35091994
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем же тогда основной эффект??? если разделение доступа не основной???

вообще буферизацию первым придумал не фокс, ее придумали в др. базах, и именно с этой целью.. с целью развести блокировки..
но вот пришел пошел мимо и выдал - побочный эффект...
а в чем же тогда основной?
подозреваю это таблереверт...

:-)))
...
Рейтинг: 0 / 0
Trigger failed
    #35092018
Основной - отделение процесса редактирования данных пользователем от процесса изменения в таблице. И TableRevert в том числе. В качестве бонуса - более легкое управление блокировками. Если они нужны. Ибо при работе с удаленными данными этим занимается отнюдь не фокс, а сервер, на котором храняться эти данные.

Вы б поменьше эмоций выплескивали и побольше фактических данных приводили бы, а?
Например на сведения от разработчиков о причинах и целях создания механизма буферизации.
Разговор был бы предметнее.
...
Рейтинг: 0 / 0
Trigger failed
    #35092029
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И. В. К.обьясняю,
буфер был создан и предназначен прежде всего для разделяемого сетевого обращения к таблицам
т.е. для того чтобы уменьшить нагрузку блокировками,
работая с буфером вы не держите таблицу, таблица блокируется только в момент записи..
это понятно?
У Вас не правильное понимание того, для чего предназначена буферизация.

Цель буферизации - это разделить процесс внесения изменений и процесс сохранения внесенных изменений.

Чтобы было понятно, вспомните, как Вы работаете, например, с MS Word или MS Excel. Вы сначала нечто вводите, а потом нажимаете кнопку "Сохранить". Это и есть буферизация в чистом виде. А ведь, MS Word и MS Excel, как правило, используют именно локально.

Насчет "таблицы блокируются только в момент записи" - тоже не вполне справедливо. Это зависит от используемого вида (типа) буферизации. Описанное поведение справедливо для оптимистической буферизации. Но для пессимистической буферизации блокировка накладывается немедленно при начале модификации.
...
Рейтинг: 0 / 0
Trigger failed
    #35092063
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет "таблицы блокируются только в момент записи" - тоже не вполне справедливо. Это зависит от используемого вида (типа) буферизации
вот про это вы напрсно, вы придираетесь к словам, я не уточнил, думал и так поймете..

Основной - отделение процесса редактирования данных пользователем от процесса изменения в таблице.
это ли ни есть основной момент при работе с данными нескольких пользователей?
раньше пользователь открывал запись, блокировал, редактировал, сохранял и снимал блокировку..
это и есть основная проблема разделяемого (сетевого) обращения к таблицам. блокировку теперь можно не делать.. появилась буферизация.

при работе с удаленными данными этим занимается отнюдь не фокс,
отнюдь..
в моем случае именно фокс и именно локально, на одной машине не подключенной к сети..
и зачем мне тогда буферизация? только ексклюзив..
...
Рейтинг: 0 / 0
Trigger failed
    #35092122
это ли ни есть основной момент при работе с данными нескольких пользователей?
Это момент просто на сетевых данных проявляется более заметно, но не более того.
в моем случае именно фокс и именно локально, на одной машине не подключенной к сети..
и зачем мне тогда буферизация? только ексклюзив..
Не думаю, что авторы буферизации рассматривали Ваш конкретный случай.
И то, что Вы не знаете где и как применить на локальной машине буферизацию еще раз говорит об уровне Ваших знаний инструмента. Как говорится "Вы просто не умеете ее готовить". Но не надо в таком случае снисходительно и не особо вежливо обращаться с другими участниками дискуссии.
...
Рейтинг: 0 / 0
Trigger failed
    #35092247
И. В. К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это момент просто на сетевых данных проявляется более заметно, но не более того.

и не менее того.. или вообще никак иначе..



Не думаю, что авторы буферизации рассматривали Ваш конкретный случай

разумеется..
они рассматривали в первую очередь случай сети и разделяемого доступа..
...
Рейтинг: 0 / 0
25 сообщений из 77, страница 1 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Trigger failed
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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