powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Новая Среда разработки. Зачем длинные транзакции?
109 сообщений из 109, показаны все 5 страниц
Новая Среда разработки. Зачем длинные транзакции?
    #35652223
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начало:
/topic/603465&pg=1

ln123Алексей МорозовВы не ответили на вопрос.
Зачем держать транзакцию открытой, пока редатировается документ?



Хотя вопрос и не мне попробую написать свои мысли на этот счет.

Довольно часто при работе с версиониками работу с документами организуют с длинных транзакциях т.е. когда нужно открыть документ на редактирование делают select ... from ... for update т.е. блокируют в базе запись представляющую собой документ, а затем по мере редактирования сразу отправляют изменения на сервер, а при нажатии кнопки сохранить посылают commit.

У вас насколько я понял используется другой подход т.е. все изменения делаются и хранятся на клиенте (для блокировки записи вы используете некий свой механизм), а затем в короткой транзакции по окончание редактирование отправляются на сервер.

У обоих подходов есть свои плюсы и минусы.
В случае вашего подхода для сложных объектов ИМХО труднее писать код, если же среда скроет все сложности от разработчика то тогда ваш подход будет явно лучше.
Есть такая ВИ:
- Главная форма - карточка. На ней кнопка "Редактировать" с гланой табличкой свойств.
А также много подсвойств в кнопках - дочках (один - ко многим в БД).
- При открытии подкнопок - форм, там присутствуют кнопки "ОК" и "Отмена"
- На главной форме "Сохранить" и "Отменить".

Для этого нужна длинная транзакция на кнопку "Редактировать", чтобы потом работать с остальными данными в БД не заботясь о чтении сырых данных другими пользователями - коннектами.

Понятно изложил?
Т.к. ЭТО в той теме OFFTOP
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652320
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Есть такая ВИ:
- Главная форма - карточка. На ней кнопка "Редактировать" с главной табличкой свойств.
А также много подсвойств в кнопках - дочках (один - ко многим в БД).
- При открытии подкнопок - форм, там присутствуют кнопки "ОК" и "Отмена"
- На главной форме "Сохранить" и "Отменить".

Для этого нужна длинная транзакция на кнопку "Редактировать", чтобы потом работать с остальными данными в БД не заботясь о чтении сырых данных другими пользователями - коннектами.

Понятно изложил?

Нет.

На форме есть грид содержащий несколько записей из второй таблицы, а пользователь выбрирает какую строку редактировать. Потом нажимает Изменить строку?

Надо в свойствах таблицы выбрать "Form". При щелчке по строке грида, данные из
строки скопируются в поля формы. При выолнении Apply формы, скопируются обратно.

Либо свойство грида/датасета - Grid.ModalForm(Row, Mode) выполнит аналогичное действие.

Либо c помощью метода CreateModalForm(Name, CallbackFunctionName)
- создать форму, и скопировать нужные данные (NewForm.City = Data[y].City).
А в функции указанной в CallbackFunctionName выполнить обратное
копирование.

Все данные хранятся в одной записи таблицы?

В этом случае все данные находятся на клиенте, программисту надо
лишь написать CreateCommonModalForm('Form10'). Этот метод скопирует
данные из этой формы в создаваемую форму. А при вызове метода
Apply новой формы скопирует все обратно. Главная форма будет
заблокирована до завершения работы текущей.

Либо c помощью метода CreateModalForm(Name, CallbackFunctionName)
- создать форму, и скопировать нужные данные (NewForm.City = City).
А в функции указанной в CallbackFunctionName выполнить обратное
копирование.

Либо разместить все даные на вкладках - более стандартный подход
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652465
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай договоримся.
В этой теме желательно сначала по вариантам использования ( ВИ ), потом программирование.

Итак:
авторНа форме есть грид содержащий несколько записей из второй таблицы, а пользователь выбрирает какую строку редактировать. Потом нажимает Изменить строку?
Нет.
Главная форма - Карточка клиента и они любят нетабличную форму (одна запись из контролов).
А в неё мы входим хоть по поиску, хоть по 2 клику на общем списке.

авторВсе данные хранятся в одной записи таблицы?
Нет. Все данные по сущности "Клиент" храняться в нормализованном виде в массе таблиц СУБД.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652595
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x
Давай договоримся.
В этой теме желательно сначала по вариантам использования (ВИ), потом
программирование.


Ок.
Только я не понял, как в базе данных хранится информация о клиенте.

Все данные по сущности "Клиент" храняться в нормализованном виде в массе
таблиц СУБД.


Значит существует таблицы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Таблица - Клиенты
  Код клиента (первичный ключ)
  ФИО
  Адрес
  Дата рождения

Таблица - Дополнительные свойства клиетнов
  Код клиента (первичный ключ)
  Номер паспорта
  Номер страховки

Так что ли?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652630
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов,

конечно. У меня, например, таких штук 15, включая FK на другие таблицы (код ДачериСына к примеру).
Короче делать это всё на клиенте - каменный век.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652634
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не "Номер паспорта", а "код документа удостоверяющего личность" из справочника
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652658
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем хуже хранить эти данные вместе?

Таблица - Клиенты
Код клиента (первичный ключ)
ФИО
Адрес
Дата рождения
Код документа удостоверяющего личность (FK на другую таблицу)
Номер страховки
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652670
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у одного клиента может быть несколько документов, несколько детей, несколько телефонов, несколько офисов, несколько ... - улавливаете?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652676
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовА чем хуже хранить эти данные вместе?

нда...

- один ко многим в одной?
- даже если .... это тебе не поможет. Длинные транзакции нужны.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652724
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей МорозовА чем хуже хранить эти данные вместе?

нда...
- один ко многим в одной?
- даже если .... это тебе не поможет. Длинные транзакции нужны.


нда...
Вопрос был задан специально, потому что вы не поняли меня в первый раз.

авторавторНа форме есть грид содержащий несколько записей из второй таблицы, а пользователь выбрирает какую строку редактировать. Потом нажимает Изменить строку?
Нет.
Главная форма - Карточка клиента и они любят нетабличную форму (одна запись из контролов).

Но и я вас не понял, я спросил у 25 человек, что значит:
"Главная форма - Карточка клиента и они любят нетабличную форму (одна запись из контролов)."
никто не понял, ну ладно...

Этот грид (о котором я писал), находится на форме вместе с полями - ФИО, ДАТА РОЖДЕНИЯ.
И содержит все записи таблицы - "один ко многим" (например - несколько документов, несколько детей, несколько телефонов, несколько офисов, несколько ...)

Вы хотите, что бы все эти гриды редактировались не в ячейках (как в 1С)?
А с использованием отдельной формы?
Что бы на форме присутствовала кнопка ОК и ОТМЕНА. Что бы
при нажатии на ОТМЕНА, изменения внесенные на суб-форме
были отменены (отчачены) ??
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652748
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
А чем хуже хранить эти данные вместе?

Нормализация.
Адрес составной компонент, например, индекс, страна, город, улица, дом и т.п.
К тому же адресов у клиента масса: юридический, почтовый.
Если подумать об удаленных складах и т.п. становится совсем плохо...
и т.д. и т.п.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652783
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
Но и я вас не понял, я спросил у 25 человек, что значит:
"Главная форма - Карточка клиента и они любят нетабличную форму (одна запись из контролов)."
никто не понял, ну ладно...

Видимо, я не был из числа этих 25 человек. :) Хотя, конечно, можно было бы сформулировать мысль и по точнее.

Алексей МорозовЭтот грид (о котором я писал), находится на форме вместе с полями - ФИО, ДАТА РОЖДЕНИЯ.И содержит все записи таблицы - "один ко многим" (например - несколько документов, несколько детей, несколько телефонов, несколько офисов, несколько ...)

Это я тоже понял.

Алексей МорозовВы хотите, что бы все эти гриды редактировались не в ячейках (как в 1С)?
А с использованием отдельной формы?

