powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Одновременное редактирование строки на SQL
64 сообщений из 64, показаны все 3 страниц
Одновременное редактирование строки на SQL
    #33770218
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак не могу найти здесь топик по этому вопросу, но помню что недавно это обсуждалось. Вобщем один юзер редактирует строку с скюля, в этот момент другой юзер хочет тоже отредоктировать. Как здесь распределять доступ редактирования по очереди?
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33770799
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая СУБД?
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33771176
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alex_Ustinov
MSSQL2000
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33771255
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийНикак не могу найти здесь топик по этому вопросу, но помню что недавно это обсуждалось. Вобщем один юзер редактирует строку с скюля, в этот момент другой юзер хочет тоже отредоктировать. Как здесь распределять доступ редактирования по очереди?
Зависит от буферизации (в самом VFP). Если 1 - то кто первый начал, другой не сможет... Если Выше, например 5 - то каждый свободно редактирует запись, потом записывает... Можно обработать при записи ошибку, если кто-то запись изменил пока ее Вы меняли...

Поищите ответы Владимира Максимова на аналогичные вопросы, плюс его статья на тему буферизации...

Good luck!
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33771364
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Недоходящий!

> один юзер редактирует строку с скюля, в этот момент другой юзер хочет тоже
> отредоктировать.

Замечательно - пускай реактирует, пускай даже пользователей будет не 2 а
200 - это совершенно ничего не меняет.

> Как здесь распределять доступ редактирования по очереди?

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

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772047
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы сами отнеслись бы к следующей ситуации: вы редактируете текст (например один из модулей вашей программы) и при попытке его сохранения система выдаёт вам сообщение, что вы ранее этот самый модуль был изменён другим пользователем и изменения, внесённые вами, будут проигнорированы (естественно по системным соображениям)
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772136
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov

А что такое FFC?
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772221
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор FoxPro Foundation Classes
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772284
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
burgosКак вы сами отнеслись бы к следующей ситуации: вы редактируете текст (например один из модулей вашей программы) и при попытке его сохранения система выдаёт вам сообщение, что вы ранее этот самый модуль был изменён другим пользователем и изменения, внесённые вами, будут проигнорированы (естественно по системным соображениям) Написание ПО - это одно, а ведение учета на предприятии - совершенно другое.

Вы можете представить не теоретическую, а практическую ситуацию, когда два менеджера одновременно вводят заказ от одного и того же клиента? Где в это время находится клиент?
Или могут ли два разных человека редактировать данные одной накладной? У кого она в это время в руках?

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

Случаи, когда требуется разделение доступа на программном уровне, в жизни случаются крайне редко.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772297
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
burgosКак вы сами отнеслись бы к следующей ситуации: вы редактируете текст (например один из модулей вашей программы) и при попытке его сохранения система выдаёт вам сообщение, что вы ранее этот самый модуль был изменён другим пользователем и изменения, внесённые вами, будут проигнорированы (естественно по системным соображениям) Написание ПО - это одно, а ведение учета на предприятии - совершенно другое.

Вы можете представить не теоретическую, а практическую ситуацию, когда два менеджера одновременно вводят заказ от одного и того же клиента? Где в это время находится клиент?
Или могут ли два разных человека редактировать данные одной накладной? У кого она в это время в руках?

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

Случаи, когда требуется разделение доступа на программном уровне, в жизни случаются крайне редко.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772324
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karly™
Вы можете представить не теоретическую, а практическую ситуацию, когда два менеджера одновременно вводят заказ от одного и того же клиента? Где в это время находится клиент?
Или могут ли два разных человека редактировать данные одной накладной? У кого она в это время в руках?

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

Случаи, когда требуется разделение доступа на программном уровне, в жизни случаются крайне редко.
Двумя руками за то, что вы написали. Сама возможность редактирования одной записи в интрерактивном режиме в один и тот же момент разными пользователями в реальной учетной системе просто не должна возникать. Если она возникает, то что-то, как говорит классик "надо в консерватории подправить". Имею большой опыт внедрения учетных систем на разных по масштабу предприятиях и проблеммы одновременного интерактивного редактирования одних данных никогда не возникала.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772388
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как насчёт редактирования данных одного и того же клиента двумя операторами? Или данных поставщика? Или продукции? Думаю, что таких ситуаций достаточно много. Насчёт накладных тоже не всё так просто: представьте себе, что один из операторов модифицирует накладную, а другой решил эту же накладную просмотреть. В принципе проблемм никаких. Но вот беда - юзеры, с которыми я сталкивался для простого просмотра лезут в модификацию, а при выходе ещё и актуализируют данные. То есть "защиту от юзера" надо на чём то строить и думаю что лучший способ это блокировка.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772463
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
burgosКак насчёт редактирования данных одного и того же клиента двумя операторами? Или данных поставщика? Или продукции? Думаю, что таких ситуаций достаточно много.
Разные операторы в одно и то же поле вносят разные данные? Т.е. если меняют, например, адрес, то каждый оператор внесет разные адреса в карточку клиента?

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

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

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

При буферизации процесс внесения изменений и процесс собственно сохранения внесенных изменений - это два разных процесса.

Факт внесения изменений и факт необходимости сохранения этих изменений анализируется в момент выхода из формы. Далее, в зависимости от принятой идеологии приложения может быть запущен процесс сохранения сделанных изменений если это необходимо.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772553
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМА это уже исключительно твои проблемы как программиста! Ты, лично ты, не смог разделить на программном уровне процесс просмотра и процесс внесения изменений. Не смог корректно организовать пользовательский интерфейс. Блокировки тут вообще ни с какого боку.

