Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Транзакция
|
|||
|---|---|---|---|
|
#18+
Вот строки кода.... nAnswer = Messagebox("Записать?",32+0+3,"Запись") Do Case Case nAnswer = 6 &&ДА BEGIN TRANSACTION IF TableUpdate()=.T. END TRANSACTION ELSE ROLLBACK MESSAGEBOX("Данные не были изменены. Повторите попытку позже","Изменение данных") ENDIF Case nAnswer = 7 &&НЕТ Go Thisform.nrecno Endif = Tablerevert(.T.) Case nAnswer = 2 &&ОТМЕНА Thisform.Text2.SetFocus Return Endcase Else = Tableupdate(.T.) Endif Thisform.Release Сижу и думаю..., в месте: Case nAnswer = 6 &&ДА BEGIN TRANSACTION IF TableUpdate()=.T. END TRANSACTION ELSE ROLLBACK MESSAGEBOX("Данные не были изменены. Повторите попытку позже","Изменение данных") ENDIF ...если по каким то причинам не удастся закончить транзакцию(TableUpdate()=.F.), куда вернет нас ROLLBACK (Почитав документацию не поняла) Как мне в коде это предусмотреть-предложить повторить?-RETURN?? или как??? Может мне как то по другому все это сделать. Спасибо за проявленное внимание и снисхождение(:о)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 21:48 |
|
||
|
Транзакция
|
|||
|---|---|---|---|
|
#18+
> куда вернет нас ROLLBACK В данном случае на сообщение 'An IF | ELSE | ENDIF statement is missing.' > Как мне в коде это предусмотреть-предложить повторить?-RETURN?? или как??? Можно что-то вроде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2003, 23:09 |
|
||
|
Транзакция
|
|||
|---|---|---|---|
|
#18+
Вообще-то, я поднаврал, так можно сетку капитально подвесить вторым мессаджбоксом. Лучше так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. PS ИМХО такие вещи лучше делать в QueryUnload. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 06:57 |
|
||
|
Транзакция
|
|||
|---|---|---|---|
|
#18+
Точнее ROOLBACK вернет базу данных в то состояние в котором она была на момент подачи команды BEGIN TRANSACTION с точки зрения данного клиента. Т.е. будут отменены ВСЕ манипуляции с данными проделанные ДАННЫМ клиентом после подачи команды BEGIN TRANSACTION. Однако изменения сделанные другим клиентом отменены не будут. Другой вопрос, что при открытой транзакции другой клиент может сделать далеко не все, что угодно. Guest привел вполне работоспособный код. Но лично я не стал бы этого делать. Оставил бы принятие решения на пользователя. Т.е. например, сохранение реализовано по нажатию некой кнопки на форме (метод Click). Если сохранение не удалось, то просто прерываю выполнение метода Click(). Для повтора попытки сохранения пользователь должен еще раз нажать на ту же кнопку. Если пользователь НЕ нажал на кнопку "Сохранить", но тем не менее произвел изменения, то при попытке выйти из формы я задаю вопрос: "Данные не сохранены и в случае выхода все изменния будут потеряны. Вы настаиваете на выходе?" Т.е. вопрос не о сохранении, а о выходе из формы. Для сохранения пользователь опять-таки должен САМ нажать на кнопку "Сохранить". Автоматически выполняется только откат изменений. Сохранение требует осмысленных действий пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 12:59 |
|
||
|
Транзакция
|
|||
|---|---|---|---|
|
#18+
То есть Владимир Вы предлагаете Do Case Case nAnswer = 6 &&ДА IF TableUpdate()=.T. ELSE MESSAGEBOX("Данные не были изменены. Повторите попытку позже","Изменение данных") CANCEL ENDIF Типа того ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 17:28 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32245642&tid=1597977]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
202ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 571ms |

| 0 / 0 |
