powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
18 сообщений из 18, страница 1 из 1
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655851
Новая Среда разработки. Как я реализую ВИ для 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 ВИ для получения автонумерации и генераторов-счётчиков будут описаны в отдельном топике
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655854
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попытка неумения логически проектировать многопользовательские системы переложить на возможности СУБД, которые предназначены для разруливания ситуаций неумения логически проектировать многопользовательские системы.
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655861
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для тех, кто считает себя архитекторами...
многопользовательская работа состоит не в том, что десять человек пытаются рыть траншею одной лопатой, а в том, что десять человек роют траншею одновременно десятью лопатами. Если вы не можете распределить лопаты по-нормальному, то какие же вы архитекторы тогда?
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655864
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s. это все к тому, что зачем создавать топики с явно идиотскими задачами и пытаться их решить при помощи козла отпущения под именем СУБД.
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655869
архитектор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmp.s. это все к тому, что зачем создавать топики с явно идиотскими задачами и пытаться их решить при помощи козла отпущения под именем СУБД.
Этого нет в жизни?
ID=1 для Вас равно одной лопате?
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655872
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архитектор
ID=1 для Вас равно одной лопате?
ID=1 для меня просто условие.
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655874
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ээээ....
Алексей Морозов2 - это не я.
Но в словах этого человека много логики, что странно для этого топика.

В системе используются механизм флагов (мьютексов). Работает это так:

1) Перед тем как пользвоатель "4. Начинает редактировать" среда создает мьтекс с именем "Table\1".

2) Затем сдеда загружает данные из БД для редактирования.

3) Любые другие пользователи не смогут открыть эту карточку/документ в режиме редактирвоания, так как не смогут создать флаг с таким же именем.

4) После закрытия формы, мьютекс уничтожается.
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм... интересный топик, т.к. Рустама я знаю как спеца в FireBird
Алексей Морозов

1) Перед тем как пользвоатель "4. Начинает редактировать" среда создает мьтекс с именем "Table\1".

====== т.е. на п.3 он должен выбрать Редактирует или нет? Каким образом?

3) Любые другие пользователи не смогут открыть эту карточку/документ в режиме редактирвоания, так как не смогут создать флаг с таким же именем.

== такого пункта нет в ВИ по варианту Рустама п.п.a) (предвариательная блокировка на редактирование) т.к. не будет конфликта - РЕДАКТИРУЕТ ТОЛЬКО ОДИН
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655908
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123т.е. на п.3 он должен выбрать Редактирует или нет? Каким
образом?



По умолчанию при 2клике по строке грида (справочника, грида на форме) форма
запускается

в режиме редактирования.



Но если присутствует блокировка на открываемый документ, или у пользователя
нет прав

на изменение данных, или так настроил программист, то форма запустится в
режиме

"Readonly" (с объяснением причин).



Программист может добвить кнопку РЕДАКТИРОВАТЬ - в обработчике которой

(в методе On?Click) изменить режим формы (свойство формы Mode =

(emAdd, emEdit, emDelete, emReadonly)).




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655927
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Морозов
Petro123т.е. на п.3 он должен выбрать Редактирует или нет? Каким
образом?
По умолчанию при 2клике по строке грида (справочника, грида на форме) форма
запускается в режиме редактирования.

==== не понял. Твой студен по умолчанию открывает Карточку на редактирование (и лочит таблицу мьютексом?)

пиши коротко только на вопросы. Иначе опть будет 20 страниц.
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655954
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Petro123не понял. Твой студен по умолчанию открывает Карточку на
редактирование (и лочит таблицу мьютексом?)

Среда по умолчанию открывает Карточку на редактирование (и лочит
записи таблиц мьютексом?).


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655958
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Морозов,
- по поводу новых требований (ВИ) которые ты изменил будем ждать автора топика.
- по умолчанию на редактирование это ты зря. Люди просто смотрят инфу чаще ИМХО
- мьютекс это у тебя из операционки? Где расположен?
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655968
ОтМорозил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кто будет прибивать эти мьютексы при обрыве соединения или когда пользователь заснул?Твоя среда?
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655975
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОтМорозилА кто будет прибивать эти мьютексы при обрыве соединения или когда пользователь заснул?Твоя среда?
наверно вместе с директором побегут по этажам искать уснувшего пользователя котрый по умолчанию 2 раза кликнул на таблице с карточками.
А не дай бог пользователь будет удалённый. :)
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655991
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xА кто будет прибивать эти мьютексы при обрыве соединения или когда
пользователь заснул?Твоя среда?

СУБД или Среда (в зивисимости от типа СУБД и режима).


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35655994
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x
наверно вместе с директором побегут по этажам искать уснувшего пользователя
котрый по умолчанию 2 раза кликнул на таблице с карточками.
А не дай бог пользователь будет удалённый. :)


Ответишь кратко - начинается неуместный юмор.
Ответишь развернуто, никто читать не будет.

В среде предусмотрена кнопка [Редактировать]:
- для больших организаций
- для вывода предупреждения об отвественоости.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35656001
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xпо поводу новых требований (ВИ) которые ты изменил будем ждать
автора топика.

Каких требований?

x- по умолчанию на редактирование это ты зря. Люди просто смотрят
инфу чаще ИМХО

Для мелких организаций - проще.

Я добавлю утановку этого умолчания в следующей версии.

x- мьютекс это у тебя из операционки? Где расположен?

Мьютекс - это способ синхронизации.
Реализовать его можно многими способами, принцип мы можете прочитать в
инетернете.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
    #35656072
О, сие чудо уже именуется с большой буквы!
Самое главное в ней - волшебная фразаавторБудет добавлено в следующей версии
Это начинает напоминать заезженную пластинку:постоянно крутится,но только один надоедливый скрип с пустой тратой киловатт.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Новая Среда разработки. Как я реализую ВИ для MS SQL server, FireBird, MySQL, и т.д.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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