Процесс просмотра и модификации разделён, так что с интерфейсом всё в порядке. Проблема не в интерфейсе, а в опции, которую выбирает пользователь. Думаю, что программа должна иметь защиту в аналогичных ситуациях.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33772590
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
burgos ВладимирМА это уже исключительно твои проблемы как программиста! Ты, лично ты, не смог разделить на программном уровне процесс просмотра и процесс внесения изменений. Не смог корректно организовать пользовательский интерфейс. Блокировки тут вообще ни с какого боку.

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

Ну, не должно быть каких-то там "опций" при выборе документа. Потом, когда документ уже открыт ты можешь что-то там регулировать. Например, по умолчанию, документ открывается в режиме "только чтение", а для модификации надо нажать дополнительную кнопку. Да и то, это еще надо подумать, стоит ли это делать.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773222
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ burgos ВладимирМА это уже исключительно твои проблемы как программиста! Ты, лично ты, не смог разделить на программном уровне процесс просмотра и процесс внесения изменений. Не смог корректно организовать пользовательский интерфейс. Блокировки тут вообще ни с какого боку.

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

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

Хорошие у Вас клиенты - просто идеальные. Мои к сожалению больше смотрят на удобство своей работы и не на то, чтобы облегчить мне программирование.

В заключение всё таки отвечу инициатору данной дискуссии (а то мы про него как-то забыли ).

Начну с того что средствами самого SQL2000 я добился "нормальной" блокировки только одной записи. Говорю "нормальной" так как при попытке заблокировать несколько записей результат, как правило, зависел от числа записей и ни коим образом не совпадал с ожидаемым.

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

Эту идею я заимствовал в каком-то форуме (может даже и в этом)
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773276
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ Нет! Это именно недоработка интерфейса!

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

Полностью поддерживаю.
Блокировку можно использовать, если очень хочется поиздеваться над пользователями)
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773305
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
Лично мне, ближе ситуация - это когда пользователь, открывший например, накладную заблокирует ее как для просмотра, так и для редактирования - до тех пор, пока с ней сам работает.
В реальной жизни, возможность одновременного доступа, даже, если другие имеют возможность только просмотра, кроме одного, ни к чему хорошему не приводит, кроме как к дополнительной трате нервов и времени как пользователей так программиста.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773344
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЛично мне, ближе ситуация - это когда пользователь, открывший например, накладную заблокирует ее как для просмотра, так и для редактирования - до тех пор, пока с ней сам работает.
В реальной жизни, возможность одновременного доступа, даже, если другие имеют возможность только просмотра, кроме одного, ни к чему хорошему не приводит, кроме как к дополнительной трате нервов и времени как пользователей так программиста.

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

Поэтому на практике используется вариант "кто последний, тот и отвечает".
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773387
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
космонахт
В реальной жизни другой пользователь, которому тоже надо открыть документ в соответствии со своими правами, начинает обрывать телефон программиста.

Это происходит тогда, когда другой пользователь не понимает – почему ему не доступна данная накладная. А вот когда ему на экране появится сообщение – типа «С данной накладной работает -Петя», тогда он или звонит к Пете или идет к нему, но не к программисту

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

Правильно, вот как раз при работе одного единственного пользователя с данной накладной в данное время, четко видно - кто последний изменял ВСЮ накладную, а не часть ее.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773424
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
космонахт авторЛично мне, ближе ситуация - это когда пользователь, открывший например, накладную заблокирует ее как для просмотра, так и для редактирования - до тех пор, пока с ней сам работает.
В реальной жизни, возможность одновременного доступа, даже, если другие имеют возможность только просмотра, кроме одного, ни к чему хорошему не приводит, кроме как к дополнительной трате нервов и времени как пользователей так программиста.

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

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

В общем подход интересный: пусть разбираются пользователи, лишь бы мне не звонили...
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33773465
-)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
-)
Гость
burgos
В общем подход интересный: пусть разбираются пользователи, лишь бы мне не звонили...

Ну, если программисту больше нечего делать, то пусть, конечно, “разруливает “ все подряд - и свое и чужое.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774240
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 космонахт

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


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

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

Это только в некоторых случаях, да и то не все пользователи будут так довольны. Первый кто закончил вносить изменения потом увидит, что, то что он вносил вдруг совсем ен то, то телефон будет плавиться от непоняток и матов от юзера:типа "- Какого ХХХХХ пропали мои данные!!!???? Только что внес и они соми собой заменились!" А когда есть очередь редоктирования с Историей редоктирования то тогда я думаю юзер уже будет звонить не мне а тому кто после него изменил.


2 -)

С тобой согласен.

2 burgos
Вот поэтому и надо делать так чтоб не звонили и всем юзерам отображалось инфа в проге на вопрос :"- А почему ...??"


2 ВладимирМ
Затереть инфу без запроса - это я поддерживаю, но надо чтоб затиралась по очереди и не все вместе.

Поповоду кнопки это интересно. Владимир, А как вы организовываете базы данных??
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774398
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКакого ХХХХХ пропали мои данные!!!???? Только что внес и они соми собой заменились!" А когда есть очередь редоктирования с Историей редоктирования то тогда я думаю юзер уже будет звонить не мне а тому кто после него изменил.



Если оператор имеет доступ к документу, то он отвечает за весь документ, а не отдельные его атрибуты. И, если он сохранил документ, то с него и спрос.

Неужели где-то на практике встечается ситуация, когда, например, в платежке одна девушка-оператор набивает только получателя, другая плательщика, третья дату, еще одна номер, следующая сумму и т.д....?

При такой ситуации что-то в менеджменте надо править...


