Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Блокировка редактируемых записей
|
|||
|---|---|---|---|
|
#18+
привет. можно ли сделать так ( SQL2000 Delphi7 ADO ) в программе в гриде лежит укороченный список полей. например название товара и тип . Когда юзер выбирает товар, нажимает кнопку "редактировать", появляется диалог редактирования для всех полей: тип, цена, единицы измерения, можно еще фотку в блобе если потребуется итд Если другой юзер выбирает того же товар и тоже нажимает "редактировать" хотелось бы чтобы появилось окно со словами "другой юзер уже редактирует эту запись". Я хочу узнать, можно ли, используя SQL и вызовы методов объектов ADO (например ADOQuery.Edit (?) ), сделать так, чтобы при вызове этой же конструкции другим юзером у него вылазил exception? например что-то вроде этого (может можно без try-except, проверять что-то или функцию вызывать?) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. таким образом, пока запись редактируется (или просто висит на экране диалог изменения значений полей), у других юзеров править запись возможности нет, зато они могут видеть ее поля до изменения. Нужно ли использовать для этого в окне редактирования обычные контолы (например Edit, Combobox, Memo) или туда нужно обязательно ставить DB Controls? ================================= Можно конечно добавить в таблицу одно или несколько полей, показывающих факт захвата записи и в нужный момент как бы взводить флажок. (в простейшем варианте подойдет поле Locked типа бит = 0 или 1), однако в случае пропажи питания на клиенте в таблице останеться запись, помеченная как 'редактируемая сейчас'. Можно ли использовать этот способ вместе с транзакциями, чтобы избежать таким образом захваченных записей при аварийном завершении приложения или сбоя Windows на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2003, 04:58 |
|
||
|
Блокировка редактируемых записей
|
|||
|---|---|---|---|
|
#18+
У меня, созданный с помощью коллективного разума, работает следующий код. Итак, давай по очереди: 1. Создаем таблицу на SQL сервере В нее будут кидаться данные об открытой записи. В моем случае уникальный идентификатор записи DOCID varchar, но можно переделать и под другой. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 2. Создаем на SQL сервере процедуру, к которой будет обращаться клиентское приложение при любом обращении к таблице, записи в которой надо блокировать Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 3. Дельфийская процедура, которая открывает запись с проверкой ее статуса. Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 4. Дельфийская процедура закрытия и разблокировки записи Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 5. Пиво, с благодарностью за идею передашь pkarklin, который обитает здесь и в SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2003, 10:14 |
|
||
|
Блокировка редактируемых записей
|
|||
|---|---|---|---|
|
#18+
ЗдОрово! Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2003, 11:49 |
|
||
|
Блокировка редактируемых записей
|
|||
|---|---|---|---|
|
#18+
2duha Большая просьба, Отпиши о работоспособности на SQL2000. Я это опробовал на семерке, а будет необходимость переводить на 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2003, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32226233&tid=2117450]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 414ms |

| 0 / 0 |
