|
|
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Это ошибка возникает если юзер пытается нарушить целостность данных... Хотелось бы сменить надпись на более приятную например - Вы пытаетесь сделать ерундушку или ещё чего :). Как добраться до этого текста? Заранее спасибо, Руслан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2003, 14:11 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
В базе данных есть такая фишка, как хранимые процедуры. Там написан текст всех триггеров, которые фокс генерирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2003, 10:17 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Это стандартное сообщение об ошибке, возникающее при генерации кода ошибки 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2003, 14:35 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
>Это стандартное сообщение об ошибке, возникающее при генерации кода >ошибки 1539. Заменить его невозможно. Однако можно подавить выдачу >этого сообщения и выдать свое. Есть такой человек в этом форуме Самир, он написал мне ответ как заменить этот текст, да вот проблема - письмо потерялось, и как это сделать вспомнить немогу :( ... и на e-mail Самиру письмо отправить немогу... mail демон отвечает Failed to deliver ... Вот такие вот дела... С уважением к вам Владимир! p. s. Смысл изменения текста был таков: какой-то камандой, необходимо было открыть тот файл в самом фокс про, и просто ручками попровить текст Trigger failed на свой ... да вот команду и само имя того файла вспомнить не могу ... Помню ещё точно, был там ещё глюк с кодировками 1252 ... а мне нужно было 1251 поставить ... тогда ещё не представлял что это такое, поэтому всё отложил ... а теперь оно потерялось ..жаль :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2003, 16:14 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Ну в принципе, кончено можно. Текст сообщений об ошибках содержится в библиотеках поддержки VFPx....DLL. Но уж больно меня напрягает "ломать" системные файлы, тем более если можно обойтись без этого. Есть еще ряд соображений: -) В руссифицированной Run-Time библиотеке (т.е. в готовом EXE) этот текст и так будет по русски (вероятно "Ошибка триггера") -) Этот текст всегда одинаковый вне зависимости от причины ошибки триггера. Лично мне представляется более правильным "разбор полетов" производить в отдельной процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2003, 16:47 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
прошло 5 лет.. а вопрос до сих пор не закрыт и актуален.. ну как убрать это - "тринер файлед", "реверт" например этим: в главной базе "..." есть зависимые, подчиненные записи , удаление невозможно. и просто окей! может ктото научился это делать? ведь эти сообщения гдето лежат в фоксе, можно как то их подправить.. перевести на понятный пользователю язык.. пользователь не понимает что такое тригер и что такое реверт.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2008, 19:46 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
все файлы просмотрел где искать незнаю может ктото подскажет где хранятся эти сообщения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 10:25 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Поставь свой обработчик ошибок on error Там игнорирую ошибку с кодом 1539 - Trigger failed in "cursor". .... case nError=1539 MessageBox('У вас отсутствуют права на изменение данной информации!!!',0+48+0,'Операция отменена!!!') .... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 11:31 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
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 не работает, потому что вып. тригеррр, таблереверт тоже не работает, потому что база локальная буферы не пользуем, ролбак тоже не работает, т.к. тригер запущен фоксом и транзакция вып тригера контролируется им.. чем отменить? вот бы найти эту форму и скорректировать , наверно есть класс с этой формой и с него генерятся все сообщения об ошибках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 13:05 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Во-первых, Вы крайне не внимательно прочитали это старое сообщение. Ясно же было сказано, что в руссифицированных версиях Run-Time библиотек сообщение будет по русски. Правда, все-равно пользователь мало что поймет. Во-вторых, для модификации данных лучше использовать буферизацию. В этом случае Вы имеет полный контроль надо сообщениями об ошибках триггера, да и много других проблем решаются значительно проще. В-третьих, все-таки надо хотя бы самому хоть иногда думать. Команда ON ERROR - это настройка. Причем настройка глобальная. Как Вы думаете, а где вообще делают глобальные настройки? В какой момент? В общем, решение есть. Причем уже 5 лет назад было. Но не перевелись еще люди, не желающие думать самостоятельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:01 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
правильное решение вот: Смысл изменения текста был таков: какой-то камандой, необходимо было открыть тот файл в самом фокс про, и просто ручками попровить текст Trigger failed на свой ... да вот команду и само имя того файла вспомнить не могу ... Помню ещё точно, был там ещё глюк с кодировками 1252 ... а мне нужно было 1251 поставить ... тогда ещё не представлял что это такое, поэтому всё отложил ... а теперь оно потерялось ..жаль :( Владимир, вам же сказали, что есть оно, вы же предлагаете уйти от решения... можно конечно выкрутиться, но то что вы предлагаете Владимир, не решение, или точнее решение не достойное настоящего профессионала.. слишком просто, вы все на буфер ссылаетесь, но обьясните мне, зачем мне буфер если работа с базой происходит локально без сети? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:09 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
но обьясните мне, зачем мне буфер если работа с базой происходит локально без сети? Интересная логика. А где-то, кто-то когда-то утверждал, что буфер нужен только для сети? Не надо путать теплое с мягким. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:27 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
проходящий. но обьясните мне, зачем мне буфер если работа с базой происходит локально без сети? Интересная логика. А где-то, кто-то когда-то утверждал, что буфер нужен только для сети? Не надо путать теплое с мягким. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:41 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
обьясняю, буфер был создан и предназначен прежде всего для разделяемого сетевого обращения к таблицам т.е. для того чтобы уменьшить нагрузку блокировками, работая с буфером вы не держите таблицу, таблица блокируется только в момент записи.. это понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:43 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Если это объяснение для меня, то оно мимо кассы. Мне не надо рассказывать про буферизацию. И создавалась она отнюдь не только для сети. Учите матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:46 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
авторВ-третьих, все-таки надо хотя бы самому хоть иногда думать. Команда ON ERROR - это настройка. Причем настройка глобальная. Как Вы думаете, а где вообще делают глобальные настройки? В какой момент? натройка, но как отменить удаление? в хранимой процедуре нельзя, что мне даст эта глобальная настройка? и зачем она мне глобальная, если нужна будет только в момент выполнения тригера.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:48 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
проходящий.Если это объяснение для меня, то оно мимо кассы. Мне не надо рассказывать про буферизацию. И создавалась она отнюдь не только для сети. Учите матчасть. мне учить ? все это создавалось на моих глазах и буферизация создана была как раз тогда когда мы занимались ручной блокировкой строк в таблицах.. она сняла все эти вопросы сетевого обращения к базам.. учите лучше вы, и начните с 89 го года.. тогда увидите весь процесс развития фокса, всю его историю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:53 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
она сняла все эти вопросы сетевого обращения к базам.. Побочные эффекты не изменяют причину появления буферизации. Все-таки у Вас с логгикой что-то не так. начните с 89 го года.. тогда увидите весь процесс развития фокса, всю его историю Вот как раз где-то с тех пор и изучаю и что-то за это время про создание буферизации именно для сети пока не видел. Мож кинетесь ссылочкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 14:59 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Побочные эффекты не изменяют причину появления буферизации мнда.. с ног на голову.. побочные.. ХА-ХА-ХА.. хотя не смешно, грусно.. и такие программисты пишут на фокспро... МНДА.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 15:03 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
в чем же тогда основной эффект??? если разделение доступа не основной??? вообще буферизацию первым придумал не фокс, ее придумали в др. базах, и именно с этой целью.. с целью развести блокировки.. но вот пришел пошел мимо и выдал - побочный эффект... а в чем же тогда основной? подозреваю это таблереверт... :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 15:08 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Основной - отделение процесса редактирования данных пользователем от процесса изменения в таблице. И TableRevert в том числе. В качестве бонуса - более легкое управление блокировками. Если они нужны. Ибо при работе с удаленными данными этим занимается отнюдь не фокс, а сервер, на котором храняться эти данные. Вы б поменьше эмоций выплескивали и побольше фактических данных приводили бы, а? Например на сведения от разработчиков о причинах и целях создания механизма буферизации. Разговор был бы предметнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 15:14 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.обьясняю, буфер был создан и предназначен прежде всего для разделяемого сетевого обращения к таблицам т.е. для того чтобы уменьшить нагрузку блокировками, работая с буфером вы не держите таблицу, таблица блокируется только в момент записи.. это понятно? У Вас не правильное понимание того, для чего предназначена буферизация. Цель буферизации - это разделить процесс внесения изменений и процесс сохранения внесенных изменений. Чтобы было понятно, вспомните, как Вы работаете, например, с MS Word или MS Excel. Вы сначала нечто вводите, а потом нажимаете кнопку "Сохранить". Это и есть буферизация в чистом виде. А ведь, MS Word и MS Excel, как правило, используют именно локально. Насчет "таблицы блокируются только в момент записи" - тоже не вполне справедливо. Это зависит от используемого вида (типа) буферизации. Описанное поведение справедливо для оптимистической буферизации. Но для пессимистической буферизации блокировка накладывается немедленно при начале модификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 15:16 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Насчет "таблицы блокируются только в момент записи" - тоже не вполне справедливо. Это зависит от используемого вида (типа) буферизации вот про это вы напрсно, вы придираетесь к словам, я не уточнил, думал и так поймете.. Основной - отделение процесса редактирования данных пользователем от процесса изменения в таблице. это ли ни есть основной момент при работе с данными нескольких пользователей? раньше пользователь открывал запись, блокировал, редактировал, сохранял и снимал блокировку.. это и есть основная проблема разделяемого (сетевого) обращения к таблицам. блокировку теперь можно не делать.. появилась буферизация. при работе с удаленными данными этим занимается отнюдь не фокс, отнюдь.. в моем случае именно фокс и именно локально, на одной машине не подключенной к сети.. и зачем мне тогда буферизация? только ексклюзив.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 15:25 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
это ли ни есть основной момент при работе с данными нескольких пользователей? Это момент просто на сетевых данных проявляется более заметно, но не более того. в моем случае именно фокс и именно локально, на одной машине не подключенной к сети.. и зачем мне тогда буферизация? только ексклюзив.. Не думаю, что авторы буферизации рассматривали Ваш конкретный случай. И то, что Вы не знаете где и как применить на локальной машине буферизацию еще раз говорит об уровне Ваших знаний инструмента. Как говорится "Вы просто не умеете ее готовить". Но не надо в таком случае снисходительно и не особо вежливо обращаться с другими участниками дискуссии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 15:36 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Это момент просто на сетевых данных проявляется более заметно, но не более того. и не менее того.. или вообще никак иначе.. Не думаю, что авторы буферизации рассматривали Ваш конкретный случай разумеется.. они рассматривали в первую очередь случай сети и разделяемого доступа.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 16:03 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35091915&tid=1588219]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 352ms |

| 0 / 0 |