ничто не слишком!
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774427
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
burgosКак вы сами отнеслись бы к следующей ситуации: вы редактируете текст ( например один из модулей вашей программы ) и при попытке его сохранения система выдаёт вам сообщение, что вы ранее этот самый модуль был изменён другим пользователем и изменения, внесённые вами, будут проигнорированы (естественно по системным соображениям)

про одновременное написание одного и того же модуля одной итой же программы - это Вы сильно сказали
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774452
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karly™
Случаи, когда требуется разделение доступа на программном уровне, в жизни случаются крайне редко.


я тоже ЗА!!!
но видел такое -
склад, человек берет товар по списку в конторе, и рядом другой тоже берет товат... если определенного товара есть единиц, и первый попросил , а второй .. обе накладные только формируются.. то надо в принципе отследить..

хотя правильно нефиг в конторе брать...
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774535
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя тоже ЗА!!!
но видел такое -
склад, человек берет товар по списку в конторе, и рядом другой тоже берет товат... если определенного товара есть единиц, и первый попросил , а второй .. обе накладные только формируются.. то надо в принципе отследить..


Эта ситуация может быть, когда оперативный учет подменяют бухгалтерским.
Т.е. продукт уже есть, а документы по БУ еще не прошли.
Здесь тоже вопрос не к программисту...

ничто не слишком!
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774623
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akiно видел такое -
склад, человек берет товар по списку в конторе, и рядом другой тоже берет товат... если определенного товара есть единиц, и первый попросил , а второй .. обе накладные только формируются.. то надо в принципе отследить..
А если товара на складе полно, его покупают выписывают одновременно десять человек? Им что, в очередь стоять? Это однозадачная система получается.

Правильно - проверять остатки в момент сохранения накладной. Т.е. открыли транзакцию, проверили остатки, если все хорошо - сохранили накладную и транзакцию закрыли.

Если же чего-то не хватает - транзакцию откатили, и сообщили об этом пользователю.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774644
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karly™
Правильно - проверять остатки в момент сохранения накладной. Т.е. открыли транзакцию, проверили остатки, если все хорошо - сохранили накладную и транзакцию закрыли.

Если же чего-то не хватает - транзакцию откатили, и сообщили об этом пользователю.
Именно так, но при чтении не забыли оставить блокировку на чтение, иначе она сама снимется, даже если транзакция открыта.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774832
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
космонахт авторКакого ХХХХХ пропали мои данные!!!???? Только что внес и они соми собой заменились!" А когда есть очередь редоктирования с Историей редоктирования то тогда я думаю юзер уже будет звонить не мне а тому кто после него изменил.



Если оператор имеет доступ к документу, то он отвечает за весь документ, а не отдельные его атрибуты. И, если он сохранил документ, то с него и спрос.

Неужели где-то на практике встечается ситуация, когда, например, в платежке одна девушка-оператор набивает только получателя, другая плательщика, третья дату, еще одна номер, следующая сумму и т.д....?

При такой ситуации что-то в менеджменте надо править...


ничто не слишком!

Вносить изменения в менеджмент СВОЕГО предприятия это дело клиента.
Программа должна работать независимо от степени организации прользователя и защишать данные от неправильных действий оператора.
Всё остальное от лукавого...
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33774901
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВносить изменения в менеджмент СВОЕГО предприятия это дело клиента.
Программа должна работать независимо от степени организации прользователя и защишать данные от неправильных действий оператора.
Всё остальное от лукавого...

Программа как раз напрямую зависит от указанного выше.
И дело программиста объяснить заказчику, когда он требует запрограммировать бред, в чем этот бред заключается.

Но это тема не этого топика.

ничто не слишком!
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33775101
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьмем таблицу, допустим, "Сотрудники"
Приходит начальник отдела "кадров", кричит: почему "Попкин" в базе как "Пупкин"?
1-я сессия
12:00 кадровик1 начал редактировать запись ID=101 без блокировки строки. Исправляет ошибочную Фам "Пупкин" на "Попкин".
12:05 кадровик1 коммитит транзакцию. Во 2-ой сессии новые данные не видны. В
2-я сессия
12:01 кадровик2 услышал краем уха начал редактировать ту же запись ID=101 без блокировки строки -заметил ту же опечатку в Фам, меняет "Пупкин" на "Попкин"..
12:06 кадровик2 Понял что не надо это делать, откатывает транзакцию.
"Попкин" в базе снова как "Пупкин". Ведь в его сессии не видна 1-я сессия

космонахтЕсли оператор имеет доступ к документу, то он отвечает за весь документ, а не отдельные его атрибуты. И, если он сохранил документ, то с него и спрос.
-------------------------------------------------------
Сразу оговорюсь: Ситуация надуманная ,
но самый простой выход заблокировать строку с ID=101 в 1-ой сессии
и сказать кадровику2, что запись уже редактируется.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33775175
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
Сразу оговорюсь: Ситуация надуманная ,
но самый простой выход заблокировать строку с ID=101 в 1-ой сессии
и сказать кадровику2, что запись уже редактируется.
Ага... Первый кадровик открыл транзакцию и отвлекся на телефонный звонок, а потом пошел кушать (транзакция висит.).
Кто-то запустил генерацию отчета с использованием кадрового состава и запрос наткнулся на заблокированную запись и тоже встал, и.т.д. Короче, через 30 минут стояли все.. Сам такую картину наблюдал при вовлечении в транзакцию интерфейс с пользователем. Вам такое надо?
С уважением, Алексей.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33775203
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinov 12:06 кадровик2 Понял что не надо это делать, откатывает транзакцию.
"Попкин" в базе снова как "Пупкин". Ведь в его сессии не видна 1-я сессия У тебя перепутаны понятия транзакции и буферизации. Открывать транзакцию в начале редактирования не стоит. А вот если производить изменения в буфере, и сбросить буфер при отказе от редактирования - то в базе останется "Попкин".
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33775223
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВозьмем таблицу, допустим, "Сотрудники"
Приходит начальник отдела "кадров", кричит: почему "Попкин" в базе как "Пупкин"?
1-я сессия
12:00 кадровик1 начал редактировать запись ID=101 без блокировки строки. Исправляет ошибочную Фам "Пупкин" на "Попкин".
12:05 кадровик1 коммитит транзакцию. Во 2-ой сессии новые данные не видны. В
2-я сессия
12:01 кадровик2 услышал краем уха начал редактировать ту же запись ID=101 без блокировки строки -заметил ту же опечатку в Фам, меняет "Пупкин" на "Попкин"..
12:06 кадровик2 Понял что не надо это делать, откатывает транзакцию.
"Попкин" в базе снова как "Пупкин". Ведь в его сессии не видна 1-я сессия

