|
|
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
В программе выполняются простые действия: - открытие выбранной накладной - изменение значений в этой накладной - запись сделанных изменений или отмена корректировки В MDB проекте это реализовано у меня так: - вставка записей для выбранной накладной в промежуточную таблицу из основной таблицы - корректировка значений в форме, у которой источником записей является промежуточная таблица. - при нажатии Ок делаем запись значений, а именно удаляются ВСЕ строки выбранной накладной из основной таблицы и делается вставку строк из промежуточной. Вопрос1: Надежен ли такой способ корректировки? Или следует сравнить каждую запись промежуточной и основной таблиц и на этом основании удалять, изменять или добавлять записи в основной таблице? Вопрос2: Не могу понять, как это сделать в ADP проекте. Какой источник записей указывать для формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 14:28 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Грустно!! Товарищи!!!!! Зачем же переписывать Access (да еще и сервер, похоже....) На мой взгляд - это один из самых неудачных подходов к решению проблемы изменения записей..... И сразу у меня возникает вопрос - что двигало разработчиком, что он пришел к такой схеме?!?! Почему нельзя обновлять запись прямо в таблице?!? Если медлено - то проблема не в таблице, а в руках.... Если без эмоций, то 1. - по надежности - ну как сказать... а если вдруг двое захотят корректировать - блокировки тоже ручками выставляешь!?!? 2. - а там оно и не нужно, при нормальном подходе.... - или конечно можно создавать temp таблицы, линковать их и пр..., но!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 16:36 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
вот и я о том же. с ума посходили с этими временными таблицами. любят лишнюю работу делать да на кнопки все вешать. прям руки поотрывал. насмотрелись как в 1С делают и давай лепить "отменить" "записать" "создать" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 16:56 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
повесьте в adp все на триггеры. да спите себе спокойно. кода -минимум. удобства -максимум. чо изобретать себе работу? аксесс все это позволяет делать гораздо проще. вот и пользуйтесь этими возможностями. нет. вот и пишут километры кода вот и пишут. в mdb не было транзакций на уровне таблицы. вот и приходилось все вешать накнопки. в adp от этого можно спокойно избавится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 17:00 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2Vitaly223: Я так делал, способ вполне надежен. Вариантов несколько, например: 1. Тот же самый отключенный рекордсет. 2. Временная таблица на сервере, общая для всех пользователей, с полем, которое позволит отличить записи разных клиентов. 3. Никаких удалений, только добавления. Т.е. создается копия редактируемой записи, старая помечается неиспользуемой. Параллельные изменения в процессе редактирования ловятся по timestamp Реально применял 2-ой способ, тестировал 3-ий. 2Противники кнопки "Отмена": расскажите, чем уж она так вредна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 17:40 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
MixaCh, как в вашем варианте происходит откат изменений? К примеру, есть 2 таблицы Накладные (ID_Nacl(PK)) и "строки_накладных" (ID_String(PK),ID_NACL(FK),ID_Tovar(FK),Kolich). Источник данных табличной формы - запрос на базе второй таблицы. Пользователь изменил количества (KOLICH) в 5 строках, а потом передумал. Как в этом случае отменить изменения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 18:02 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Проблемка есть у аксеса при использовании временных таблиц MSSQL - для того, чтобы форма на основе такой таблицы была редактируемой, необходимо наличие прав dbo для базы tempdb. Это для разминки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 18:06 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
ИгорюМ у меня юзвери вставляют по 700-1000 записей как заказ. потом говрят "ой" надо бы отмениь вставку. опять вставляют, опять говорят "оЙ" мне что же по-товему все записи помечать? у меня ьаза так раздуется что караул закричишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 18:09 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
варану "как в вашем варианте происходит откат изменений?" если запись правится, то она правится. если накладная закрыта то строки_накладных будут только для чтения: меняеешь тип набоа на форме. проблему тоже мне нашел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 18:16 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2Pavel: "временная" - здесь это значит, что таблица имеет имя #... и находится в tmpdb. Это обычная таблица на сервере, которая используется для временного хранения изменяемых данных. Сорри за нечеткую формулировку. 2Хам трамвайный: что значит "помечать"? Ты про какой вариант, про 3-ий? В любом случае, смысл в том, что каждый решает сам, использовать такой функционал или нет. И если он не подходит тебе, то это не значит, что не подходит всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 18:58 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Хам трамвайный Может мы о разных вещах говорим? Я про MDB и табличную форму с контролами, привязанными к источнику данных . Предположим, в форме идут строки: Товар 1 10 шт Товар 2 20 шт Товар 3 15 шт Пользователь корректирует количества. Как только пользователь перейдет на другую запись, изменения тут же сохранятся в источнике данных. Например, пользователь исправил 20 на 100 и 15 на 300 , а потом решил оставить все, как было. Но изменения уже внесены в БД, как он узнает, что раньше-то было, он все уже переколбасил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:05 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
если он изменяет чтобы исправить , то если строка правильная - значит он её правил, если строка не правильная значит не исправил. IMHO Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 19:29 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
4D_Monster, это, конечно, глубокая философская мысль, но ведь речь идет не о том, как исправить единичную запись, а о том, как, исправив Группу записей, затем эти изменения отменить, т.е. вернуть в состояние, которое было до внесения изменений. Мне лично не понятно, как можно с помощью формы, напрямую привязанной к данным, реализовать это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 20:37 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
то есть... 1. создана накладная 2. в ней ошибка в позициях 5 - 10 количество товара меньше чем надо клиенту 3. манагер изменяет её в соответствии с необходимостью 4. если в соответствующей позиции теперь стои правильная цифра - ок, иначе исправляем строчку. теперь или объясни зачем отменять эти изменения , или приведи другой пример IMHO Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 20:45 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
4d_monster Я корректирую накладную задним числом, открываю, начинаю исправлять, почти все исправил, и тут замечаю, что исправил не ту накладую, надо все вернуть назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2003, 20:57 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Я корректирую накладную задним числом, открываю, начинаю исправлять, почти все исправил, и тут замечаю, что исправил не ту накладую, надо все вернуть назад Уволить! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 06:29 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Из моей практики: использование временных таблиц восходит к временам Dos'овских клипперов парадохксов и иже с ними, когда сбой (пропадание питания, зависание и т.д) напрочь рушило редактируемую таблицу. Использование временоой таблицы позволяло частично обойти эту проблему. Со временем некоторые начали находить в этом преимущества, а точнее вколотили себе в голову штамп, что так и нужно делать всегда. По варианту решения без использования временной таблицы - мы же с СУБД работаем, а стало быть обязаны дружить с математикой, следовательно мыслить логически гибко. Кто мешает реализовать undo, причем с неограгиченной вложенностью? К примеру при редактировании записи на самом деле не редактировать текущую, а создавать новую и присваивать ей атрибут актуальности, фиксируя дату\время корректировки и ссылку на исходную запись. Теперь undo будет сводится к простой смене признака актуальности у записи. Если кто-то приведет аргумент, что не хочет 1000 раз давить на кнопку undo, то я удивлюсь еще больше и предлоджу прописать довольно простой алгоритм групповой отмены до какого-то chekpoint'а. Кстати, а если работник исправил 10 'не тех' накладных по 1000 позиций в каждой? В предложенном мной варианте откат вполне реализуем, а в варианте с временными (на сакмом деле промежуточными) - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 06:53 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Драсте... Просто обожаю, когда вижу на НЕ софтверных фирмах диктат программистов! "Да мне на$рать, что накладные править надо, и что 700-800 позиций перенабирать заново придется, и что оператор должен трижды перепроверять каждое выполняемое действие, т.к. отсутствует возможность отката или редактирования. Мне вообще на$рать на эффективность работы НЕ софтверной фирмы в целом, лишь бы база не "пухла"..." :) Мой респект программерам, сумевшим поставить себя именно таким образом. ...ну и соболезнования фирмам, нанявшим таких максималистов от IT. //не вытерпел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 09:08 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
нуф-нуфДа мне на$рать ... что оператор должен трижды перепроверять каждое выполняемое действие Достаточно _одного_ раза, ей-богу! Это нам приходится по 10 раз перепроверять, потому что оператору показалось(!), что что-то считается неправильно нуф-нуфотсутствует возможность отката или редактирования Во-первых, "откат" <> "редактирование". Во-вторых, откат вполне возможен и в такой схеме. Вот только что-то никто не просит пока... нуф-нуфМой респект программерам, сумевшим поставить себя именно таким образом Спасибо ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 09:43 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
PavelКто мешает реализовать undo, причем с неограгиченной вложенностью? К примеру при редактировании записи на самом деле не редактировать текущую, а создавать новую и присваивать ей атрибут актуальности, фиксируя дату\время корректировки и ссылку на исходную запись. Теперь undo будет сводится к простой смене признака актуальности у записи. Вчера, 17:40 - способ №3. ;) Ведь вопрос заключался не во временных таблицах, а в реализации отката и использование промежуточной таблицы - это один из способов, причем, на мой взгляд, не самый плохой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 09:51 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 IgorM Да я ни в коем случае не претендую на авторство... Кстати, Undo <> Cancel> как справедливо заметил AlexJuice. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 10:14 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
>Достаточно _одного_ раза, ей-богу! Одного раза не достаточно, ибо изменить то, что он (оператор) ввел - нет никакой возможности! Ведь база будет пухнуть... >отсутствует возможность отката ИЛИ редактирования ИЛИ подразумевает, что "откат" <> "редактирование". Срочно перепешите ваше "Во-первых". По поводу "Во-вторых" - если вы заметили, то никакой конкретной схемы реализации или не_реализации я не коснулся, поэтому ваше "...и в такой схеме" для меня загадка. Срочно перепишите "Во-вторых" :) >Спасибо ;-) Пожалста /культурный типа :) Просто работал на одной фирме не программером не сумел объяснить программеру, что фирме нужно название товара в нескольких вариантах. Он ни в какую, мол база пухнуть будет, реляционая избыточность и т.п. :) Пришлось от него избавиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 10:26 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Спасибо за дельные советы. Я попытаюсь прояснить мою проблему. Пользователь открывает накладную. В ней перечисленны все товары, которыми торгует фирма. Напротив некоторых стоят количество и цена продажи. Это сделано ради быстроты и удобства ввода данных. Не добавляется строка с выбранным товаром, а только ставится количество и цена. Фактически в таблице хранятся лишь записи с проставленными значениями. При таком способе мне пришлось прибегнуть к промежуточной (временной) таблице, в которой приведен весь список товаров и указаны значения для выбранной накладной. Как же здесь работать напрямую с таблицей, чтобы за меня выполнял работу Аксесс или Сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 10:32 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
н-дя-я-я-я © Масяня IMHO Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 10:45 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2Vitaly223 Попробуйте использовать встроенный механизм транзакций Access wrkDefault.begintrans ... If MsgBox("Save all changes?", vbYesNo) = vbYes Then wrkDefault.CommitTrans Else wrkDefault.Rollback End If А вообще для серьезных приложений пора переходить на SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 10:52 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2Pavel: >Да я ни в коем случае не претендую на авторство... >Кстати, Undo <> Cancel> как справедливо заметил AlexJuice. Дело не авторстве, я на него тоже совсем не претендую, это общеизвестный способ, а в том, что я писал не о промежуточных таблицах, а о вариантах реализации отмены (корректировки). 2Vitaly223: Не касаясь удобства, правильности и прочих субъективных факторов подобной реализации... Все можно сделать точно так же: например, использовать для хранения временных данных специальную таблицу на сервере (аналогичную по структуре базовой), в которую ввести дополнительное поле идентификации текущего клиента. Т.е. примерный алгоритм: 1. Генерируем уникальное число (способ по большому счету неважен). 2. Копируем данные из редактируемого документа в пром. таблицу + в идентификационное поле записываем число из п.1. 3. Источником данных формы для редактирования служит пром. таблица с фильтром по идентификационному полю равному числу из п.1 4. В случае подверждения редактирования, либо удаляем все исходные записи и копируем новые, либо частично удаляем, частично обновляем. Контроль за параллельным редактированием можно осуществлять по разному, например использовать timestamp. P.S. Меня убеждать в правильности/неправильности данного подхода не нужно, убеждайте автора. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:00 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Vitaly223 А если всех товаров станет 100 000, как тогда будет работать пользователь? Можно прояснить этот момент При таком способе мне пришлось прибегнуть к промежуточной (временной) таблице, в которой приведен весь список товаров и указаны значения для выбранной накладной 2 All К спору по поводу программистов которых нужно уволить Имхо, все нужно оговаривать в ТЗ. Если там сказано, что должна быть возможность отката изменений всего редактируемого документа, тогда это дело программиста реализовать такое и как это будет сделано не имеет значения (для заказчика). Если не указано, а пользователь(заказчик) думает, что это само собой разумеется, то программист имеет полное право сказать "В ТЗ сказано ввод и редактирование документов и нигде не сказано откат изменений документа, поэтому редактируйте без ошибок, либо пишем дополнительное ТЗ и за доп. плату будет реализован механизм отката изменений" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:01 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
223 вставь ты записи из списка товаров в накладную. пусть они проставят количество . сама накладная находится в состоянии "черновик" переводишь накладную в приход/расход и удалишь нулевые записи из накладной -никакой временной таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:02 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Есть в таблице "Продажи" следующие записи: Накладная Товар Кол-во ------------------------- 1 сметана 10 1 сливки 5 1 кефир 4 ------------------------- Пользователь открыватет накладную 1 и видит накладную в таком виде сметана 10 сливки 5 йогурт кефир 4 ряженка Какой ставить источник записей для формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:10 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Incold Сейчас товаров 300. В накладной можно выводить все товары, либо указать по фильтру какую группу товаров выводить, а какие скрыть. Но товар, у которого проставлена цена и количество при любом виде фильтра будет выводится на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:16 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
223 таблица Продажи пустые значения можешь удалить при проведении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:28 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Хам Все что ты говоришь - оно очень прикольно и даже правильно, но ТОЛЬКО ДЛЯ ADP ! Нету в mdb триггеров. Не-ту. Как только тебе понадобится при редактировании строк выполнять какие-то действия (менять резерв, корректировать складские проводки и мало ли какой еще бред) - то тут придется или транзакции по форме делать (с нелюбимыми тобою рекордсетами), или временные (локальные) таблицы использовать. Иначе будут у тебя данные разъезжаться, и будешь ты горькими слезами плакать. В 97-м альтернативы временным таблицам нет. В 2000-м и выше - Me.Recordset + транзакции = кусок геморроя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 11:52 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
автор Лох Позорный при редактировании строк выполнять какие-то действия (менять резерв, корректировать складские проводки и мало ли какой еще бред) В форме событие BeforeUpdate, AfterUpdate - некая эмуляция тригерров IMHO Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 12:00 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
для mdb повторяем т,1 стр 469 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 12:02 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 4dмонстер Некая эмуляция говоришь? Тогда у меня в системе будет некая эмуляция согласованности данных. Примеры привести как данные могут разъехаться при многопользовательской работе? В сад такую некую эмуляцию. 2 Хам Хам, ты хоть скажи что там, на 469 странице? А то я как раз первый том отдал почитать :)) (а некоторые его и не имеют) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 12:44 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
там так красиво написано, что я цитировать боюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:18 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Можно попробовать такую архитектуру Есть таблицы Накладных и строк накладных. И отдельно - таблица проводок. (А ля 1С) Каждая накладная может быть проведенной - иметь проводки, и непроведенной. Этим достигается: Скорость расчета остатков увеличивается, т.к. в таблице проводок не хранятся непроведенные накладные. Остатки могут двигать накладные разных видов с разными реквизитами. При редактировании проведенной накладной всегда можно откатиться, взяв информацию из проводок о последнем состоянии. При редактировании непроведенной накладной откатиться нельзя, но вы говорите, что меняете накладные задним числом, то есть они проведенные. Минусы - нужно принудительно либо перепроводить либо откатывать проведенную накладную, если в ней что-то меняется задним числом; увеличивается количество таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:24 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Хам Ты не цитируй, ты хотябы название раздела/главы/параграфа/что-там еще есть скажи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:30 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
> для mdb > повторяем > т,1 стр 469 > там так красиво > написано, что я цитировать > боюсь Заголовок - "Подчиненные формы и транзакции". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:32 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Tsaryov S А ты не боишься, что система обделается, когда один юзер будет редактировать состав (еще не проведенной накладной), а другой в этот момент ее проведет? Это так, навскидку. Мест где система обделаться может слишком много чтобы их все предусматривать. Нельзя в mdb данные напрямую в основном хранилище редактировать. Низ-зя. Только в каком-либо буфере - или во временных таблицах, или в транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:35 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Гео и Хам Ну я же говорил. В 2000-м и выше - транзакции и пляски с рекордсетами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:36 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
Лох ПозорныйНельзя в mdb данные напрямую в основном хранилище редактировать. Низ-зя. Можно. Всё зависит от реализуемой задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:53 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 IgorM Разумеется зависит от задачи. Я рассуждал с позиции учета движения товара. Что то не припомню, чтоб такие задачи не требовали проверок, триггеров, транзакций и прочей радости. Напрямую редактируя данные в основном хранилище - мы, к сожалению, от этих радостей (поневоле) избавлены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 13:59 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2Лох Согласен, без триггеров и блокировок на уровне сервера написание многопользовательской, и притом надежно работающей базы сильно затруднено. Кроме озвученных вопросов открытия одной накладной одновременно несколькими юзерами встает вопрос, а что, если кто-то захочет данные править обработкой, не из формы (типа массового перепроведения), Или флаг проведения снялся, а проводки не удалились, и т.д. Везде свои прелести. 2All К сожалению, не знаком с книгой Гетца, что там за триггеры в mdb? По-моему, установить SQL-сервер, перевести потихньку туда базу имеет больше плюсов, тем более он на лотках продается (хотя кому-то это минус) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 14:14 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2 Tsaryov S К сожалению, не знаком с книгой Гетца Все дружно показали на тебя пальцем и сказали "Фуууу" что там за триггеры в mdb? Нету там триггеров в mdb В старших версиях аксеса можно формочку повесить на открытый тобою рекордсет (причем открытый в твоем, полностью подконтрольном тебе сеансе), а это значит что можно завернуть все в транзакцию и использовать события BeforeUpdate/AfterUpdate как "эмуляцию триггеров". Хоть и не триггеры, но если уж в многопользовательской системе что-то одно отвалится - то все сразу за собой потянет. Хоть данные не разъедутся. Уже легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 14:19 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
2Лох Позорный: Даже с позиций учета движения товара. Допустим, я делал учетную базу для склада, три оператора, текущие остатки не хранятся, все расчеты идут по документам (проводкам), отката нет. Никаких промежуточных таблиц. Блокировки осуществляет Access (Jet). Работает и сейчас, периодически сливая старые данные в архив. "Радости", конечно, это хорошо и правильно, но не все же системы рассчитаны на десятки пользователей, работающих 24х7. Так что не стоит столь категорично их отбрасывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 14:35 |
|
||
|
Корректировка накладной
|
|||
|---|---|---|---|
|
#18+
...текущие остатки не хранятся, все расчеты идут по документам (проводкам), отката нет... ... выделенных состояний документов нет, переходов между состояниями нет, ограничений на возможность редактирования нет (например, нельзя редактировать проведенный документ), сохраненных промежуточных остатков (для ускорения расчета по проводками) нет, порождений одних документов по другим нет, кучи всего нет.... Не вопрос. Если такая система востребованна - то в ней так и надо, не мудрствуя лукаво править все там, где оно лежит. Ибо представляет оно из себя две таблицы - заголовок и состав (ну и всякие справочники и т.п.). Если есть что-то сложнее двух таблиц (что-нить из первого абзаца например) - то, честно говоря, я не представляю, как это сделать надежно и - напрямую редактируя. Возражения типа "не все же системы рассчитаны на десятки пользователей" не принимаются. Могут быть всего два варианта - либо ровно один пользователь, либо пользователей больше одного. Так что не стоит столь категорично их отбрасывать Ладно, ладно... Чегой-то я разгундосился. Сам однопользовательские вспомогательные базки писал (для контроля аксапты). Бывает такое нужно. Но редко в моей практике, вот я по привычке такое и отбрасываю из рассмотрения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 14:58 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1677703]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
100ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 385ms |

| 0 / 0 |