Лично я так и делаю. Редактирование в гриде не всегда удобно для пользователя. Да и в гриде, как правило, отображаю не всю вытаскиваемую информацию, а лишь ее часть. Все остальное - в отдельной форме, которая предназначена для просмотра и/или редактирования данных.

P.S. Sorry, конечно, что вмешиваюсь в вашу дуэль. Считайте меня просто секундантом. :))
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652792
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЛично я так и делаю. Редактирование в гриде не всегда удобно для пользователя. Да и в гриде, как правило, отображаю не всю вытаскиваемую информацию, а лишь ее часть. Все остальное - в отдельной форме, которая предназначена для просмотра и/или редактирования данных.

Тут именно так и есть.

автор
P.S. Sorry, конечно, что вмешиваюсь в вашу дуэль. Считайте меня просто секундантом. :))


Да я все хочу точку поставить в этой странной бесседе.

Теперь когда все разобрались, как организованы данные, обсудим зачем тут длинные транзакции.
(кстати применять длинные транзакции можно и в этой среде, только переносимость пострадает. И кода придется немного руками написать.)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652805
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по сообщениям Petro123 дельфист еще тот.

Помог бы сделать среду более удобной для дельфистов, а
не пытался (часто необоснованно) искать возможность
аргументировать своё пренебрежение.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35652819
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовТеперь когда все разобрались, как организованы данные, обсудим зачем тут длинные транзакции.

Вообще стараюсь избегать длинных транзакций. Хотя и не всегда получается.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653638
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Довольно часто при работе с версиониками работу с документами организуют с длинных транзакциях т.е. когда нужно открыть документ на редактирование делают select ... from ... for update т.е. блокируют в базе запись представляющую собой документ, а затем по мере редактирования сразу отправляют изменения на сервер, а при нажатии кнопки сохранить посылают commit. Всю жизнь работал с версионниками (Oracle), но ни разу не использовал длинных транзакций в пользовательских приложениях. Вот сейчас приходится самом работать в приложении, которое такие транзакции использует и ничего кроме нецензурных слов по этому поводу найти не могу :) Крайне неудобно работать. Хотя, возможно, что тут не длинные транзакции виноваты, а чьи-то руки...
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653769
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey,

дык, давай обсудим как это сделать. Я друго пути для данного ВИ не нашёл.

Если ты сервер, не суетись под клиентом (с)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653854
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123дык, давай обсудим как это сделать. Я друго пути для данного ВИ не нашёл.
Ну как всегда, сначала надо с ВИ разобраться - правильно ли он описан. Что мы имеем - нажимая кнопку "Сохранить" пользователь практически не представляет того, что именно он будет "сохранять". Он понаоткрывал десяток экранчиков в каких-то что-то правил, в каких-то нет. А пользователь выполняя необратимое действие (commit таковым как раз и является) должен достаточно внятно представлять, что именно он делает. А здесь, он практически говорит, я - не помню чего делал, но пусть будет так. То есть я, как архитектор системы, предлагаемый ВИ забраковал бы. В качестве альтернативы я бы предложил все изменения, выполняемые в дочерних формах отражать на основной и, соответственно, хранить в данных формы вплоть до момента сохранения в бд. Либо разбивать транзакцию на более мелкие части.

Теперь о преблемах, которые с длинными транзакциями возникают. И не технических, а пользовательских. Вот берем описанный ВИ редактирования карточки. Зайдя в десятое подсвойство, пользователь вдруг понял, что для выполнения операции надо немножко какой-нибудь словарь обновить (скажем новый вид деятельности в него добавить). Для меня очевидно, что транзакция по редактированию словаря должна быть отдельной от редактирования карточки.
В той системе, с которой мне приходится сейчас работать, в данном случае предлагается еще один экземпляр модуля запустить :)
А ваши предложения?

Petro123 Если ты сервер, не суетись под клиентом (с)
К счастью, я не сервер :)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653918
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем длинные транзакции?
Отвечу так: это такой же бред, как и заставлять натурщицу не покидать свое место до полного завершения картины. Такой же бред, как и запускать в супермеркет по одному человеку. И т.д. и т.п.
Обычно "длинными транзакциями" страдают те, кто не понимает разницы между данными сохраненными в БД и информацией. А это две разных сущности.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653943
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> запускать в супермеркет по одному человеку

Вы хотите сказать, что в некоторых случаях без длинных транзакций
для выполнения работы придется заблокировать всю БД? И лишь один
пользователь сможет работать в один момент времени?

Либо внутри одного соединения (контекста) можно выполнять одну
задачу?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653955
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовВы хотите сказать, что в некоторых случаях без длинных транзакций
для выполнения работы придется заблокировать всю БД?Мне показалось, что iscrafm как раз против длинных транзакций. И своей фразой он хотел сказать, что с длинными транзакциями придется блокировать всю базу :)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35653975
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов

Вы читаете как-то по спирали что-ли или, каким-то непонятным пока мне способом.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654016
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyМне показалось, что iscrafm как раз против длинных транзакций.
я не отношусь к подвиду людей, которые могут сесть и не отвелакаясь и не выполняя промежуточные сохранения набросать, допустим, большой документ. В процессе работы постоянно жму на кнопку сохранить. До тех пор, пока я не сказал себе или другим (допустим опубликовал) что все готово - это просто данные, черновик. После - информация. Те, кто этого не понимают начинают придумывать и пытаются обосновать необходимость каких-то "длинных транзакций". Транзакция к счастью коротка. В приведенном примере - опубликовать (готово).
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654082
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xВы читаете как-то по спирали что-ли или, каким-то непонятным пока
мне способом.



Просто я нахожу все возможные ответы на вопрос.



Ваша фраза:

"запускать в супермеркет по одному человеку"

значит

Значит супермаркер одновременно сможет обслужить только одного
клиента.




Длинные транзакции позволяют, обслуживать много человек одновременно -

у них же разные соединения. А если программа использует многопоточность

и много соединений (контекстов) для каждого потока - то проблемы "в
супермеркет

по одному" вообще нет.



Если вы пришли к такому выводу, я могу предположить - что многопоточность
для вас

новое слово.



А длинные транзакции - это не плохо. Просто аналогичного результата можно

дыбится сохраняя данные на клиенте. Я стремлюсь выкинуть из своей среды всю

избыточность, и сейчас думаю - Какие преимущества у длинные транзакция,

перед сохранением на клиенте?




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654125
ln123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я привел пример длинных транзакций как один из примеров взаимодействия с базой который мне встречался. Лично мне длинные транзакции не нравятся у них на мой взгляд есть только один плюс это то что хранение изолированного состояния состояния сложного объекта перекладывается на сервер несколько легче писать клиентскую часть (о части вещей можно не думать так как их разрешит сервер). Собственно меня и интересовало насколько среда разработки Алексея позволит изолировать прикладного разработчика от размышлений типа: пользователь при редактирование накладной создал товар, а другой пользователь этот товар удалил что произойдет при сохранение накладной? Есть сложный объект как в нем реализовать отмену сделанных операций или их части? Какую структуру хранения нужно создать для хранения объекта и как реализовать что бы на сервер отсылались только изменения? Я редактируют накладную строки которой созданы на основе счета в это время другой пользователь удаляет из счета строку, что будет с моей накладной? ну и так далее.

А так честно говоря среда Алексея напоминает Power Builder + framework. Причем Power Builder в чем-то (по любому в части DataWindow) и по круче будет
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654196
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов

написано много, но ничего не понял к сожалению. Способ чтения становится для меня все более непонятным.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654213
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что именно вы не поняли?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654223
Фотография _MDA_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для использования длинных транзакция у вас в системе должен быть предусмотрен механизм сессий, таблицы блокировки (или если бы была 3-х звенка объект на сервере) и система для lock/unlock объектов. Так же в каждом sql выражении должна быть возможность учёта/не учёта этих заблокированных объектов.

Под объектами я понимаю именно логические сущности, т.е. открытие на рекдактирование к примеру карточки А, должна приводить к блоку всех её составляющих.

Но повторюсь этот механиз не имеет никакого отношения к транзакциям самой СУБД.