космонахт
Если оператор имеет доступ к документу, то он отвечает за весь документ, а не отдельные его атрибуты. И, если он сохранил документ, то с него и спрос.

-------------------------------------------------------
Сразу оговорюсь: Ситуация надуманная,
но самый простой выход заблокировать строку с ID=101 в 1-ой сессии
и сказать кадровику2, что запись уже редактируется.


Ситуация действительно надуманная , но ничего блокировать не надо.

1-я сессия
1. 12:00 кадровик1 начал редактировать запись ID=101 без блокировки строки. Исправляет ошибочную Фам "Пупкин" на "Попкин".
2.12:05 кадровик1 нажимает кнопку "сохранить" .

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

2-я сессия

3. 12:01 кадровик2 услышал краем уха начал редактировать ту же запись ID=101 без блокировки строки -заметил ту же опечатку в Фам, меняет "Пупкин" на "Попкин"..
4.12:06 кадровик2 Понял что не надо это делать и просто нажимает на кнопку "Выйти"
"Попкин" в базе как "Попкин". Все ОК.
Или возможен вариант, когда в 12:06 кадровик2 ничего краем уха не слышал.
Он нажимает кнопку "сохранить" и мы возвращаемся в п.2а. Все ОК.


ничто не слишком!
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33775352
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karly™У тебя перепутаны понятия транзакции и буферизации. Открывать транзакцию в начале редактирования не стоит. А вот если производить изменения в буфере, и сбросить буфер при отказе от редактирования - то в базе останется "Попкин"
Не акцентировал на этом внимания.
Акцент на фразе Ситуация надуманная
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33776139
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Aleksey-K
наверное немножко глупый вопрос, но очень хочу выяснить. Я пользуюсь CAD-ом. Его использование, т.е. создания, изменение инфы и закрытие - транзакция?? И еще установки буферизации(sqlsetprop) влияют на CAD?

2 космонахт

Это если есть отдельно кнопки Выход и Сайв. А при общении с юзерами многие требуют чтоб Была одна кнопка Save&Exit. Тогда как быть в этом случае?? Тут явно без блокировки не обойтись или же ставить таймер который бы подовал запросы на обновления с сервака каждую минуту, но это ж глупо :-)). Или есть другие соображения??
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33776363
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийА при общении с юзерами многие требуют чтоб Была одна кнопка Save&Exit
Чем мешает кнопка "Выход" (или "Отмена")? Влом нажать?
Повесь на нее .Cancel=.T.
Как они хотят отменять свои действия? Ловить крестик? (Уже спортивный интерес...).
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33776457
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недоходящий2 Aleksey-K
наверное немножко глупый вопрос, но очень хочу выяснить. Я пользуюсь CAD-ом. Его использование, т.е. создания, изменение инфы и закрытие - транзакция?? И еще установки буферизации(sqlsetprop) влияют на CAD?

Я использую в своей практике не CAD, а только SQL pass-through (PH). А в PH я сам определяю явную транзакцию, когда мне это требуется.

С уважением, Алексей
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33777206
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KПервый кадровик открыл транзакцию и отвлекся на телефонный звонок, а потом пошел кушать (транзакция висит.).
На абсурд-абсурд :-)
Аналогия:
Пошел кадровик в туалет, снял штаны, присел - тут звонок. Не одевая штаны побежал отвечать на звонок. А потом пошел кушать (штаны висят.) :=-)))
Шутка...
Все это описывается в инструкции пользователя. Открыл на редактирование- редактируй. Ушел на обед - Закрой приложение. Пользователь должен работать с приложением очень строго. Водитель машины при трогании с места сначала выключает сцепление, потом вкл. скорость, потом вкл.сцепление. При этом не забывает посматривать в зеркало заднего вида. Если будет по другому - смерть...
И никто не предлагал бокировать чтение.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33777276
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov...Все это описывается в инструкции пользователя. Открыл на редактирование - редактируй. Ушел на обед - Закрой приложение. Пользователь должен работать с приложением очень строго...Работая на предыдущей работе, у нас этого никто из пользователей не соблюдал. И сейчас знаю, несоблюдают. При сообщении этого безобразия руководству, мер никаких не принимается.
Так что, мое личное мнение: кто последний исправил информацию, тот и прав. А это уж они сами между собой пусть разбираются, кто д.б. правильно и своевременно исправить. Между прочим сразу у них порядок организовался в распределении кто и что должен исправлять.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33777284
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
И никто не предлагал бокировать чтение.
А при чем тут чтение? Вы же блокировали запись с exclusive или update ?
С уважением, Алексей.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33777960
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что данная дискуссия несколько вышла за пределы начальной темы. Вопрос: "Что должна контролировать программа и за что отвечает пользователь?"

