powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Корректировка накладной
48 сообщений из 48, показаны все 2 страниц
Корректировка накладной
    #32349222
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В программе выполняются простые действия:
- открытие выбранной накладной
- изменение значений в этой накладной
- запись сделанных изменений или отмена корректировки

В MDB проекте это реализовано у меня так:
- вставка записей для выбранной накладной в промежуточную таблицу из основной таблицы
- корректировка значений в форме, у которой источником записей является промежуточная таблица.
- при нажатии Ок делаем запись значений, а именно удаляются ВСЕ строки выбранной накладной из основной таблицы и делается вставку строк из промежуточной.

Вопрос1: Надежен ли такой способ корректировки? Или следует сравнить каждую запись промежуточной и основной таблиц и на этом основании удалять, изменять или добавлять записи в основной таблице?

Вопрос2: Не могу понять, как это сделать в ADP проекте. Какой источник записей указывать для формы?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349538
MixaCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грустно!! Товарищи!!!!!

Зачем же переписывать Access (да еще и сервер, похоже....)
На мой взгляд - это один из самых неудачных подходов к решению проблемы изменения записей.....

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

Если без эмоций, то

1. - по надежности - ну как сказать... а если вдруг двое захотят корректировать - блокировки тоже ручками выставляешь!?!?

2. - а там оно и не нужно, при нормальном подходе.... - или конечно можно создавать temp таблицы, линковать их и пр..., но!!!!!
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349572
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и я о том же.
с ума посходили
с этими временными таблицами.
любят лишнюю
работу делать
да на кнопки все вешать.
прям руки поотрывал.
насмотрелись как в 1С
делают и давай лепить
"отменить"
"записать"
"создать"
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349581
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повесьте в adp
все на триггеры.
да спите себе спокойно.
кода -минимум.
удобства -максимум.
чо изобретать себе работу?
аксесс все это позволяет
делать гораздо
проще. вот и пользуйтесь
этими возможностями.
нет. вот и пишут километры
кода вот и пишут.
в mdb не было транзакций
на уровне таблицы.
вот и приходилось
все вешать накнопки.
в adp от этого можно
спокойно избавится
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349648
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Vitaly223:

Я так делал, способ вполне надежен.

Вариантов несколько, например:
1. Тот же самый отключенный рекордсет.
2. Временная таблица на сервере, общая для всех пользователей, с полем, которое позволит отличить записи разных клиентов.
3. Никаких удалений, только добавления. Т.е. создается копия редактируемой записи, старая помечается неиспользуемой.

Параллельные изменения в процессе редактирования ловятся по timestamp

Реально применял 2-ой способ, тестировал 3-ий.

2Противники кнопки "Отмена": расскажите, чем уж она так вредна?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349695
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixaCh, как в вашем варианте происходит откат изменений? К примеру, есть 2 таблицы Накладные (ID_Nacl(PK)) и "строки_накладных" (ID_String(PK),ID_NACL(FK),ID_Tovar(FK),Kolich). Источник данных табличной формы - запрос на базе второй таблицы. Пользователь изменил количества (KOLICH) в 5 строках, а потом передумал. Как в этом случае отменить изменения?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349702
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемка есть у аксеса при использовании временных таблиц MSSQL - для того, чтобы форма на основе такой таблицы была редактируемой, необходимо наличие прав dbo для базы tempdb. Это для разминки.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349712
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгорюМ
у меня юзвери
вставляют
по 700-1000 записей
как заказ.
потом говрят "ой"
надо бы отмениь вставку.
опять вставляют, опять
говорят "оЙ"
мне что же по-товему
все записи помечать?
у меня ьаза так раздуется
что караул закричишь
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349718
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
варану
"как в вашем варианте происходит откат изменений?"
если запись правится, то
она правится.
если накладная закрыта
то строки_накладных будут только
для чтения: меняеешь тип набоа
на форме.
проблему тоже мне нашел
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349785
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel: "временная" - здесь это значит, что таблица имеет имя #... и находится в tmpdb. Это обычная таблица на сервере, которая используется для временного хранения изменяемых данных. Сорри за нечеткую формулировку.