Автору системы советую почитать М.Фаулер, "Архитектура корпоративных программных приложений".
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654232
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моё мнение - вы не правы.

Использование длинных транзакций, не ограничивает работу операторов программы
(позволяет изменять многие документы отдельно), если производить
редактирование каждого документа в отдельном соединении (контексте).

Использование соединений (контекстов) для каждого документа - необходимо
для многопоточности. Существуют долгие запросы (несколько минут), оператор
в это время может выполнять другую работу.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654266
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о чем здесь вообще. О многопоточности или так называемой "длинной транзакции". Билеты на тот же самолет что-ли не покупали.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654304
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> пользователь при редактирование накладной создал товар, а другой
> пользователь этот товар удалил что произойдет при сохранение накладной?



Перефразирую вопрос:

Пользователь добавил в накладную строку, в которой ссылка на товар? И до
сохранения документа его удалили?

Пользователь выбрал в документе клиента? И до сохранения документа его
удалили?




1. По умолчанию - только при сохранении документа, пользователь получит
сообщение, что товар удален.

(самый быстрый режим)



2. Если сохранение документа происходит при каждом изменении - товар удалить
будет невозможно

(используется при списании товаров множеством операторов. Недоступен
откат средствами среды, медленно, надежно)



3. Если пользователь использует флаги (именованные мьютексы на уровне БД -
CreateLock/CheckLock),

то товар средствами программы будет удалить невозможно.

(быстрее, контроль на плечах программиста)



> Есть сложный объект как в нем реализовать отмену сделанных операций или их
> части?



Созданием отдельной формы.

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

формами (формой-гридом), откат, блокировку основной формы.



> Какую структуру хранения нужно создать для хранения объекта и как
> реализовать

> что бы на сервер отсылались только изменения?



Для формы необходимо указать Таблицу БД. Среда сама создаст объекты

соответствующие полям БД, и при запуске формы загрузит в них данные.



Так-же можно выбрать несколько таблиц со связями "один ко многим",

они будут загружены в виде массивов.



Если на форме будут присутствовать поля ввода и гриды с идентичными полями,

но один будут заполнены загруженными данными.



> Я редактируют накладную строки которой созданы на основе счета в это

> время другой пользователь удаляет из счета строку, что будет с моей
> накладной?



Среда не автоматизирует это.



1. Если программист изменяет данные созданием объектов (как в 1С),

то во время создания объекта счета он получит сообщение -

"Невозможно открыть счет для редактирования, так как он редактирвоается xxx"



2. Если программист изменит данные SQL-запросами, то в открытом документе

данные изменены не будут. Проверить открыты ли документы, и заблокировать

из запуск может с помощью флагов (CreateLock)


> А так честно говоря среда Алексея напоминает Power Builder + framework.

> Причем Power Builder в чем-то (по любому в части DataWindow) и по круче
> будет


Хорошо, напишем сравнение ПУ и PowerBuilder.




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654354
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xо чем здесь вообще. О многопоточности или так называемой "длинной
транзакции". Билеты на тот же самолет что ли не покупали.



Я о длинной транзакции.

Вы не увеете думать на 2 хода вперед.



Вы утверждаете, что то о супермаркете и самолете.



Я же утвержаю, что длинная транзакция не ограничивает возможности

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



***



Но для программ использующих одно соединение это не верно (хотя бы письмо
613985).



Поэтому я оговорился что - "при использовании нескольких соединений" .



И добавил, что "несколько соединений" - это не абсурдная идея, а
необходимость

в современном мире (при использовании многопоточных приложений ).



Где тут не прав? Или что вы не поняли?



Я думал о деле говорить, а получается какая юмористическая передача.

Вы постоянно уходите от темы обсуждения.




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654357
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще я напишу NTTP Server для SQL.RU
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654422
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey
нажимая кнопку "Сохранить" пользователь практически не представляет того, что именно он будет "сохранять".

====== неправда. Standart Windows. У него перед глазами "Карточка Иванова" или "Договор 123"

В качестве альтернативы я бы предложил все изменения, выполняемые в дочерних формах отражать на основной

====== пробовали? Наверно нет.

и, соответственно, хранить в данных формы вплоть до момента сохранения в бд

====== пробовали? Наверно нет.


. Либо разбивать транзакцию на более мелкие части.

===== транзакция - атомарный неделимый объект

Теперь о преблемах, которые с длинными транзакциями возникают. И не технических, а пользовательских. Вот берем описанный ВИ редактирования карточки. Зайдя в десятое подсвойство, пользователь вдруг понял, что для выполнения операции надо немножко какой-нибудь словарь обновить

====== там редактируется только одна СУЩНОСТЬ а не словари
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654426
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyАлексей МорозовВы хотите сказать, что в некоторых случаях без длинных транзакций
для выполнения работы придется заблокировать всю БД?Мне показалось, что iscrafm как раз против длинных транзакций. И своей фразой он хотел сказать, что с длинными транзакциями придется блокировать всю базу :)
способа реализации ВИ никто не предложил. И БД не блокируется.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654432
-lesha-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmЗачем длинные транзакции?
Отвечу так: это такой же бред, как и заставлять натурщицу не покидать свое место до полного завершения картины. Такой же бред, как и запускать в супермеркет по одному человеку. И т.д. и т.п.
Обычно "длинными транзакциями" страдают те, кто не понимает разницы между данными сохраненными в БД и информацией. А это две разных сущности.

С другой стороны, позволить сохранить пачку транзакций только в том случае если они балансируются – это уже не бред.

Поэтому как интерфейсное решение – карточка мастер с деталями, в которой по кнопке ok все сохраняется, или нет, имеет право на жизнь.

Но конечно, реализовывать такое средствами базы данных НЕЛЬЗЯ, это прописная истина уже минимум 10 лет. И я в шоке что такая реализация является темой дискуссии.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654474
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут уже было сказано, что "сложный объект" программист на клиенте не должен контроллировать. Это обязанность СУБД.

Если мне версионник Оракл позволяет без блокировок ставить метку на объект "Начали редактировать" и через некоторое время либо её снять либо сохранить изменения, то я только рад этому.
Все рассуждения на тему что это плохо и т.д.
1) требуют технических обоснований (на форумах СУБД их по 20 страниц постоянно)
2) нельзя путать старт транзакции и блокировки от неё и её ТИПА. Это разные вещи. и их можно избежать.
3) мне важна "подноготня" работы СУБД только в том случае, если она не справляется по каким либо причинам (например блокировочник MS SQL Server).
4) Во всех остальных случаях "длинная транзакция" логично вытекает из ВИ.

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654509
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
действительно, можно сказать прописная истина уже много лет, если речь идет о редактировании сложных объектов. ChekIn-CheckOut образно. Реализаций CheckIn может быть множество. Я предпочитаю "изъятие" документа из хранилища (короткая транзакция), редактирование и повторное размещение (короткая транзакция).
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654518
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Bogdanov Andrey
нажимая кнопку "Сохранить" пользователь практически не представляет того, что именно он будет "сохранять".

====== неправда. Standart Windows. У него перед глазами "Карточка Иванова" или "Договор 123"
А что именно в этом догворе он изменил - он сказать не может. Он видит только заголовок сохраняемой информации, и плохо представляет о том, что именно он представляет.

Petro123
В качестве альтернативы я бы предложил все изменения, выполняемые в дочерних формах отражать на основной

====== пробовали? Наверно нет.

и, соответственно, хранить в данных формы вплоть до момента сохранения в бд

====== пробовали? Наверно нет.

Пробовал многократно. И успешно. Еще раз повторю, если вы сами не читаете - "Ни в одной из разработанных мною систем я не использовал длинных транзакций."

Petro123
. Либо разбивать транзакцию на более мелкие части.

===== транзакция - атомарный неделимый объект

Так я и говорю, что нужно вносить изменения в ваш ВИ. И немножко задуматься о том, какие именно объекты там "неделимы". Если есть обоснованное требование неделимости всех этих изменений (во что я не очень верю), то надо задуматься о реализации такого требования и одним из способов может быть хранение данных в форме.