Вчера весь вечер возился со следующей проблемой: имеется некий FORM с кнопкой "ВЫХОД". При выходе по нажатии ESC - всё работает Ок. CLICK - ошибка.

Вопрос: Предпринимаемые действия:
а) Искать и исправить ошибку
б) Написать инструкцию с запрещением выхода из данной
формы с CLICK-ом
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33778027
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может приведете текст ошибки и, за одно, код метода Click() кнопки "OK"
С уважением, Алексей
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33778092
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-KМожет приведете текст ошибки и, за одно, код метода Click() кнопки "OK"
С уважением, Алексей

Ошибка уже исправлена, да и вопрос не в этом.

Вопрос: Должна ли программа иметь, говоря техническим языком, "защиту от дурака" или нет? Должно ли приложение быть рассчитана на "среднего служащего" или на "компьютерое поколение"? И насколько нормальный человек предрасположен менять свои привычки работы (пусть даже и порочные) в угоду компьютерной программе?
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33778144
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
burgosрассчитана на "среднего служащего"
Не беру в расчет базы-"хранилища", говорю о "живых", "расчетных" приложениях.
Практика показывает, что необходим контроль при ВВОДЕ, иначе будет бред при обработке данных. Там где сделано так, для обслуживания приложения необходимо N спецов, если конроля нет - требуется 3*N спецов.
Нормальный человек предрасположен менять свои привычки работы (пусть даже и порочные) в угоду компьютерной программе.
Любое нормальное приложение упрощает работу, и нормальный человек это понимает.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33778212
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Alex_Ustinov - контроль нужен.
С уважением, Алексей
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33779251
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 all
Я думаю что защита от дурака нужна обязательно. Юзеры там бухгалтеры или менеджеры, есть такие которые не хотят забивать себе голову в каком порядке куда жать, и поэтому надо предусматривать и эти варианты при построении программы.

2 Alex_Ustinov
1) Вот хотят так и все 2 в 1. Поэтому и поднял эту тему как делать блокировку с скюл. Я знаю про св-во кенскл. Хочу уточнить, это св-во исполняет метод клик при нажатии на ескейп?
2) Согласен контроль нужен обязательно.


2 Aleksey-K
А можно статейку по использованию PH?

2 All
Я вот тут поразмыслил над словами ВладимирМ ">> разные операторы меняют разную информацию (один адрес, другой контактный телефон), то зачем же блокировать запись. Пусть меняют. Нет причны для конфликта. Опять никаких проблем."
Так вот если пишеться история то блокировки на самом деле не надо. НО,вот на редоктировании справочников я думаю что без блокировки не обойтись.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33779264
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийХочу уточнить, это св-во исполняет метод клик при нажатии на ескейп?
Да, это же легко проверить, можно не уточнять.
НедоходящийЮзеры там бухгалтеры или менеджеры, есть такие которые не хотят забивать себе голову в каком порядке куда жать
Вот в том то и дело, что для них приложение - инструмент.
Берешь в руки плоскогубцы, кусаешь гвоздь и не задумываешся, выдержат они нагрузку или нет. Бывает и ломаются.
авторНО,вот на редоктировании справочников я думаю что без блокировки не обойтись.
Это я и имел ввиду.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33779274
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi All!

Попробуй сразу всем ответить...

2 burgos

> Как вы сами отнеслись бы к следующей ситуации: вы редактируете текст
> (например один из модулей вашей программы) и при попытке его сохранения
> система выдаёт вам сообщение, что вы ранее этот самый модуль был изменён
> другим пользователем и изменения, внесённые вами, будут проигнорированы
> (естественно по системным соображениям)

Ты возможно удивишься, но для C# проекта мы используем Subversion - систему
управления конкурирующими версиями. И я действительно могу править тот-же
модуль, который правят в это время другие разработчики - и мне это УДОБНО -
а вот вариант предлагаемый системой Source Safe - мне НЕ УДОБЕН - поскольку
там только ОДИН человек может в один момент времени править один модуль - и
пока он его не "освободит" - все остальные ждут :( При этом никак не
принимается во внимание, что в модуле может быть 50 методов, и при этом
разные люди будут править разные часть модуля.
При сохранении (реально это не сохранение файла, а Commit - т.е. перенос
моего "рабочего" файла в общий репозиторий - ну это довольно близкая
аналогия с фоксовым буфером и его "сбросом" в базовые таблицы) действительно
идёт сообщение о "конфликте" - и тут-же я имею возможность этот конфликт
разрешить - при этом я совсем не обязан "терять" свои изменения! я могу либо
полностью переписать имеющиеся данные своими (что конечно жестоко по
отношению к другим), либо провести объединение - более того система сама
предложит наиболее корректный вариант "слияния" моих изменений с чужими!
Так что тут ты сильно заблуждаешься, если считаешь что без блокировки никак
не обойтись.
Насчёт защиты от дурака полностью согласен! но как же ты победишь самую
"дурацкую" ситуацию - когда пользователь начал чего-то править, а потом
бросил всё и пошёл скажем обедать? Вот если бы без блокировки - то и
проблемы нету.

2 Alex_Ustinov

Твоя ситуация не просто "надуманная" - она НЕВОЗМОЖНАЯ - т.к. при "откате"
вторым пользователем в базе ничего не изменится - и то что ввёл первый
пользователь сохранится. И даже при попытке "сохранения" вторым
пользователем своего буфера не произойдёт ничего катастрофического - система
обнаружит конфликт совместного изменения и покажет (если конечно не ленится
и реализовать это - благо все средства имеются) - текущее значение полей, их
новое (или "предлагаемое") значение, и даже старое значение (то которое было
видно ДАННОМУ пользователю на момент начала редактирования) - и пользователь
сможет сделать осознанный выбор - опять же вовсе не нужно принудительно
"отменять" его изменения - может он исправил ещё лучше чем это сделал
первый - не только одну буковку в ФИО, но и адрес, возраст, пол и т.п. :)
Насчёт "инструкции" - ты видел хоть одного пользователя который прочёл
инструкцию? Или ты считаешь что перед большим начальником пройдёт отмазка
типа "в инструкции это было описано"?