2Хам трамвайный: что значит "помечать"? Ты про какой вариант, про 3-ий?

В любом случае, смысл в том, что каждый решает сам, использовать такой функционал или нет. И если он не подходит тебе, то это не значит, что не подходит всем.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349798
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хам трамвайный
Может мы о разных вещах говорим? Я про MDB и табличную форму с контролами, привязанными к источнику данных . Предположим, в форме идут строки:
Товар 1 10 шт
Товар 2 20 шт
Товар 3 15 шт
Пользователь корректирует количества.
Как только пользователь перейдет на другую запись, изменения тут же сохранятся в источнике данных. Например, пользователь исправил 20 на 100 и 15 на 300 , а потом решил оставить все, как было. Но изменения уже внесены в БД, как он узнает, что раньше-то было, он все уже переколбасил.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349824
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если он изменяет чтобы исправить , то если строка правильная - значит он её правил, если строка не правильная значит не исправил.

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349876
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4D_Monster, это, конечно, глубокая философская мысль, но ведь речь идет не о том, как исправить единичную запись, а о том, как, исправив Группу записей, затем эти изменения отменить, т.е. вернуть в состояние, которое было до внесения изменений. Мне лично не понятно, как можно с помощью формы, напрямую привязанной к данным, реализовать это.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349881
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть...

1. создана накладная
2. в ней ошибка в позициях 5 - 10 количество товара меньше чем надо клиенту
3. манагер изменяет её в соответствии с необходимостью
4. если в соответствующей позиции теперь стои правильная цифра - ок, иначе исправляем строчку.

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

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349888
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4d_monster
Я корректирую накладную задним числом, открываю, начинаю исправлять, почти все исправил, и тут замечаю, что исправил не ту накладую, надо все вернуть назад.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349988
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я корректирую накладную задним числом, открываю, начинаю исправлять, почти все исправил, и тут замечаю, что исправил не ту накладую, надо все вернуть назад

Уволить!
...
Рейтинг: 0 / 0
Корректировка накладной
    #32349994
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из моей практики: использование временных таблиц восходит к временам Dos'овских клипперов парадохксов и иже с ними, когда сбой (пропадание питания, зависание и т.д) напрочь рушило редактируемую таблицу. Использование временоой таблицы позволяло частично обойти эту проблему. Со временем некоторые начали находить в этом преимущества, а точнее вколотили себе в голову штамп, что так и нужно делать всегда.
По варианту решения без использования временной таблицы - мы же с СУБД работаем, а стало быть обязаны дружить с математикой, следовательно мыслить логически гибко.
Кто мешает реализовать undo, причем с неограгиченной вложенностью? К примеру при редактировании записи на самом деле не редактировать текущую, а создавать новую и присваивать ей атрибут актуальности, фиксируя дату\время корректировки и ссылку на исходную запись. Теперь undo будет сводится к простой смене признака актуальности у записи. Если кто-то приведет аргумент, что не хочет 1000 раз давить на кнопку undo, то я удивлюсь еще больше и предлоджу прописать довольно простой алгоритм групповой отмены до какого-то chekpoint'а. Кстати, а если работник исправил 10 'не тех' накладных по 1000 позиций в каждой? В предложенном мной варианте откат вполне реализуем, а в варианте с временными (на сакмом деле промежуточными) - нет.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350067
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте...
Просто обожаю, когда вижу на НЕ софтверных фирмах диктат программистов!
"Да мне на$рать, что накладные править надо, и что 700-800 позиций перенабирать заново придется, и что оператор должен трижды перепроверять каждое выполняемое действие, т.к. отсутствует возможность отката или редактирования. Мне вообще на$рать на эффективность работы НЕ софтверной фирмы в целом, лишь бы база не "пухла"..." :)
Мой респект программерам, сумевшим поставить себя именно таким образом.
...ну и соболезнования фирмам, нанявшим таких максималистов от IT.
//не вытерпел
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350111
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуф-нуфДа мне на$рать ... что оператор должен трижды перепроверять каждое выполняемое действие
Достаточно _одного_ раза, ей-богу! Это нам приходится по 10 раз перепроверять, потому что оператору показалось(!), что что-то считается неправильно

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