Petro123
Теперь о преблемах, которые с длинными транзакциями возникают. И не технических, а пользовательских. Вот берем описанный ВИ редактирования карточки. Зайдя в десятое подсвойство, пользователь вдруг понял, что для выполнения операции надо немножко какой-нибудь словарь обновить

====== там редактируется только одна СУЩНОСТЬ а не словари
То есть мы обсуждаем сферического коня в вакууме, а не работу реального пользователя?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654531
-lesha-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Тут уже было сказано, что "сложный объект" программист на клиенте не должен контроллировать. Это обязанность СУБД.


Если объект "сложный" для клиентского приложения, то, наверное, он будет "сложный" и для пользователя ;-). Разбейте его на части и сохраняйте по частям, с соответствующим интерфейсом. Тогда и пользователю будет легче и базе данных, разве что программист не сможет похвастаться супер бупер сложным объектом :-)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654553
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x4) Во всех остальных случаях "длинная транзакция" логично вытекает
из ВИ.

Я не услышал ни одного преимущества.
Лишь фразы типа "Всем хорошо известно, ..."

Просто рассмотрим выполняемые команды при редактирования документа.
Длинные транзакции, для товарной накладной:

Код: 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.
// Запуск формы
START TRANSACTION
SELECT CLIENT, DOCDATE FROM ORDER WHERE CODE= 10 
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE HEADER= 10 
// Пользователь запускает суб форму редактирования строки (ТОРМОЗ)

SELECT GOOD, CNT, GTD, NDS, DESCR FROM ORDERDETAIL WHERE CODE= 101 
// Пользователь закрывает суб форму редактирования строки сохранением 
(ТОРМОЗ)
UPDATE ORDERDETAIL SET GOOD= 121 , CNT= 34 , GTD='12', NDS= 18 , DESCR='lalala' 
WHERE CODE= 101 
// СУБД выполняет какие то расчеты, например определеяет учетную цену - и её 
надо отобразиь в основном гриде (ТОРМОЗ)
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE CODE= 101 
// Пользователь запускает суб форму редактирования строки (ТОРМОЗ)
SELECT GOOD, CNT, GTD, NDS, DESCR FROM ORDERDETAIL WHERE CODE= 102 
// Пользователь закрывает суб форму редактирования строки сохранением 
(ТОРМОЗ)
UPDATE ORDERDETAIL SET GOOD= 121 , CNT= 34 , GTD='12', NDS= 18 , DESCR='lalala' 
WHERE CODE= 102 
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE CODE= 102 
// Пользователь сохраняет изменения
COMMIT
// СУБД выполняет какие то расчеты, например автонумерация
SELECT CLIENT, DOCDATE FROM ORDER WHERE CODE= 10 

Другой способ для товарной накладной:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CreateLock('order_10');
// Старт
SELECT CLIENT, DOCDATE FROM ORDER WHERE CODE= 10 
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE HEADER= 10 
// Пользователь запускает суб форму редактирования строки

// Пользователь закрывает суб форму редактирования строки сохранением
// Какие то расчеты, например определеяет учетную цену - и её надо отобразиь 
в основном гриде
// Пользователь запускает суб форму редактирования строки
// Пользователь закрывает суб форму редактирования строки сохранением
// Пользователь сохраняет изменения (ТУТ МЕДЛЕНЕЕ)
UPDATE ORDER ... WHERE CODE= 10 
UPDATE ORDERDETAIL ... WHERE CODE= 101 
UPDATE ORDERDETAIL ... WHERE CODE= 102 
// СУБД выполняет какие то расчеты, например автонумерация
SELECT CLIENT, DOCDATE FROM ORDER WHERE CODE= 10 
// Пользователь сохраняет изменения еще раз (ТУТ МЕДЛЕНЕЕ)
UPDATE ORDER ... WHERE CODE= 10 
UPDATE ORDERDETAIL ... WHERE CODE= 101 
UPDATE ORDERDETAIL ... WHERE CODE= 102 
// Пользователь закрывает форму
ReleaseLock('order_10');

Значительно меньше обращений к серверу.

В чем преимущества то?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654558
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов,

просьба модератору убрать отсюда код, т.к. ВИ обсуждаем. Алексей! Я ж просил.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654624
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey"Ни в одной из разработанных мною систем я не использовал длинных транзакций."
- Изменить ВИ и воткнуть ВСЮ инфу на одну форму ИМХО очень спорно.
- Хранить все формы дочки (не уничтожая до уничтожения главной формы?)

Ну тут от ЯП зависит. Если Си и Java то это одно. В Delphi такие варианты:

- использовать готовые библиотеки (ClientDataSet). Т.к. остальные могут сбросить данные в БД ещё на смене строки в Талице-Форме (Post)
- да вроде и всё.

Минусы :
- многократно увеличивается код, т.к. нельзя сбросить изменения в БД и уничтожить формы-дочки
- нельзя применять проверку правильности ввода данных в БД (т.к. триггеры не работают)
- необходимо помнить очерёдность изменения в дочках-формах, т.к. это иногда важно при сбросе в БД
- следовательно на клиенте мы пишем всё больше и больше логики.
Плюсы :
- сервер не суетится под клиентом т.к. ОН сервер.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654644
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, основной аргумент в форумах СУБД - нельзя делать блокировок и блокирующих транзакций, а не длинных...

Чтобы не было случаев: Мария Ивановна "взяла" на редактирование документ (заблокировала) и ушла пить чай.
Сабж не про этот случай. А про многообразие транзакций на каждой взятой СУБД и длинную транзакцию с точки зрения времени.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654677
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- многократно увеличивается код, т.к. нельзя сбросить изменения в БД и уничтожить формы-дочки.
необходимо помнить очерёдность изменения в дочках-формах, т.к. это иногда важно при сбросе в БД
следовательно на клиенте мы пишем всё больше и больше логики.


Код не увеличивается, среда (почти) все выполняет прозрачно.

Petro123 нельзя применять проверку правильности ввода данных в БД (т.к. триггеры не работают)

В критических случаях я проверяю данные два раза.

1) При редактировании на клиенте. Например добавлении товаров в накладную, среда не даст добавить несуществующих товаров. Этот код не гарантирует отсутствие ошибок, он позволяет предупредить пользователя заранее.

2) При сохранении в БД. Триггер/хранимка проверит еще раз наличие товаров. При этом, этот код будет меньше в 10 раз. Так как все консультации пользователя выполнил пункт 1
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654708
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что случится при разрыве соединения с длинной транзакцией?

У меня соединеине умышленно рвется через 10 минут простоя, и
незаметно для пользоваля открывается.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654760
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовА что случится при разрыве соединения с длинной транзакцией?
У меня соединеине умышленно рвется через 10 минут простоя, и
незаметно для пользоваля открывается.
опять что то новенькое :)
Простоя чего? Мы что? В стойлах?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654779
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
// Запуск формы
START TRANSACTION
SELECT CLIENT, DOCDATE FROM ORDER WHERE CODE= 10 
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE HEADER= 10 
// Пользователь запускает суб форму редактирования строки (ТОРМОЗ)

SELECT GOOD, CNT, GTD, NDS, DESCR FROM ORDERDETAIL WHERE CODE= 101 
// Пользователь закрывает суб форму редактирования строки сохранением 
(ТОРМОЗ)
UPDATE ORDERDETAIL SET GOOD= 121 , CNT= 34 , GTD='12', NDS= 18 , DESCR='lalala' 
WHERE CODE= 101 
// СУБД выполняет какие то расчеты, например определеяет учетную цену - и её 
надо отобразиь в основном гриде (ТОРМОЗ)
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE CODE= 101 
// Пользователь запускает суб форму редактирования строки (ТОРМОЗ)
SELECT GOOD, CNT, GTD, NDS, DESCR FROM ORDERDETAIL WHERE CODE= 102 
// Пользователь закрывает суб форму редактирования строки сохранением 
(ТОРМОЗ)
UPDATE ORDERDETAIL SET GOOD= 121 , CNT= 34 , GTD='12', NDS= 18 , DESCR='lalala' 
WHERE CODE= 102 
SELECT CODE,GOOD, CNT FROM ORDERDETAIL WHERE CODE= 102 
// Пользователь сохраняет изменения
COMMIT
// СУБД выполняет какие то расчеты, например автонумерация
SELECT CLIENT, DOCDATE FROM ORDER WHERE CODE= 10 