> И никто не предлагал бокировать чтение.

Ага - тогда тебе надо срочно читать про consistent reads - ибо для ЧТЕНИЯ
тоже иногда нужны блокировки. Конечно в Oracle с этим получше - т.к. он
версионник и вместо блокировки способен просто разным клиентам отдавать
разные (но главное - согласованные!) данные из одной и той-же таблицы, или
того сложнее - из разных таблиц :) Или ты считаешь нормальным, если во время
формирования отчёта пройдёт некоторое изменение и половина отчёта покажет
данные ДО изменения а вторая половина - после :)

2 Недоходящий

Можно и таймер сделать - если задача требует чтобы автоматом
"прорисовывались" наиболее свежие данные - хотя в большинстве случаев этого
вовсе не требуется - и вполне можно всё решать через отлов конфликтов
совместного изменения - во время сохранения буфера.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33779483
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor Korolyovвариант предлагаемый системой Source Safe - мне НЕ УДОБЕН - поскольку
там только ОДИН человек может в один момент времени править один модуль - и
пока он его не "освободит" - все остальные ждут :( При этом никак не
принимается во внимание, что в модуле может быть 50 методов, и при этом
разные люди будут править разные часть модуля.

Поправочка: все зависит от настроек. Можно запретить одновременное изменение одного модуля разными людьми, можно и разрешить.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33779528
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KorolyovНасчёт "инструкции" - ты видел хоть одного пользователя который прочёл
инструкцию? Или ты считаешь что перед большим начальником пройдёт отмазка
типа "в инструкции это было описано"?
1.Сдача проекта только после инструктажа пользователей
2.Или вы делаете все для большого начальника? Чтобы показать все возможности и тонкости приложения, понадобиться минимум неделя консультаций (обучения). Чтоб такого не было - инструкция просто необходима!
3.Мало того по участкам (если это какая-то сложная задача,
раскиданная по АРМам)
Igor KorolyovИли ты считаешь что перед большим начальником пройдёт отмазка типа "в инструкции это было описано"?
Я видел такую практику, и считаю ее неплохой -
Инструкция выдается каждому сотруднику,
на титульном листе присутствует:
"Ознакомлен Подпись Пупкин".
И я не только считаю, А ПРОВЕРЕНО НА ПРАКТИКЕ -
КОГДА ТЫКАЕШЬ ПАЛЬЦЕМ В ИНСТРУКЦИЮ ПОЛЬЗОВАТЕЛЯ
В ТО МЕСТО ГДЕ ЭТО ВСЕ ОПИСАНО - "КРАСНЕТЬ" ТЕБЕ УЖЕ
НЕ ПРИДЕТСЯ.
Или, если какой-то специалист заказчика во время внедрения в отпуске,
то при выходе он уже выпал из пачки? Прочитает и все поймет!
Если там какой-то захудалый пользователь - это их проблемы.
И ни один БААльшой начальник меня не упрекнет в недоработках.
Приложение пишется по ТЗ (или на худой конец в Предмете Договора),
которое составляется за подписью Бальшого Начальника.
Igor KorolyovАга - тогда тебе надо срочно читать про consistent reads - ибо для ЧТЕНИЯ
тоже иногда нужны блокировки. Конечно в Oracle с этим получше - т.к. он
версионник
АГА, АГА - я и работаю с Oracle, с MSSQL только экпериментирую.
Кстати, понятие "версионник" - к Ораклу отношения не имеет. Это чисто MSSQL
READ COMMITTED
Specifies that statements cannot read data that has been modified but not committed by other transactions. This prevents dirty reads. Data can be changed by other transactions between individual statements within the current transaction, resulting in nonrepeatable reads or phantom data. This option is the SQL Server default.


The behavior of READ COMMITTED depends on the setting of the READ_COMMITTED_SNAPSHOT database option:


If READ_COMMITTED_SNAPSHOT is set to OFF (the default), the Database Engine uses shared locks to prevent other transactions from modifying rows while the current transaction is running a read operation. The shared locks also block the statement from reading rows modified by other transactions until the other transaction is completed. The shared locks are released when the statement completes.


If READ_COMMITTED_SNAPSHOT is set to ON, the Database Engine uses row versioning to present each statement with a transactionally consistent snapshot of the data as it existed at the start of the statement. Locks are not used to protect the data from updates by other transactions.


When the READ_COMMITTED_SNAPSHOT database option is ON, you can use the READCOMMITTEDLOCK table hint to request shared locking instead of row versioning for individual statements in transactions running at the READ_COMMITTED isolation level.

Note:
When you set the READ_COMMITTED_SNAPSHOT option, only the connection executing the ALTER DATABASE command is allowed in the database. There must be no other open connection in the database until ALTER DATABASE is complete. The database does not have to be in single-user mode.

И клавиатура- Клава... и монитор-Моня... и процессор - Проша... да и ВВП-Вова... :-))
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33779668
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovАГА, АГА - я и работаю с Oracle, с MSSQL только экпериментирую.
Кстати, понятие "версионник" - к Ораклу отношения не имеет. Это чисто MSSQL

