Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Trigger failed / 25 сообщений из 77, страница 1 из 4
08.06.2003, 14:11
    #32179108
РусланVFP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger failed
Это ошибка возникает если юзер пытается нарушить целостность данных...
Хотелось бы сменить надпись на более приятную например - Вы пытаетесь сделать ерундушку или ещё чего :). Как добраться до этого текста?
Заранее спасибо, Руслан.
...
Рейтинг: 0 / 0
09.06.2003, 10:17
    #32179280
1234567
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger failed
В базе данных есть такая фишка, как хранимые процедуры. Там написан текст всех триггеров, которые фокс генерирует.
...
Рейтинг: 0 / 0
09.06.2003, 14:35
    #32179585
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger failed
Это стандартное сообщение об ошибке, возникающее при генерации кода ошибки 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
09.06.2003, 16:14
    #32179727
РусланVFP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger failed
>Это стандартное сообщение об ошибке, возникающее при генерации кода >ошибки 1539. Заменить его невозможно. Однако можно подавить выдачу >этого сообщения и выдать свое.

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

p. s.

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

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

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

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

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

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

....
case nError=1539

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



....


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.01.2008, 13:05
    #35091500
И. В. К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger failed
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
28.01.2008, 14:01
    #35091727
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Trigger failed
Во-первых, Вы крайне не внимательно прочитали это старое сообщение. Ясно же было сказано, что в руссифицированных версиях Run-Time библиотек сообщение будет по русски. Правда, все-равно пользователь мало что поймет.

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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



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

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


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