Алексей Морозов, еще одно подтверждение твоей полной некомпетентности.
Если уровень изоляции READ COMMITED, то блокировки держатся только на время выполнения запроса, таким образом, все читают и перезаписывают одно и тоже.
Если выше, то один работает, а остальные отдыхают.
Это тебе пытались объяснить целый месяц,но безрезультатно.
2 ляп. Если наложена блокировка, то она действует для всех соединений.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654813
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 Минусы :
- многократно увеличивается код, т.к. нельзя сбросить изменения в БД и уничтожить формы-дочки
- нельзя применять проверку правильности ввода данных в БД (т.к. триггеры не работают)
- необходимо помнить очерёдность изменения в дочках-формах, т.к. это иногда важно при сбросе в БД
- следовательно на клиенте мы пишем всё больше и больше логики.
Мы об удобстве программиста или пользователя говорим? Вы предлагаете выбрать подход с длинными транзакциями потому-что это удобнее программисту (все ваши минусы относятся исключительно к этому). Я же говорю о том, что описываемы ВИ крайне неудобен для пользователя.
Один из минусов (невозможность открыть какую-то другую форму приложения и поработать там, а потом вернуться к незаконченной работе) я уже упоминал. Вы решили это проигнорировать.
Ну и основной минус - необходимость в уме отслеживать ве выполняемые действия. Вот зашел я в карточку - одно окошко открыл, другое, третье, потом чайку пошел выпить, вернулся, еще что-то посмотрел. Теперь пытаюсь формочку закрыть - а мне тут "вы хотите сохранить сделанные изменения?". Вот ведь блин - а что я менял-то. Вдруг я что-то важное поменял, да сохранить забыл. Или это просто я случайно мышкой по комбо-боксику щелкнул...
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654837
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa
Алексей Морозов, еще одно подтверждение твоей полной некомпетентности.
Если уровень изоляции READ COMMITED, то блокировки держатся только на время
выполнения запроса, таким образом, все читают и перезаписывают одно и тоже.
Если выше, то один работает, а остальные отдыхают.


Что за бред. При REPEATABLE READ все дружно работают и не видят
изменений друг друга до COMMIT.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654923
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey
Вот зашел я в карточку - одно окошко открыл, другое, третье, потом чайку пошел выпить, вернулся, еще что-то посмотрел. Теперь пытаюсь формочку закрыть - а мне тут "вы хотите сохранить сделанные изменения?". Вот ведь блин - а что я менял-то. Вдруг я что-то важное поменял, да сохранить забыл. Или это просто я случайно мышкой по комбо-боксику щелкнул...
- вы забыли, что есть кнопка "Редактировать". Если вы в Excell нажали F2 и пошли чай пить, то это как?
Не принимается.

Кроме того, я часто встречаю заказчиков, которые говорят именно про кнопку:
"Добавь здесь кнопку "Дети", кнопку "Долги" и кнопку "Недвижимость"".
Вы ему скажете: "Из за длинных транзакций или забывчивости это надо по другому"?


Bogdanov Andrey
Один из минусов (невозможность открыть какую-то другую форму приложения и поработать там, а потом вернуться к незаконченной работе) я уже упоминал. Вы решили это проигнорировать.

- можно :)
Две карточки - 2 экземпляра формы карточка. Надеюсь про MDI/SDI говорить не будем здесь?
Что удобнее первое или второе. Заблудится везде можно. На то и архитектор.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654936
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в том, что с короткими транзакциями можно только простой ВИ организовать (всё на одной форме и всё грузится на клиента при открытии формы карточки).
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654953
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно верно!Они не будут видеть изменений друг друга, но с одним существенным замечанием - они не будут видеть ничего
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654956
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Вопрос в том, что с короткими транзакциями можно только простой ВИ
> организовать
> (всё на одной форме и всё грузится на клиента при открытии формы
> карточки).

Да, но какие в этом минусы?

Кроме довода "больше кода", который мы не считаем существенным.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35654985
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Кроме того, я часто встречаю заказчиков, которые говорят именно про кнопку:
"Добавь здесь кнопку "Дети", кнопку "Долги" и кнопку "Недвижимость"".
Вы ему скажете: "Из за длинных транзакций или забывчивости это надо по другому"?
Я легко добавлю в форму люьбое количество кнопок безо всяких длинных транзакций.
И не уверяйте меня, что изменения сделанные при нажатии кнопки "Дети" оябзаны быть в одной транзакции с изменениями, которые по кнопке "Долги" делаются :)
Это ваше замечания о разных кнопочках как раз и доказывает несостоятельность вашего ВИ. С какого-то перепугу вы совершенно разные логические действия упорно пытаетесь в одну транзакцию запихнуть, а потом удивляетесь, что без длинной транзакции это неудобно делать.

Petro123Bogdanov Andrey
Один из минусов (невозможность открыть какую-то другую форму приложения и поработать там, а потом вернуться к незаконченной работе) я уже упоминал. Вы решили это проигнорировать.

- можно :)
Две карточки - 2 экземпляра формы карточка.
То есть не завершив первую транзакцию вы откроете вторую? И сколько у вас соединений с БД будет на одного пользователя? Под каждое открытое окошко по соединению?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655009
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Совершенно верно!Они не будут видеть изменений друг друга, но с одним
> существенным
> замечанием - они не будут видеть ничего

Бред. Они смогут получить данные из любой таблицы.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655037
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но только не из той, где был UPDATE без COMMIT'a.Это должны знать даже твои студенты.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655051
ln123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Один из минусов (невозможность открыть какую-то другую форму приложения и поработать там, а потом вернуться к незаконченной работе) я уже упоминал. Вы решили это проигнорировать.

Здесь как раз проблем нет, Алексей выше об этом писал, открывается в новом потоке новое соединение с базой и все работаем себе и горя не знаем

автор
Ну и основной минус - необходимость в уме отслеживать ве выполняемые действия. Вот зашел я в карточку - одно окошко открыл, другое, третье, потом чайку пошел выпить, вернулся, еще что-то посмотрел. Теперь пытаюсь формочку закрыть - а мне тут "вы хотите сохранить сделанные изменения?". Вот ведь блин - а что я менял-то. Вдруг я что-то важное поменял, да сохранить забыл. Или это просто я случайно мышкой по комбо-боксику щелкнул...

Насколько я понимаю то что пишет Petro123 имеется ввиду объект который я является неделимым для пользователя т.к. пользователь запутаться не может все изменения относятся к одному объекту предметной области их нужно все дружно либо сохранить либо нет.

То как реализована работа с транзакциями на то что делает пользователь вообще ни как влиять не должно. Это вопрос чисто технический.

Навскидку я бы назвал следующие минусы у длинных транзакций
1) Большая нагрузка на сервер
2) Предположительно большая нагрузка на сеть
3) Если СУБД оракал и архитектура 2-х звенная то с MTS мы обламываемся, а это означает ограничение на масштабируемость по количеству пользователей
4) Нет возможности сделать такую фишку как сделал Алексей у себя в среде с отключением через 10 минут от сервера из этого следуют определенные требования к качеству связи до сервера
5) Наверное если подумать можно еще минусов придумать :)

Зато писать клиента легче и лучше вписывается в подход вся логика на сервере
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655052
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaНо только не из той, где был UPDATE без COMMIT'a.Это должны знать даже твои студенты.

Бред. Данные будут получены, но без изменений произведенных
в незавершенной транзакции.

Mysql1> START TRANSACTION;
Mysql1> UPDATE Contragents SET Name='1' WHERE Code=1;