нуф-нуфМой респект программерам, сумевшим поставить себя именно таким образом
Спасибо ;-)
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350123
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PavelКто мешает реализовать undo, причем с неограгиченной вложенностью? К примеру при редактировании записи на самом деле не редактировать текущую, а создавать новую и присваивать ей атрибут актуальности, фиксируя дату\время корректировки и ссылку на исходную запись. Теперь undo будет сводится к простой смене признака актуальности у записи.

Вчера, 17:40 - способ №3. ;)

Ведь вопрос заключался не во временных таблицах, а в реализации отката и использование промежуточной таблицы - это один из способов, причем, на мой взгляд, не самый плохой.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350173
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 IgorM
Да я ни в коем случае не претендую на авторство...
Кстати, Undo <> Cancel> как справедливо заметил AlexJuice.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350201
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Достаточно _одного_ раза, ей-богу!
Одного раза не достаточно, ибо изменить то, что он (оператор) ввел - нет никакой возможности! Ведь база будет пухнуть...

>отсутствует возможность отката ИЛИ редактирования
ИЛИ подразумевает, что "откат" <> "редактирование". Срочно перепешите ваше "Во-первых".
По поводу "Во-вторых" - если вы заметили, то никакой конкретной схемы реализации или не_реализации я не коснулся, поэтому ваше "...и в такой схеме" для меня загадка. Срочно перепишите "Во-вторых" :)

>Спасибо ;-)
Пожалста /культурный типа :)

Просто работал на одной фирме не программером не сумел объяснить программеру, что фирме нужно название товара в нескольких вариантах. Он ни в какую, мол база пухнуть будет, реляционая избыточность и т.п. :) Пришлось от него избавиться
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350212
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за дельные советы. Я попытаюсь прояснить мою проблему.

Пользователь открывает накладную. В ней перечисленны все товары, которыми торгует фирма. Напротив некоторых стоят количество и цена продажи. Это сделано ради быстроты и удобства ввода данных. Не добавляется строка с выбранным товаром, а только ставится количество и цена. Фактически в таблице хранятся лишь записи с проставленными значениями. При таком способе мне пришлось прибегнуть к промежуточной (временной) таблице, в которой приведен весь список товаров и указаны значения для выбранной накладной.
Как же здесь работать напрямую с таблицей, чтобы за меня выполнял работу Аксесс или Сервер?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350240
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
н-дя-я-я-я © Масяня

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350258
Tsaryov S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Vitaly223
Попробуйте использовать встроенный механизм транзакций Access
wrkDefault.begintrans
...
If MsgBox("Save all changes?", vbYesNo) = vbYes Then
wrkDefault.CommitTrans
Else
wrkDefault.Rollback
End If

А вообще для серьезных приложений пора переходить на SQL
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350276
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel:
>Да я ни в коем случае не претендую на авторство...
>Кстати, Undo <> Cancel> как справедливо заметил AlexJuice.

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

2Vitaly223:
Не касаясь удобства, правильности и прочих субъективных факторов подобной реализации... Все можно сделать точно так же: например, использовать для хранения временных данных специальную таблицу на сервере (аналогичную по структуре базовой), в которую ввести дополнительное поле идентификации текущего клиента. Т.е. примерный алгоритм:

1. Генерируем уникальное число (способ по большому счету неважен).
2. Копируем данные из редактируемого документа в пром. таблицу + в идентификационное поле записываем число из п.1.
3. Источником данных формы для редактирования служит пром. таблица с фильтром по идентификационному полю равному числу из п.1
4. В случае подверждения редактирования, либо удаляем все исходные записи и копируем новые, либо частично удаляем, частично обновляем.

Контроль за параллельным редактированием можно осуществлять по разному, например использовать timestamp.