READ_COMMITTED_SNAPSHOT (а также SET TRANSACTION ISOLATION LEVEL SNAPSHOT) появилась ТОЛЬКО в MS SQL 2005. А по умолчанию (и в предыдущих версиях) работает ТОЛЬКО блокировочный принцип изоляции транзакции. Та, что почаще экспериментируйте с MS SQL (и не только с версией 2005).
С уважением, Алексей.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33782129
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Alex_Ustinov!

> Я видел такую практику, и считаю ее неплохой -
> Инструкция выдается каждому сотруднику,

Сотрудник имеет тенденцию менять место работы - даже не обязательно в другую
контору - просто на другую должность, или в другой отдел - и чем тут поможет
подпись Васи Пупкина, если проблема возникла не у него, а у того кто пришёл
на его место?

> Или, если какой-то специалист заказчика во время внедрения в отпуске,
> то при выходе он уже выпал из пачки? Прочитает и все поймет!

Ну у нас программа не внедряется никогда за месяц - так что только
пользователь в декретном отпуске имеет шанс "пропустить" цикл внедрения :)

> Если там какой-то захудалый пользователь - это их проблемы.

Увы - опыт показывает что это не так.

> Приложение пишется по ТЗ (или на худой конец в Предмете Договора),
> которое составляется за подписью Бальшого Начальника.

ТЗ это на 99% фикция - т.е. там конечно написано что должна делать
программа - но в настолько "общих чертах" - что говорить об этом серьёзно не
приходится - да и зачастую к моменту завершения программы она
"переквалифицируется" в совсем другую сущность, нежели задумывалось в момент
подготовки этого самого ТЗ...

Нет, ну конечно мы делаем полный пакет документации - и chm/hlp, и печатное
(Word - слава богу не обязывают сейчас на бумажном носителе предоставлять -
сам заказчик печатает по мере необходимости) руководство пользователя, и
руководство программиста (по меньшей мере про настройку,
установку/переустановку, починки и т.п. там написано), и структуры
информационной базы (по простому - структуры таблиц)...
Но это не решает проблем - ибо уже который год я наблюдаю постоянное
"общение" пользователей с разработчиками или сопровожденцами - конечно не
всегда по тем самым вопросам, которые подробно описаны в руководстве - но
достаточно часто. Часто беспокоят из за своего-же дуболомства - навводят
чёрт-те чего, потом ничего не сходится - и как результат "программа у вас
плохая" - на зеркало пеняют :(

> АГА, АГА - я и работаю с Oracle, с MSSQL только экпериментирую.
> Кстати, понятие "версионник" - к Ораклу отношения не имеет. Это чисто
> MSSQL

Ты не прав - исторически именно Oracle является версионником - а в MS SQL
это только совсем недавно появилось - до того он только блокировками и решал
проблему - что конкретно снижало масштабируемость решений на его базе - ну
оно понятно - один товарищ запустил отчётец на пол-часика - и все остальные
нервно ждут :(

В последних версиях Oracle и MS SQL довольно сильно сходятся - т.е.
поперенимали они друг у друга многое...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33782130
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Sergey!

Ты имеешь в виду что в Subversion имеются Lock-и? Ну да, имеются и можно как
и в MS VSS заблокировать файлик - но это не есть основной и рекомендуемый
режим работы...
AFAIK в Team Foundation Server MS тоже перешло - от подхода "блокировки" к
подходу "многоверсионности".

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33782310
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KorolyovВ последних версиях Oracle и MS SQL довольно сильно сходятся - т.е.
поперенимали они друг у друга многое...
Но вот MSSQL у Oracle гораздо больше. И "исторически" для меня сложилось - видел хорошие приложения только под Oracle. Но не хочу сталкивать лбами Oracle-MSSQL. Эта тема другого форума.
Igor KorolyovТЗ это на 99% фикция - т.е. там конечно написано что должна делать
программа - но в настолько "общих чертах" - что говорить об этом серьёзно не
приходится - да и зачастую к моменту завершения программы она
"переквалифицируется" в совсем другую сущность, нежели задумывалось в момент подготовки этого самого ТЗ...
Чем хуже ТЗ - тем хуже сдача проекта. Если в ТЗ не описано конкретно, что должно делать приложение, заказчик будет каждый день придумывать что-то новое: "вот здесь не так, здесь доделайте, здесь шрифт не тот, переделайте, здесь не автоматизирован вот эта задача..." не дай бог в это время меняется законодательство (надо сразу заключать доп.договор - а у вас фиктивное ТЗ на руку заказчику, прикрыться нечем). И договор ЗАТЯГИВАЕТСЯ. Это на руку только заказчику.
Юридические отношения не должны переходить в товарищеские. "Товарищи" уходят и приходят.
Igor KorolyovНо это не решает проблем - ибо уже который год я наблюдаю постоянное
"общение" пользователей с разработчиками или сопровожденцами - конечно не
всегда по тем самым вопросам, которые подробно описаны в руководстве - но
достаточно часто. Часто беспокоят из за своего-же дуболомства - навводят
чёрт-те чего, потом ничего не сходится - и как результат "программа у вас
плохая" - на зеркало пеняют
И я тоже хожу 4-ый год, обслуживаю, дабы не потерять марку.
Тоже, бывает, навводят чёрт-те чего, потом ничего не сходится .
Так во избежание таких ситуаций и нужна Инструкция к действию, как можно больше ограничений на этапе ввода информации. Если надо вводить "Мэ/Жо", то пусть других вариантов и не будет. :-))
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33782335
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor KorolevТы имеешь в виду что в Subversion имеются Lock-и? Ну да, имеются и можно как
и в MS VSS заблокировать файлик - но это не есть основной и рекомендуемый
режим работы...