Mysql2> SELECT * FROM Contragents
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655082
ln123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВопрос в том, что с короткими транзакциями можно только простой ВИ организовать (всё на одной форме и всё грузится на клиента при открытии формы карточки).

Категорически не согласен в рамках любого подхода можно реализовать практически любой ВИ.
Формы тут вообще ни причем. Форма это только представление. А у нас еще есть и модель которая может быть сколь угодно сложной и уметь себя сохранять на сервер раскладывая на произвольное кол-во таблиц. Просто для коротких транзакций написать больше кода придется и некоторые вещи возможно придется писать дважды один раз на сервере и один раз на клиенте
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655089
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ln123
4) Нет возможности сделать такую фишку как сделал Алексей у себя в среде с отключением через 10 минут от сервера из этого следуют определенные требования к качеству связи до сервера
+1
тока не понял что за фишка.
Меня жутко Word раздаражает со своим автосохранением когда его не просят :)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655096
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ln123автор
Один из минусов (невозможность открыть какую-то другую форму приложения и поработать там, а потом вернуться к незаконченной работе) я уже упоминал. Вы решили это проигнорировать.

Здесь как раз проблем нет, Алексей выше об этом писал, открывается в новом потоке новое соединение с базой и все работаем себе и горя не знаем
Это как раз и есть проблема. У вас каждая формочка свое соединение с БД окрывает? На мой взгляд - абсурд.

ln123Насколько я понимаю то что пишет Petro123 имеется ввиду объект который я является неделимым для пользователя т.к. пользователь запутаться не может все изменения относятся к одному объекту предметной области их нужно все дружно либо сохранить либо нет.
Ну так если объект такой простой, что пользователь в нем запутаться не может, то неужели программист запутается и не сможет все данные за один раз на сервере сохранить? Ну а вообще практика показывает, что если объект отображается в более, чем одном экране, то пользователь вполне успешно в нем "запутывается".

ln123То как реализована работа с транзакциями на то что делает пользователь вообще ни как влиять не должно. Это вопрос чисто технический.Несомненно. Но у меня перед глазами как раз обратный пример - сделано с использованием вами любимых длинных транзакций. И именно из-за них мне приходится пять экземпляров приложения запускать. И постоянно на блокировки нарываться. Зато писать кому-то было легче.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655106
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двоечник,ты забыл поставить REPEATABLE READ, о котором ты говорил выше.По default'у стоит READ COMMITED.
С МySql не знаком(там до недавних пор транзакций не было совсем).
Вот тебе пример для MS SQL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
BEGIN TRANSACTION;

SELECT * FROM MyTable;

update MyTable
set Field = 'учи матчасть'
where Field = 'Морозов'

для другого соединения
Код: plaintext
1.
2.
3.
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
BEGIN TRANSACTION;
SELECT * FROM MyTable;
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655112
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x
Это как раз и есть проблема. У вас каждая формочка свое соединение с БД окрывает? На мой взгляд - абсурд.


Главное:
1) Решение поставленной задачи.
2) Удобство пользователя.
3) Удобство программиста.
4) Приемлимые требования к ресурсам.

Исходя из этого, куча соединений не бред.

Оговрюсь, что у меня потоки получают соединение из "пулла". Кол-во
открытых соединений равно кол-ву одновременно выполняющихся
запросов.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655131
_Петро123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bogdanov Andrey
Это как раз и есть проблема. У вас каждая формочка свое соединение с БД окрывает? На мой взгляд - абсурд.

да не абсурд это. Мелкомягкие рекомендуют. Для ваших же коротких транзакций. :) А что бы не долго открывались в СУБД пул есть (который Морозов сам написал)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655135
_Петро123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bogdanov Andrey
И именно из-за них мне приходится пять экземпляров приложения запускать. И постоянно на блокировки нарываться. Зато писать кому-то было легче.
не приложения , а ФОРМЫ с компонентом коннекта на ней или Формы с пристёгнутым ДатаМодулем с оным.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655145
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot SeVa]Двоечник,ты забыл поставить REPEATABLE READ, о котором ты говорил выше.По default'у стоит READ COMMITED. С МySql не знаком(там до недавних пор транзакций не было совсем).[/SeVa]

Глупое обвинение.
Я с таким же успехом могу сказать:

"Двоечник,ты забыл поставить READ COMMITED, о котором ты говорил выше.
По default'у стоит REPEATABLE READ. С МS Sql не знаком (там до недавних
пор версионности не было совсем)."

Только смею скромно заметить, что принципиальной разницы
"READ COMMITED" и "REPEATABLE READ" относительно возникающих
блокировок нет. А механизм блокировки в MSSQL 2005 отключается опцией READ_COMMITTED_SNAPSHOT (со своими особенностями).

http://www.sql.ru/articles/mssql/2005/021501SnapshotIsolation.shtml

И может хватит показывать свою глупость?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655151
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Петро123(который Морозов сам написал)

Это намек на изобретение велосипеда?

Код: plaintext
1.
2.
3.
4.
5.
Mutex poolMutex;
vector<DbConnection*> connectionPool;

void getConnection() { poolMutex.lock(); return pop(connectionPool); }
void DbConnection::release() { poolMutex.lock(); connectionPool.push_back(this); }
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655174
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Петро123 не приложения , а ФОРМЫ с компонентом коннекта на ней или Формы с пристёгнутым ДатаМодулем с оным.У вас может быть и формы. А вот у того с чем мне приходится работать надо именно пяток экземпляров приложения запускать. И это потому-что программистам так писать было легче :)
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655342
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если MySql версионник, то локов не будет.
Однако:
1. Перед этим неоднократно утверждалось, что будет одинаковое поведение, как для версионников, так и для блокировочников.Выяснили, что это не так.
2.Код, который приводился для увеличения счетчиков через MAX из-за кастрации автоинкриментов в угоду переносимости, тоже работать не будет для версионников.
Теперь понятно такое горячее желание иметь REPEATABLE READ

автор
Только смею скромно заметить, что принципиальной разницы
"READ COMMITED" и "REPEATABLE READ" относительно возникающих
блокировок нет.

Еще один перл.А зачем тогда нужно такое кол-во умных слов, если нет никакой разницы?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655373
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa1. Перед этим неоднократно утверждалось, что будет одинаковое поведение, как для версионников, так и для блокировочников. Выяснили, что это не так.
Бред.
Мы сейчас обсуждаем, блокировку базы при длинных транзакциях (что на MSSQL будут блокировки)
В моей среде "длинных транзакций" нет, поэтому результат будет идентичный для блокировочников и версионников.
SeVa2.Код, который приводился для увеличения счетчиков через MAX из-за кастрации автоинкриментов в угоду переносимости, тоже работать не будет для версионников.
Бред.
Этот код работать будет всегда.
Что значит "кастрация автоинкрементов"? Автоинкремены поддерживаются.
Где вы прочитали про "такое горячее желание иметь REPEATABLE READ" ?
Несколько сообщений назад я написал "REPEATABLE READ", что бы опровергнуть ваше выражение "Если выше, то один работает, а остальные отдыхают".
SeVaАлексейТолько смею скромно заметить, что принципиальной разницы
"READ COMMITED" и "REPEATABLE READ" относительно возникающих
блокировок нет.
Еще один перл.А зачем тогда нужно такое кол-во умных слов, если нет никакой разницы?

относительно возникающих блокировок
В любом из этих 2х режимов SELECT в другом из соединений будет остановлен до завершения транзакции.
Еще раз прошу, хватит писать ерунду. Каждый человек может быть не прав, дальше будет только хуже всем. Я пишу и читаю сообщения для того, что бы понять - где я не прав?. Был бы на 100% уверен в своих знаниях и выборе, молча бы делал свое дело.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655381
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 пишет:


> Для этого нужна длинная транзакция на кнопку "Редактировать", чтобы
> потом работать с остальными данными в БД не заботясь о чтении сырых
> данных другими пользователями - коннектами.