P.S. Меня убеждать в правильности/неправильности данного подхода не нужно, убеждайте автора. :)
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350278
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vitaly223
А если всех товаров станет 100 000, как тогда будет работать пользователь?

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

2 All
К спору по поводу программистов которых нужно уволить
Имхо, все нужно оговаривать в ТЗ.
Если там сказано, что должна быть возможность отката изменений всего редактируемого документа, тогда это дело программиста реализовать такое и как это будет сделано не имеет значения (для заказчика).
Если не указано, а пользователь(заказчик) думает, что это само собой разумеется, то программист имеет полное право сказать
"В ТЗ сказано ввод и редактирование документов и нигде не сказано откат изменений документа, поэтому редактируйте без ошибок, либо пишем дополнительное ТЗ и за доп. плату будет реализован механизм отката изменений"
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350281
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
223
вставь ты записи
из списка товаров
в накладную.
пусть они проставят количество
. сама
накладная находится
в состоянии "черновик"
переводишь накладную
в приход/расход
и удалишь
нулевые записи из
накладной

-никакой
временной таблицы
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350306
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в таблице "Продажи" следующие записи:
Накладная Товар Кол-во
-------------------------
1 сметана 10
1 сливки 5
1 кефир 4
-------------------------
Пользователь открыватет накладную 1 и видит накладную в таком виде
сметана 10
сливки 5
йогурт
кефир 4
ряженка

Какой ставить источник записей для формы?
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350317
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Incold
Сейчас товаров 300. В накладной можно выводить все товары, либо указать по фильтру какую группу товаров выводить, а какие скрыть. Но товар, у которого проставлена цена и количество при любом виде фильтра будет выводится на форме.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350349
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
223
таблица Продажи
пустые значения
можешь удалить
при проведении
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350416
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Хам
Все что ты говоришь - оно очень прикольно и даже правильно, но ТОЛЬКО ДЛЯ ADP !
Нету в mdb триггеров. Не-ту.
Как только тебе понадобится при редактировании строк выполнять какие-то действия (менять резерв, корректировать складские проводки и мало ли какой еще бред) - то тут придется или транзакции по форме делать (с нелюбимыми тобою рекордсетами), или временные (локальные) таблицы использовать. Иначе будут у тебя данные разъезжаться, и будешь ты горькими слезами плакать.
В 97-м альтернативы временным таблицам нет. В 2000-м и выше - Me.Recordset + транзакции = кусок геморроя.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350434
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Лох Позорный при редактировании строк выполнять какие-то действия (менять резерв, корректировать складские проводки и мало ли какой еще бред)

В форме событие BeforeUpdate, AfterUpdate - некая эмуляция тригерров

IMHO Mon$te®
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350439
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для mdb
повторяем
т,1 стр 469
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350521
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 4dмонстер
Некая эмуляция говоришь? Тогда у меня в системе будет некая эмуляция согласованности данных. Примеры привести как данные могут разъехаться при многопользовательской работе?
В сад такую некую эмуляцию.

2 Хам
Хам, ты хоть скажи что там, на 469 странице? А то я как раз первый том отдал почитать :)) (а некоторые его и не имеют)
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350588
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там так красиво
написано, что я цитировать
боюсь
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350602
Tsaryov S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать такую архитектуру
Есть таблицы Накладных и строк накладных.
И отдельно - таблица проводок. (А ля 1С)
Каждая накладная может быть проведенной - иметь проводки, и непроведенной. Этим достигается:
Скорость расчета остатков увеличивается, т.к. в таблице проводок не хранятся непроведенные накладные.
Остатки могут двигать накладные разных видов с разными реквизитами.
При редактировании проведенной накладной всегда можно откатиться, взяв информацию из проводок о последнем состоянии.
При редактировании непроведенной накладной откатиться нельзя, но вы говорите, что меняете накладные задним числом, то есть они проведенные.
Минусы - нужно принудительно либо перепроводить либо откатывать проведенную накладную, если в ней что-то меняется задним числом; увеличивается количество таблиц.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350621
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Хам
Ты не цитируй, ты хотябы название раздела/главы/параграфа/что-там еще есть скажи
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350629
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> для mdb
> повторяем
> т,1 стр 469