Нет, я имею ввиду MS VSS.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783265
Фотография burgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovЧем хуже ТЗ - тем хуже сдача проекта. Если в ТЗ не описано конкретно, что должно делать приложение, заказчик будет каждый день придумывать что-то новое: "вот здесь не так, здесь доделайте, здесь шрифт не тот, переделайте, здесь не автоматизирован вот эта задача..." не дай бог в это время меняется законодательство (надо сразу заключать доп.договор - а у вас фиктивное ТЗ на руку заказчику, прикрыться нечем). И договор ЗАТЯГИВАЕТСЯ. Это на руку только заказчику.
Юридические отношения не должны переходить в товарищеские. "Товарищи" уходят и приходят.

Согласен полностью. Хотя на фирме, где я работаю, мы ТЗ не делаем. Причина проста - описать ВСЁ приложение работа достаточно трудоёмкая. Если уровень детализации довести до "шрифтов", то создание ТЗ начнёт приближаться к созданию самой программы. Да и как показывает (моя) практика, даже в этом случае всегда могут появиться разногласия в толковании той или иной спецификации. Думаю, что стоимость создания ТЗ с достаточным уровнем детализации, превышает возможные (и разумные) модификации, которые потребует клиент на этапе внедрения. В случае если требования модификаций - лишь прикрытие для того, чтобы нагреть разработчика, то никакое ТЗ от этого не спасёт. Мы как правило продаём "типовое приложение" со списком модификаций для данного клиента.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783448
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov

Тоже, бывает, навводят чёрт-те чего, потом ничего не сходится .


я так понял, что правила и контроль ввода на уровне БД просто позабыт...
ну, или как всегда - эта часть вопроса не была упомянута в ТЗ?

не знаю как для кого, но для меня навводят чёрт-те чего, потом ничего не сходится звучит как
1 Счет банковский состоим из МАКСИМУМ N цифр
2 юзер в Вашей программе может ввести
а) N+20 цифр
плп даже
Б) вот такое "125АКБ45УЖАСС"

А потом Вы скажете: Alex_Ustinovнавводят чёрт-те чего, потом ничего не сходится
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783635
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aki
я так понял, что правила и контроль ввода на уровне БД просто позабыт...
ну, или как всегда - эта часть вопроса не была упомянута в ТЗ?


Напишите ограничение
1) на дату рождения , какая из ни правильная - 1965 или 1956
2) на сумму в проводке - + 100р или -100р
3) на акте инвентаризации - 5 шт или 6 шт
4) на клиента в документе - с ID = 1 или ID = 2

Ну и так далее, не все можно формализовать с помощью бизнес правил, отсюда и слова по "навводят" и далее по тексту.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783667
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При всем моем УВАЖЕНИИ к Вам
PaulWist
Напишите ограничение
1) на дату рождения , какая из ни правильная - 1965 или 1956
2) на сумму в проводке - + 100р или -100р


это бред...

PaulWist
3) на акте инвентаризации - 5 шт или 6 шт


это.. ну не знаю сколько должно быть актов.. бухгалтер знает?

PaulWist
4) на клиента в документе - с ID = 1 или ID = 2


это непонятно
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783731
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkiПри всем моем УВАЖЕНИИ к Вам
PaulWist
Напишите ограничение
1) на дату рождения , какая из ни правильная - 1965 или 1956
2) на сумму в проводке - + 100р или -100р


это бред...


На самом деле нет.

Человек приходит и говорит, а почему мне пенсию не начислили?

Клиент спрашивает, а почему я вам должен 100р

Aki PaulWist
3) на акте инвентаризации - 5 шт или 6 шт


это.. ну не знаю сколько должно быть актов.. бухгалтер знает?


Не про кол-во актов, а про кол-во в актах, посчитали на складе , нашли 6 шт какого-то продукта, а в акт поставили 5 шт. Начали продавать, продали 5 шт, те книжный остаток = 0, но в наличии есть ещё одна штука, так вот вопрос дать выписать накладную клиенту на эту одну штуку или не дать?

Aki
PaulWist
4) на клиента в документе - с ID = 1 или ID = 2


это непонятно

Вы выписываете документ на отпуск товара, какому клиенту? Как это проверить на уровне БД, да ни как.
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783788
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так как все может скатиться к банальному спору давайте закончим...

PaulWist
Клиент спрашивает, а почему я вам должен 100р


долг клиента равен сумме которую он оплатих согдасно минус сумма на которую он закупил товару

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

PaulWist
Вы выписываете документ на отпуск товара, какому клиенту? Как это проверить на уровне БД, да ни как.

если оператор продал товар Пал Палычу, а должен был продать Ивану Палычу, то конечно виноват программист....
...
Рейтинг: 0 / 0
Одновременное редактирование строки на SQL
    #33783835
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни кто не спорит, просто есть вещи изначально формализованные и те которые нет, которые нельзя на уровне данных или интерфейса отловить.

Вопросы к программисту возникают из-за отсутствия административного управления, привыкли юзеры, что сами ошибок наделают, а кто-то за них найдет и ткнёт носом. Хотя это решается очень просто - снимут 500 или 1000р в зарплату, в следующий раз пользователь 5 раз проверит, прежде чем внести цифру в БД.

PS маленький коментарий

Aki долг клиента равен сумме которую он оплатих согдасно минус сумма на которую он закупил товару

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

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

PS Ну хорошо, давайте закончим.
...
Рейтинг: 0 / 0
64 сообщений из 64, показаны все 3 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Одновременное редактирование строки на SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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