А это вопрос или утверждение ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655387
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И с таким человеком я общаюсь?
4594521
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655459
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей МорозовSeVa1. Перед этим неоднократно утверждалось, что будет одинаковое поведение, как для версионников, так и для блокировочников. Выяснили, что это не так.
Бред.
Мы сейчас обсуждаем, блокировку базы при длинных транзакциях (что на MSSQL будут блокировки)
В моей среде "длинных транзакций" нет, поэтому результат будет идентичный для блокировочников и версионников.
SeVa2.Код, который приводился для увеличения счетчиков через MAX из-за кастрации автоинкриментов в угоду переносимости, тоже работать не будет для версионников.
Бред.
Этот код работать будет всегда.
Что значит "кастрация автоинкрементов"? Автоинкремены поддерживаются.

этот топик показывает:
- что ваше Демо пока неготово для демонстрации Универсальной среды разработки с БД FireBird
- что длинные транзакции нужны в случаях правки сложных объектов
- что Ваша среда не сможет изменять код старта транзакции внутри блока BEGIN END по каким то своим соображениям
- что в СУБД FireBird ваш код с MAX вставит одинаковый код накладной и получит ошибку.

авторЭтот код работать будет всегда.
работать он будет, учитывая вашу энергию. Только неправильно.
ЗЫ. И не переходите на личности плз.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655486
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ моей среде "длинных транзакций" нет,поэтому результаты будут одинаковы
Сколько открыта транзация совершенно неважно,результы будут разные в силу коренного отличия механизмов работы.Блокировочник и версионник отличаются так же,как SeVa c SQL.ru и SeVa AspNetMania.com.
авторЧтоб тебе всю жизнь изучать С++ для написания калькулятора
Дальнейших и продолжительных успехов в написании своей среды для домашней бухгалтерии.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655512
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Да. Показанная вам демо версия позволяет работать лишь с MySQL. Частично с MSSQL.

2) Никто кроме вас этого не понял.

3) Среда уже "меняет" код старта транзакции.

4) Одинаковых записей в FB не будет, хотя бы потому что FB поддерживает Serialized, в случае тупой БД найдется способ синхронизации клиентов.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655549
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa:
Существенные для нас различия в работе транзакций определяются режимом изоляции, а не отсутствием версионности у СУБД.

Результат у MS и MY будет идентичным, только пользователи MS больше будут простаивать.

Читаем SQL92
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655590
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да,то что ты можешь идентифицировать только по первым буквам я уже понял.Б и Д совпадают, остальное мелкие детали.
На последок посмотри, как скоро будут писать калькуляторы для домохозяек
OSLO1
OSLO2
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655627
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa:

Я больше не буду комментировать вашу глупость,
учерен что читатели оценили ваши перлы. Особенно:

"Если уровень изоляции READ COMMITED, то блокировки держатся только
на время выполнения запроса, таким образом, все читают и перезаписывают
одно и тоже."


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655643
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaДа,то что ты можешь идентифицировать только по первым буквам я уже понял.Б и Д совпадают, остальное мелкие детали.
На последок посмотри, как скоро будут писать калькуляторы для домохозяек
OSLO1
OSLO2
зачет
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655647
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa пишет:
> Двоечник,ты забыл поставить REPEATABLE READ, о котором ты говорил
> выше.По default'у стоит READ COMMITED.
> С МySql не знаком(там до недавних пор транзакций не было совсем).

В MySQL как раз по умолчанию стоит REPEATABLE READ.
:-)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655716
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Морозов
4) Одинаковых записей в FB не будет, хотя бы потому что FB поддерживает Serialized, в случае тупой БД найдется способ синхронизации клиентов.
проторенной дорогой идём.
1С именно за такие блокироки и ругали
:)
Удачи!
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655797
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) Да. Показанная вам демо версия позволяет работать лишь с MySQL. Частично с MSSQL.

2) Никто кроме вас этого не понял.

3) Среда уже "меняет" код старта транзакции.

Ну почему же никто не понял. Те, кто скачивал вашу демо-версию, думаю, поняли, что есть поддержка и MS SQL.
Более того, в вашем соседнем топике (не помню уже на какой странице) я предлагал вам выложить версию и для MS SQL. Заодно можно было бы пройтись профайлером.

Кстати, не совсем понял, что означает:
автор Частично с MSSQL. ?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655837
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xЧастично с MSSQL.

Пока в MSSQL нельзя разархивировать базы данных, и
полноценно БД (триггеры, пользователи). Тоже качается и
остальных баз данных, пока некогда расписывать фукции
createTrigger, createUser, deleteUser, bulkInsert...


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655850
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
Пока в MSSQL нельзя разархивировать базы данных, и
полноценно БД (триггеры, пользователи).
в MS SQL можно архивировать базы данных, содавать триггеры, добавлять пользователей. Вы что, пытаетесь всунуть административную работу с СУБД в свою программу?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655870
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmв MS SQL можно архивировать базы данных, содавать триггеры,
добавлять
пользователей. Вы что, пытаетесь всунуть административную работу с
СУБД в свою программу?

Из администраторский функций лишь:

1) Архивирование. Оно необходимо для переноса баз данных между серверами
БД разных типов.

2) Создание пользователей. Среда помимо создания учетной записи, настроит её
права
доступа ко всем таблицам, вьюхам, полям, хранимкам и т.п. И будет
контроллировтаь
права досутпа всех учетных записей во время работы.

Незачем ради создания учетной записи еще одного работника лезть в SQL
Manager (к примеру).
Но если кто то добавит пользователя, среда предупредит об этом.

Остальное программирование:

1) Создание, удаление, изменение - таблиц, полей таблиц, FK, представлений,
индексов,
триггеров, хранимых процедур...

2) Перевод с внутреннего SQL-92 на SQL используемой СУБД

3) Накопление информации об изменении базы данных для обновления
баз даных клиентов. Например вы переименовали поле БД.

4) Контроль идентичности описания базы данных и состяния СУБД. Если
администратор добавит новое поле, среда сообщит об этом.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655891
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один оффтопик.

Покажите мне задачу/программу в которой была бы необходима длинная транзакция.

Пока ответы были лишь "Потому что надо!".
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655904
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
Покажите мне задачу/программу в которой была бы необходима длинная транзакция.

Задача на первой странице.
Скрины своей проги выкладывать не вижу нужды, если ты говоришь "заказчик дурак"
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655912
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xСкрины своей проги выкладывать не вижу нужды, если ты говоришь
"заказчик дурак"

Я этого никогда не говорил.

Я как программист (и как конечный пользователь) не могу представить задичи,
где бы применение длинных транзакций было оправдано. Критерий оправданности
это отношение "плюсов к минусам"

Минусы:
- СУБД позволяющая работать с длинными транзакциями без блокировок.
- Дополнительная нагрузка на сервер
- Требования к надежному соединению
- Больше обращений к серверу.
- Множество открытых соединений
- Большую часть программы необходимо писать на недоразвитом языке СУБД.
- Сложнее перенос и масштабирование.

Плюсы:
- Большая часть программы пишется на сервере СУБД


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655921
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Морозов

мы здесь про ВИ и постановку задачи от ПМ.

Представь что я заказчик и разбей этот топик на 2 вопроса (декомпозиция):
- такой ВИ может поступить от заказчика?
- если может, то для его реализации нужна длинная транзакция либо бизнес-логику писать на клиенте.

При переговорах с заказчиком иногда бывает полезно объяснять "скока стоит в граммах то или иное ВИ".
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655922
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
- Большую часть программы необходимо писать на недоразвитом языке СУБД.

во-первых это никак не связано с "длиииными транзакциями"
во-вторых не нужно так категорично о "недоразвитости" языков СУБД. У нас, к примеру, на Firebird или MS-SQL прописана вся логика сложной маршрутизации docflow в системе документооборота, на Firebird или ORACLE логика проектной системы, на T-SQL (MS SQL) автомат MRP, бюджетирования и еще много чего, что просто задолбаешься программировать на "развитых" языках.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655945
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос не в этом.