> там так красиво
> написано, что я цитировать
> боюсь



Заголовок - "Подчиненные формы и транзакции".
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350631
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tsaryov S
А ты не боишься, что система обделается, когда один юзер будет редактировать состав (еще не проведенной накладной), а другой в этот момент ее проведет? Это так, навскидку. Мест где система обделаться может слишком много чтобы их все предусматривать.
Нельзя в mdb данные напрямую в основном хранилище редактировать. Низ-зя. Только в каком-либо буфере - или во временных таблицах, или в транзакции.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350634
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Гео и Хам
Ну я же говорил. В 2000-м и выше - транзакции и пляски с рекордсетами.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350676
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох ПозорныйНельзя в mdb данные напрямую в основном хранилище редактировать. Низ-зя.

Можно. Всё зависит от реализуемой задачи.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350697
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 IgorM
Разумеется зависит от задачи.
Я рассуждал с позиции учета движения товара. Что то не припомню, чтоб такие задачи не требовали проверок, триггеров, транзакций и прочей радости. Напрямую редактируя данные в основном хранилище - мы, к сожалению, от этих радостей (поневоле) избавлены.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350724
Tsaryov S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох
Согласен, без триггеров и блокировок на уровне сервера написание многопользовательской, и притом надежно работающей базы сильно затруднено.
Кроме озвученных вопросов открытия одной накладной одновременно несколькими юзерами встает вопрос, а что, если кто-то захочет данные править обработкой, не из формы (типа массового перепроведения),
Или флаг проведения снялся, а проводки не удалились, и т.д.
Везде свои прелести.
2All
К сожалению, не знаком с книгой Гетца, что там за триггеры в mdb? По-моему, установить SQL-сервер, перевести потихньку туда базу имеет больше плюсов, тем более он на лотках продается (хотя кому-то это минус)
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350746
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tsaryov S
К сожалению, не знаком с книгой Гетца
Все дружно показали на тебя пальцем и сказали "Фуууу"

что там за триггеры в mdb?
Нету там триггеров в mdb
В старших версиях аксеса можно формочку повесить на открытый тобою рекордсет (причем открытый в твоем, полностью подконтрольном тебе сеансе), а это значит что можно завернуть все в транзакцию и использовать события BeforeUpdate/AfterUpdate как "эмуляцию триггеров". Хоть и не триггеры, но если уж в многопользовательской системе что-то одно отвалится - то все сразу за собой потянет. Хоть данные не разъедутся. Уже легче.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350773
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох Позорный:
Даже с позиций учета движения товара. Допустим, я делал учетную базу для склада, три оператора, текущие остатки не хранятся, все расчеты идут по документам (проводкам), отката нет. Никаких промежуточных таблиц. Блокировки осуществляет Access (Jet). Работает и сейчас, периодически сливая старые данные в архив.
"Радости", конечно, это хорошо и правильно, но не все же системы рассчитаны на десятки пользователей, работающих 24х7. Так что не стоит столь категорично их отбрасывать.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350810
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...текущие остатки не хранятся, все расчеты идут по документам (проводкам), отката нет...
... выделенных состояний документов нет, переходов между состояниями нет, ограничений на возможность редактирования нет (например, нельзя редактировать проведенный документ), сохраненных промежуточных остатков (для ускорения расчета по проводками) нет, порождений одних документов по другим нет, кучи всего нет....

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

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

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

Так что не стоит столь категорично их отбрасывать
Ладно, ладно... Чегой-то я разгундосился. Сам однопользовательские вспомогательные базки писал (для контроля аксапты). Бывает такое нужно. Но редко в моей практике, вот я по привычке такое и отбрасываю из рассмотрения.
...
Рейтинг: 0 / 0
Корректировка накладной
    #32350946
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох Позорный:

Есть почти все, что ты перечислил, исключая, как я уже писал, текущие остатки.

>Ладно, ладно... Чегой-то я разгундосился.

Тогда на этом и закончим...
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Корректировка накладной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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