|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д. =================================================================================== начало о среде: /topic/603465&pg=1 О "длинных транзакциях" /topic/613985&pg=1 Предлагаю Новую среду разработки, которая: - позволяет работать с СУБД: MySQL, MySQL, MS SQL Server, JetDB (MS Access), Firebird и встроенная локальная однопользовательская БД. - код для ВСЕХ этих СУБД в моей среде ОДИНАКОВ - если в организации уже есть СУБД со своими данными, то моя среда не влияет на их работу (новый экземпляр СУБД не устанавливается) - для обеспечения одинаковости кода, был введён свой диалект SQL - по функционалу и удобству работы "Моя среда" превышает возможности 1С, Access, Delphi... Ниже приводится наиболее характерный ВИ в многопользовательской работе ВИ (Гаджимурадов Рустам (с)): 1. Утром 8:00 стартует запрос Select * From Table Where "Мои". 2. В 11:30 юзер говорит "а давай-ка я поредактирую Запись такую-то" (будем считать, что ее ID=1"). Жмет капу. 3. Создается форма редактирования, запросом "select все where ID=1" получается текущее состояние записи (можно и просто Refresh - в зависимости от библиотек доступа) - в т.ч. записи может уже не быть (удалена). 4. Начинает редактировать. Отлучается к в соседний отдел уточнить какую-то циферку. 5. 12:00, юзер как истинный штанопросиживатель уходит на обед. 13:30, приходит после обеда (опоздать после обеда - это завсегдаааа!). 6. Вспоминает, скотина эдакая, что он что-то там редактировал, разворачивает приложение, продолжает. 7. Наредактировался, жмет "Хочу" (ОК). a) Если у нас система "кто последний встал, того и тапки" (то бишь все, что подпадает под инкрементальное обновление), идем к п. 8.2 иначе идем к п.8.1. 8.1. Перезапрашиваем из БД вражьи данные. Показываем юзеру. Данные в контролах (т.е. двухчасовой натужный труд юзера) не теряем Юзер смотрит на "вражьи" данные, анализирует, сравнивает, при необх. идет выяснять отношения с врагами / идет жаловаться начальству (т.ч. возможно - еще полчаса). 8.2. Спрашиваем у юзера - "дидлок, что будем делать?". Если жмет "Все равно обновить!" идти к п.9.1 иначе к п.9.2 9.1. Юзер решает "У меня длиннее" - ложим на всех болт (ну, в данном случае - на врага) и повторяем попытку (т.е. идем к п.9). Этот же пункт можно выполнять и не спрашивая у юзера - в бесконечном (ну, или конечном) цикле - по вкусу. 9.2. Юзер понимает (или ему популярно объясняют), что врага длиннее, он жмет "Отмена", делаем Commit (ну, или Rollback - по ситуации) 10. Рефрешим/КлозеОупим запрос из п.1 (по необходимости). Для этого ВИ ниже будет написан код ОДИНАКОВЫЙ для всех БД в моей Среде разработки и ещё ниже код транзакций отправляемый ДЛЯ КАЖДОЙ СУБД (для блокировочников и версионников) PS ВИ для получения автонумерации и генераторов-счётчиков будут описаны в отдельном топике ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 12:43 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
попытка неумения логически проектировать многопользовательские системы переложить на возможности СУБД, которые предназначены для разруливания ситуаций неумения логически проектировать многопользовательские системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 12:49 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
для тех, кто считает себя архитекторами... многопользовательская работа состоит не в том, что десять человек пытаются рыть траншею одной лопатой, а в том, что десять человек роют траншею одновременно десятью лопатами. Если вы не можете распределить лопаты по-нормальному, то какие же вы архитекторы тогда? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 12:57 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
p.s. это все к тому, что зачем создавать топики с явно идиотскими задачами и пытаться их решить при помощи козла отпущения под именем СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 13:04 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
iscrafmp.s. это все к тому, что зачем создавать топики с явно идиотскими задачами и пытаться их решить при помощи козла отпущения под именем СУБД. Этого нет в жизни? ID=1 для Вас равно одной лопате? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 13:10 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
Архитектор ID=1 для Вас равно одной лопате? ID=1 для меня просто условие. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 13:14 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
Ээээ.... Алексей Морозов2 - это не я. Но в словах этого человека много логики, что странно для этого топика. В системе используются механизм флагов (мьютексов). Работает это так: 1) Перед тем как пользвоатель "4. Начинает редактировать" среда создает мьтекс с именем "Table\1". 2) Затем сдеда загружает данные из БД для редактирования. 3) Любые другие пользователи не смогут открыть эту карточку/документ в режиме редактирвоания, так как не смогут создать флаг с таким же именем. 4) После закрытия формы, мьютекс уничтожается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 13:20 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
хм... интересный топик, т.к. Рустама я знаю как спеца в FireBird Алексей Морозов 1) Перед тем как пользвоатель "4. Начинает редактировать" среда создает мьтекс с именем "Table\1". ====== т.е. на п.3 он должен выбрать Редактирует или нет? Каким образом? 3) Любые другие пользователи не смогут открыть эту карточку/документ в режиме редактирвоания, так как не смогут создать флаг с таким же именем. == такого пункта нет в ВИ по варианту Рустама п.п.a) (предвариательная блокировка на редактирование) т.к. не будет конфликта - РЕДАКТИРУЕТ ТОЛЬКО ОДИН ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 13:57 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
Petro123т.е. на п.3 он должен выбрать Редактирует или нет? Каким образом? По умолчанию при 2клике по строке грида (справочника, грида на форме) форма запускается в режиме редактирования. Но если присутствует блокировка на открываемый документ, или у пользователя нет прав на изменение данных, или так настроил программист, то форма запустится в режиме "Readonly" (с объяснением причин). Программист может добвить кнопку РЕДАКТИРОВАТЬ - в обработчике которой (в методе On?Click) изменить режим формы (свойство формы Mode = (emAdd, emEdit, emDelete, emReadonly)). Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 14:08 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
Алексей Морозов Petro123т.е. на п.3 он должен выбрать Редактирует или нет? Каким образом? По умолчанию при 2клике по строке грида (справочника, грида на форме) форма запускается в режиме редактирования. ==== не понял. Твой студен по умолчанию открывает Карточку на редактирование (и лочит таблицу мьютексом?) пиши коротко только на вопросы. Иначе опть будет 20 страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 14:38 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
_Petro123не понял. Твой студен по умолчанию открывает Карточку на редактирование (и лочит таблицу мьютексом?) Среда по умолчанию открывает Карточку на редактирование (и лочит записи таблиц мьютексом?). Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 15:08 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
Алексей Морозов, - по поводу новых требований (ВИ) которые ты изменил будем ждать автора топика. - по умолчанию на редактирование это ты зря. Люди просто смотрят инфу чаще ИМХО - мьютекс это у тебя из операционки? Где расположен? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 15:19 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
А кто будет прибивать эти мьютексы при обрыве соединения или когда пользователь заснул?Твоя среда? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 15:32 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
ОтМорозилА кто будет прибивать эти мьютексы при обрыве соединения или когда пользователь заснул?Твоя среда? наверно вместе с директором побегут по этажам искать уснувшего пользователя котрый по умолчанию 2 раза кликнул на таблице с карточками. А не дай бог пользователь будет удалённый. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 15:41 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
xА кто будет прибивать эти мьютексы при обрыве соединения или когда пользователь заснул?Твоя среда? СУБД или Среда (в зивисимости от типа СУБД и режима). Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 16:00 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
x наверно вместе с директором побегут по этажам искать уснувшего пользователя котрый по умолчанию 2 раза кликнул на таблице с карточками. А не дай бог пользователь будет удалённый. :) Ответишь кратко - начинается неуместный юмор. Ответишь развернуто, никто читать не будет. В среде предусмотрена кнопка [Редактировать]: - для больших организаций - для вывода предупреждения об отвественоости. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 16:04 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
xпо поводу новых требований (ВИ) которые ты изменил будем ждать автора топика. Каких требований? x- по умолчанию на редактирование это ты зря. Люди просто смотрят инфу чаще ИМХО Для мелких организаций - проще. Я добавлю утановку этого умолчания в следующей версии. x- мьютекс это у тебя из операционки? Где расположен? Мьютекс - это способ синхронизации. Реализовать его можно многими способами, принцип мы можете прочитать в инетернете. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 16:15 |
|
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
|
|||
---|---|---|---|
#18+
О, сие чудо уже именуется с большой буквы! Самое главное в ней - волшебная фразаавторБудет добавлено в следующей версии Это начинает напоминать заезженную пластинку:постоянно крутится,но только один надоедливый скрип с пустой тратой киловатт. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 18:41 |
|
|
start [/forum/topic.php?fid=33&gotonew=1&tid=1548670]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
12ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 270ms |
0 / 0 |