Если требованием заказчика будут длинные транзакции - то
будем писать такую программу. В отличии, о TRDM который
переделывал все ТЗ на предприятии. Мне всегда говорили -
денег ты с этого не получишь, а вот (финансовой) ответственности
отгребешь.

Если поставленную заказчиком задачу можно выполнить лишь
с использованием ДТ (проще выполнить с ДТ) - то будем писать
такую программу.

Вопрос "Зачем длинные транзакции?"

Я не представляю задачи, в которую было бы невозможно
решить обычным (для меня) походом:

1) При нажатии на кнопку ОК (запись данных в БД), хранимая
процедура/триггер проверяет корректность записываемых данных.

Например, не дает уменьшить значения поля таблицы.



1.1) Возможно перерасчет - промежуточных результатов

1.2) Сброс рассчитанных промежуточных результатов

2) Программа (написанная на клиенте) позволяет избежать ошибок

возникающих в 1. Например, предупреждает при уменьшении

значения поля таблицы, о недостаточных правах доступа.




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655951
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm

- Большую часть программы необходимо писать на недоразвитом языке СУБД.

во-первых это никак не связано с "длиииными транзакциями"





Согласен, не с той стороны посмотрел.



iscrafm

во-вторых не нужно так категорично о "недоразвитости" языков СУБД.

У нас, к примеру, на Firebird или MS-SQL прописана вся логика сложной

маршрутизации docflow в системе документооборота, на Firebird или

ORACLE логика проектной системы, на T-SQL (MS SQL) автомат MRP,

бюджетирования и еще много чего, что просто задолжаешься

программировать на "развитых" языках.





Программировать "сложные программы" можно и на бреинфаке. Уверен, что

аналогичная программа на C# написанная с использованием возможностей C#

была бы проще и понятнее.



Какие особенности TSQL позволяют менее "задолбаться" при разработке

программ?






Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655960
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
Программировать "сложные программы" можно и на бреинфаке. Уверен, что
аналогичная программа на C# написанная с использованием возможностей C#
была бы проще и понятнее.

Алексей, я конечно программист в душе, но в тоже время разработка систем это бизнес. Если бы на C# было проще и понятней, то думаете выбирались бы инструменты для решения конкретных задач в "ушерб прибыли, простоте, понятности, стоимости сопровождения и т.п."? Или думаете что варианты реализации в принципе не исследуются? Не та цена вопроса, чтобы можно было глядя в небо размышлять " а почему бы не на C#, ведь это красиво и просто". Мы не занимаемся разработкой ради разработки или выбором инструментов в силу их мейнстрима. Давайте оставим подобные разговоры студентам, которым нужно зачет сдать, а не деньги заработать. Если вы работаете в промышленном режиме, то во главу угла ставятся другие критерии, выгодные как заказчику так и разработчику. А в свободное время, в качестве хобби, конечно можно и на C#.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655970
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Морозов
Я не представляю задачи, в которую было бы невозможно
решить обычным (для меня) походом:

обычный подход у тебя
- лочить все записи таблицы
Жалко что ты не смотрел своих конкурентов (Access - блокирует ОДНУ запись, 1С блокирует таблицу dbf в маленькой НЕ SQL версии).
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35655996
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xлочить все записи таблицы

Я 100 раз написал что лочатся записи относящиеся к открываемому документу.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656075
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmАлексей, я конечно программист в душе, но в тоже время
разработка....

Вы не привели ни одного аргумента, почему C# это плохо.
А я могу сказать, что основной закон разработки - это на чем умеем, на том и
пишем.

В глубине души, мне самому не особо нравится C# (в эту же группу языков,
относительно применения, я грубо отнесу и Java)
Но толи Microsoft/Sun навязывает применение этого инструмента для написания
бизес-логики и алгоритмов обработки данных, то ли действительно это так
круто - но они повсеместно применяются.

Посмотрите статистику в интернете.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656146
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
А я могу сказать, что основной закон разработки - это на чем умеем, на том и
пишем.
Посмотрите статистику в интернете.

Алексей, вы уже кажется перегрелись. Причем серьезно. Жаль. Статистику изучайте вы, а мне она не к чему.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656156
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafn

Просто у вас нет аргументов.

У нас с вами с самого начала не получилось конструктивного разговора,
исходя из написанного мне лично о вас другими учасниками форума
я и не удивлен.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656201
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
iscrafn

Просто у вас нет аргументов.

У нас с вами с самого начала не получилось конструктивного разговора,
исходя из написанного мне лично о вас другими учасниками форума
я и не удивлен.



аргументов к чему? или о чем? И о каком еще конструктивном разговоре вы говорите. Я вообще с вами не общаюсь. Вы общаетесь здесь с тем, кого постоянно упрекаете в бреде, спорите с кем-то о длинных транзакциях, обсуждаете кнопки Редактировать... А какие аргументы ждете от меня? Вы с нами еще?
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656218
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Морозов
исходя из написанного мне лично о вас другими учасниками форума

что то вспомнилось...
лично обо мне тебе расскажут несколько женщин (Война миров). Детский сад.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656239
_Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmАлексей Морозов
исходя из написанного мне лично о вас другими учасниками форума

что то вспомнилось...
лично обо мне тебе расскажут несколько женщин (Война миров). Детский сад.
iscrafm
что у него за постыдная манера переходить на личности?
Чуть что, лезет в архивы в нижнем белье копаться.
Я был терпелив, но откланиваюсь.
Если есть модератор, то пусть почистит топик от флейма.
Удачи желаю всем, даже аффтару.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656242
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Petro123 iscrafm
что у него за постыдная манера переходить на личности?

представьте себя на его месте (лучше конечно не нужно, чисто гипотетически). Вышел что-то показать, а толпа кричит "А король то голый". Не все умеют держать удар просто. Хотя у него есть задатки хорошего программиста. Если прислушается к советам, перестанет нести пургу на форуме и воспримет полезные намеки, озвученные по поводу его программы, то вполне может и получится его задумка. Кому и зачем она будет нужна, это уже другой вопрос.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656246
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, первый совет был попробовать себя в написании компонетов. Например легкого и доступного обычному пользователю (не программисту) дизайнера простых отчетов. Часто возникает потребность в простых вещах, а на рынке их явный дефицит.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656265
Сергей Фролов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmНапример легкого и доступного обычному пользователю (не программисту) дизайнера простых отчетов. Часто возникает потребность в простых вещах, а на рынке их явный дефицит.
Я, я!!! Тьфу, да, да!
Вменяемых репортеров практически нет. Либо страшный монстр (crystal reports), либо надо докручивать руками (fr).
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656278
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Фролов, :)
ну у человека явно просматриваются способности к работе с экранным интерфейсом, есть неплохое понимание в архитектуре интерпретаторов, думаю на производстве простых, но нужных вещей он заработает больше, чем на создании сомнительной по востребованности и архитектуре среды для программистов. Зачем программисту еще одна среда. Их много, выбирай на любой цвет и вкус. На них уже никто не зарабатывает.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35656306
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xчто у него за постыдная манера переходить на личности?

Перечитайте тред еще раз, я ни разу не перешел на личности первым.
Я общаюсь в том стиле - что и собеседник (и).

А тред можете удалить, тут полезной информации 90% - обсуждение
транзакций.





Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35659028
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей МорозовЯ общаюсь в том стиле - что и собеседник (и).
Я тебе один умный вещь скажу, только ты не обижайся (с).
Вот вроде бы ты разговариваешь с Petro123 как он с тобой, а с iscrafm - как iscrafm с тобой. Только с ними общаться желание не пропадает, а с тобой - пропадает. Парадокс-с.
...
Рейтинг: 0 / 0
Новая Среда разработки. Зачем длинные транзакции?
    #35659301
Алексей Морозов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наглость - нравится не всем.
Но я сменил градацию с "Дружеский..Как автор" на "Детерминизм..Детерминизм"
...
Рейтинг: 0 / 0
109 сообщений из 109, показаны все 5 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Новая Среда разработки. Зачем длинные транзакции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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