powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Временная запись, добавляется с клиента. Как потом её корректно удалить?
46 сообщений из 46, показаны все 2 страниц
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599083
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здравствуйте.
Клиентское приложение во время работы добавляет запись в одну из таблиц, затем пользователь вносит в диалоговое окно данные для этой записи. После этого пользователь должен или подтвердить ввод данных или отменить (тогда эта запись должна удалиться). Если во время ввода данных программа повиснет/разорвется коннект/и т.д., в таблице останется запись, которая в дальнейшем будет мешать нормальной работе. Как можно выйти из этой ситуации? Ввести сначала данные, а потом уже добавлять запись - только в крайнем случае, если других вариантов не будет :)
Спасибо за советы!
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599103
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы не делаете commit после вставки временной записи - то все само собой рассосется.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599111
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если делаете commit(хотя зачем-неясно), то в триггере на logoff надо удалять все временные записи, по которым нет детальных.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599255
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая схема - добавил-удалил - в принципе неверна. Поскольку ненадежна, критична к малейшим ошибкам программиста.
Лучше использовать промежуточные буферные либо временные таблицы. При сохранении - запись переносим, при отмене - оставляем как есть. Опционально с какой-то периодичностью можно чистить.

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599349
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockЕсли Вы не делаете commit после вставки временной записи - то все само собой рассосется.
Не все так просто, вот вставил оператор, новую накладную, нужно получить идентификатор, потом час добавляет перечень, а потом говорит ЭХ! и нажимает кнопку Cancel (в лучшем случае) или Reset.

Транзакциями тут никак не обойтись, нельзя открыть транзакцию на час. Мы пошли по другому пути запись сохраняется в основную таблицу но с пометкой что запись "неактуальна", соответственно мы можем работать с записью, но признак того что эта запись актуальна проставится только когда человек нажмет кнопку ОК.

Если рухнет коннект, или пользователь нажмет кнопку Cancel то "неактуальная" запись останется в таблице. Конечно ее можно удалить потом скриптом, но из опыта количество таких записей не превышает 5% и на производительность они не влияют.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599457
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это делается не в транзакции. Открывать транзакцию на клиенте - не есть хорошо. А на сервере в транзакцию обернута лишь часть ХП, которая и сохраняет данные после того, как пользователь подтвердил их ввод
Временная таблица - да, решит проблему. Но у меня возникновение такой "повисшей" записи - маловероятно, хотя и встречается. Делать ради этого временную таблицу ну уж совсем не хочется. Лучше уж какой-нибудь флаг в таблице сделать - валидная ли запись или нет.
"Если рухнет коннект, или пользователь нажмет кнопку Cancel то "неактуальная" запись останется в таблице. Конечно ее можно удалить потом скриптом, но из опыта количество таких записей не превышает 5% и на производительность они не влияют." - у меня это влияет не на производительность, а на нормальную работу приложения. Таких записей не должно быть совсем :(
Наверное, сделаю не временную таблицу, а флаг.
Спасибо всем большое!
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599467
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте пофлеймим,что-ли...
А где тогда транзакцию открывать то?Что-то в "Открывать транзакцию на клиенте - не есть хорошо. А на сервере в транзакцию обернута лишь часть ХП, которая и сохраняет данные после того, как пользователь подтвердил их ввод" вызывает у меня непонимание.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599539
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KezyaЛучше уж какой-нибудь флаг в таблице сделать - валидная ли запись или нет.<skipped>
Наверное, сделаю не временную таблицу, а флаг. Правильно.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599612
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shtock
Тут транзакций вообще не надо открывать нигде - в смысле "специально открывать". Флагом на записи все решается.

-- Tygra's --
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33599857
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsТранзакциями тут никак не обойтись, нельзя открыть транзакцию на час.
Сомнительное утверждение.

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

В такой ситуации я бы скорее воспользовался кэшированными изменениями.

EstetsКонечно ее можно удалить потом скриптом, но из опыта количество таких записей не превышает 5% и на производительность они не влияют.
На производительность - не влияют. Влияют на программистов, которые в ста из десяти тысяч мест забудут написать "and flag_active = 1".
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600081
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer EstetsТранзакциями тут никак не обойтись, нельзя открыть транзакцию на час.
Сомнительное утверждение.

Угу только вот сам встречался с "программистами" которые пишут на клиенте

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
BEGIN TRAN
UPDATE ....
IF <Ошибка> THEN
  MessageBox('Внимание', '....')
  ROLLBACK TRAN
ELSE
  COMMIT TRAN
END IF

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

softwarerНа производительность - не влияют. Влияют на программистов, которые в ста из десяти тысяч мест забудут написать "and flag_active = 1".
И такое бывает. Правда у нас был не флаг, а поле "статус", в котором хранилось текущее состояние документа, и проверять его было все равно обязательно так как возможны были и состояния типа "Удален". Но все рвно забывали.

К сожалению я не знаю другого алгоритма внесения MASTER-DETAIL с возможностью откатить вставку и того и другого. Можно конечно попытаться использовать временные таблицы, или структуры в памяти, но тогда возникают проблемы с изменением записей.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600202
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerв ста из десяти тысяч мест забудут написать "and flag_active = 1". А вью на что?
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600278
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsУгу только вот сам встречался с "программистами" которые пишут на клиенте ..... а потом удивляются
Тем не менее я не вижу никаких оснований лупить глобальными утверждениями там, где речь может идти о частных проблемах конкретного решения. Это будет ровно так же оправданно, как если я скажу "надо делать транзакцию на час, никаких проблем не будет и никакого другого решения никогда понадобиться не может, дурь это все".

EstetsИ такое бывает. Правда у нас был не флаг, а поле "статус",
Я бы сказал не "бывает", а "будет". При такой структуре избежать этой проблемы практически невозможно; можно только минимизировать вероятность ее возникновения (в частности - не вводить лишних состояний).

EstetsК сожалению я не знаю другого алгоритма внесения MASTER-DETAIL с возможностью откатить вставку и того и другого.
Хм. Кэширование изменений на клиенте. Для Oracle я не люблю это решение, но для блокировочников оно представляется мне оптимальным вариантом. В моем единственном проекте на MSSQL так и работает.

EstetsМожно конечно попытаться использовать временные таблицы, или структуры в памяти, но тогда возникают проблемы с изменением записей.
Не очень понимаю, о чем Вы. Для блокировочника единственно потребуется внетранзакционный механизм блокирования документов.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600316
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRА вью на что?
Не на это :)

Согласен, view способны уменьшить количество таких ошибок, но во-первых не до нуля, а во-вторых, цена такого решения будет ненулевой. По сути, программист должен помнить и выполнять правило "нужно использовать вьюхи" вместо правила "нужно проверять статус". При этом элементарно удваивается количество объектов, о которых должен помнить|думать программист; ряд запросов таки должны идти к таблицам итп. Кроме того, в некоторых БД есть претензии к быстродействию view.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600611
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ такой ситуации я бы скорее воспользовался кэшированными изменениями.
Подскажите, пожалуйста, что это такое?
Да, флаг (статус) имеет свои минусы, но другого варианта пока нет :(
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600625
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kezya softwarerВ такой ситуации я бы скорее воспользовался кэшированными изменениями.
Подскажите, пожалуйста, что это такое?
Хм. Собственно, данные вместе со всеми модификациями хранятся на клиенте (много строк) до той поры, пока не нажимается большая красная кнопка и полный набор изменений одним пакетом отсылается на сервер. Технологическая реализация может быть самой разной, но если подумать, ее можно сделать вполне удобной. Для ввода документов - обычно подходит без проблем, хотя разумеется есть свои ограничения; основное - серверная логика также вынуждена выполняться чохом, в момент сохранения. Когда это может быть неудобным.... например, если Вы хотите сразу в момент создания строки в накладной резервировать товар для этой строки.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600971
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, низависима от тако, делаите вы камит или нет, лучше для надежнасти запись удалить. Для этава нада узнать значения палей, саставляющих их пирвичный ключ, и потом написать оператор SQL DELETE, где в WHERE указать все поля ключа и их значения.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33600997
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКогда это может быть неудобным.... например, если Вы хотите сразу в момент создания строки в накладной резервировать товар для этой строки.
У меня похожая ситуация: добавленная строка влечет за собой дальнейшие действия в базе. Реализовать это все на клиенте конечно можно, но муторно. Естественно, что после удаления строки удаляются и все изменения, с ней связанные.

MasterZivНе, низависима от тако, делаите вы камит или нет, лучше для надежнасти запись удалить. Для этава нада узнать значения палей, саставляющих их пирвичный ключ, и потом написать оператор SQL DELETE, где в WHERE указать все поля ключа и их значения.
Ну так-то да :) А если в промежуток времени между созданием записи и ее нормальным удалением - клиент "упал". Кто тогда удалит эту "повисшую" запись?
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601643
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer EstetsУгу только вот сам встречался с "программистами" которые пишут на клиенте ..... а потом удивляются
Тем не менее я не вижу никаких оснований лупить глобальными утверждениями там, где речь может идти о частных проблемах конкретного решения. Это будет ровно так же оправданно, как если я скажу "надо делать транзакцию на час, никаких проблем не будет и никакого другого решения никогда понадобиться не может, дурь это все".

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

softwarer
EstetsК сожалению я не знаю другого алгоритма внесения MASTER-DETAIL с возможностью откатить вставку и того и другого.
Хм. Кэширование изменений на клиенте. Для Oracle я не люблю это решение, но для блокировочников оно представляется мне оптимальным вариантом. В моем единственном проекте на MSSQL так и работает.


Данное решение возможно в частном случае например: есть редактор "партнера", краткое - полное наименование, инн и т.д. и рядом список телефонов.

Достаточно просто дать оператору заполнить данные в буфферах, массивах, структурах (в зависимости от используемого ПО) а потом при нажатии кнопки сохранить основную запись MASTER, получить ее идентификатор, и пробежаться по списку телефонов и сохранить DETAIL c заполненным partner_id.

Но во первых данное решение требует программирования каждой формы использующей отношение MASTER-DETAIL.

Во вторых, всегда найдется более сложные случаи например:
Те же партнеры и список адресов (в соответствии с КЛАДР). Тут просто редактирыванием списка (грида) адресов не обойтись, нужно открывать отдельное окно для выбора реквизитов адреса, и передавать изменения между списком и редактором. А потом окажется что к каждому адресу есть еще связанные списки MASTER-DETAIL-DETAIL напимер контактных лиц и телефонов. В результате структура кэша усложняется неимоверно, усдажняется соответственно и написание кода по вставке всего в БД.

А как говорится это только начало, при изменении записи нам либо придется поднимать весь кэш на клиента либо опять писать отдельный код по обработке отдельно ИЗМЕНЕНИЯ - УДАЛЕНИЯ записей.

И как решить все это безобразие я например не знаю. Мы пошли по пути вставки "неактуальной" записи, если есть другие решения с удовольствием готов их выслушать.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601688
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockЕсли Вы не делаете commit после вставки временной записи - то все само собой рассосется.
Это все я к тому что открывать транзакцию, вставлять запись и давать пользователю ее редактировать, это самый неудачный вариант решения проблемы.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601716
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaУ меня похожая ситуация: добавленная строка влечет за собой дальнейшие действия в базе.
Скажу так: по моему опыту перенос отработки логики с момента ввода данных на момент их сохранения не вызывает принципиальных проблем. Но не собираюсь настаивать на нравящемся мне решении; каждый выбирает тот геморрой, который ему более по душе.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601746
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsЭто все я к тому что открывать транзакцию, вставлять запись и давать пользователю ее редактировать, это самый неудачный вариант решения проблемы.
Это самый удачный вариант решения проблемы.

Я почему-то абсолютно уверен, что если загляну в Ваш профиль, обнаружится, что Вы MSSQL-щик (не DB2-шник, не Access-ник, а именно MSSQL). Это к сожалению общая и весьма раздражающая черта специалистов по этому серверу - считать, что других в природе не существует и формулировать местечковую мудрость так, словно это закон природы.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601757
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле пробема описанная здесь решается очень просто. Только нужна еще одна таблица (вспомогательная). Пусть ваш документ разбросан по куче таблиц. Ну и типа существует одна таблица типа- главная где DocID ведется. Ну так вот как только все таблицы заполнены - так во вспомогательную пишете запись с соответствующим DocID - типа документ стал актуальным. Ну и отчеты естественно получаете сджойнив с вспомогательной таблицей. Ну, короче понятно?...
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601871
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsС многими вашими утверждениями согласен, но данное утверждение применительно к блокировочникам буду оспаривать, что называется до последнего
Как раз в этом и состоит моя цель. Надеюсь, на этом примере Вы увидите, что Ваше утверждение применительно к версионникам выглядит столь же... спорно. А следовательно в топике, где ни слова не сказано об используемой БД, нет места ни тому, ни другому.

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

EstetsДостаточно просто дать оператору заполнить данные в буфферах, массивах, структурах
:((

EstetsНо во первых данное решение требует программирования каждой формы использующей отношение MASTER-DETAIL.
Какая жуть :(( Простите, но говорить так - показывать незнание такого повсеместно презираемого сейчас паттерна проектирования, как "выделение стандартных подпрограмм". Ну или более современных - например, "проектирование базовых классов".

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

EstetsВ результате структура кэша усложняется неимоверно, усдажняется соответственно и написание кода по вставке всего в БД.
Хм. Такое впечатление, что Вы говорите о технологиях программирования позапрошлого века. Хорошо написанная сложная программа состоит из множества простых кирпичиков и достаточно проста в реализации.

Согласен, на блокировочнике придется уделить внимание некоторым вещам, которые в версионнике легко решаются. Например, частичный откат - если вы из формы1 вызвали форму2, из формы2 вызвали форму3, в форме3 нажали Ok, а в форме2 - Cancel. Но я не вижу здесь ничего, что я не взялся бы эффективно (то есть хорошо и в разумные сроки) реализовать.

EstetsА как говорится это только начало, при изменении записи нам либо придется поднимать весь кэш на клиента либо опять писать отдельный код по обработке отдельно ИЗМЕНЕНИЯ - УДАЛЕНИЯ записей.
Зачем? Мне вспоминается эпизод из Гаррисона, где главный герой увидел толпу рабов, крутивших статор вокруг ротора - "если есть два пути что-то сделать, эти выберут худший".

EstetsИ как решить все это безобразие я например не знаю. Мы пошли по пути вставки "неактуальной" записи, если есть другие решения с удовольствием готов их выслушать.
Собственно сказал. У меня был проект, где заказчик захотел некий не очень с моей точки зрения обоснованный слой доступа к данным - по сути, грузить данные из БД на клиента, там ими оперировать и так вот кэшированно скидывать обратно. Я сейчас посмотрел - модуль, содержащий базовые классы для работы этого слоя, занимает порядка двух тысяч строк. Если добавить в него всю функциональность, которую я себе в принципе представляю для такой задачи - получится... думаю, тысяч пять.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601891
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer EstetsЭто все я к тому что открывать транзакцию, вставлять запись и давать пользователю ее редактировать, это самый неудачный вариант решения проблемы.
Это самый удачный вариант решения проблемы. Это хороший способ, но в блокировочниках так нельзя. П.э. для блокировочников это "самый неудачный вариант решения проблемы". Не только для MSSQL.
softwarerХм. Кэширование изменений на клиенте. Для Oracle я не люблю это решение, но для блокировочников оно представляется мне оптимальным вариантом. В моем единственном проекте на MSSQL так и работает Ну вы сделали версионник своими руками. Наверное вам так привычнее, хотя мне кажется, что это более трудозатратное решение, чем введение статусов.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601959
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один1Ну вы сделали версионник своими руками.
Это пожалуй что слишком сильное утверждение :) Хотя как афоризм - согласен.

Один1Наверное вам так привычнее, хотя мне кажется, что это более трудозатратное решение, чем введение статусов.
Такое сравнение без дополнительных оговорок не совсем корректно. Подобная технология и инструментаций ее поддержки - это разовые трудозатраты. Имхо - разумные по размеру, хотя понятно, что это зависит от инструментария разработки и других факторов. Ведение статусов - трудозатраты постоянные. Соответственно, для одного проекта на человеко-недели такой подход сомнителен, как стандартная библиотека даже для одинокого фрилансера - имхо оправдано.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33601979
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один1Это хороший способ, но в блокировочниках так нельзя. П.э. для блокировочников это "самый неудачный вариант решения проблемы". Не только для MSSQL.
Безусловно. Но почему-то тот же gardenman не склонен к подобным глобальным формулировкам до того, как оговорена БД, а вот именно от mssql-щиков такое слышно постоянно (согласен, наверяка есть и те, кто не склонны. Но процентное соотношение...).
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33602228
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer EstetsС многими вашими утверждениями согласен, но данное утверждение применительно к блокировочникам буду оспаривать, что называется до последнего
Как раз в этом и состоит моя цель. Надеюсь, на этом примере Вы увидите, что Ваше утверждение применительно к версионникам выглядит столь же... спорно. А следовательно в топике, где ни слова не сказано об используемой БД, нет места ни тому, ни другому.

Я поправился. У меня минимальный опыт работы с Oracle, так что я не могу аргументированно с вами поспорить. Хотя есть все таки сомнения в том что все так просто. Открыл транзакцию - загрузил документ - поправил - нажал ОК commit/нажал Cancel rollback. ;)

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

Тогда стоит наверное сказать на каких типах БД построены данные приложения? Если мы рассматриваем версионники и блокировочники. Или это тоже частный случай применимый только к версионникам?

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

softwarer EstetsВ результате структура кэша усложняется неимоверно, усдажняется соответственно и написание кода по вставке всего в БД.
Хм. Такое впечатление, что Вы говорите о технологиях программирования позапрошлого века. Хорошо написанная сложная программа состоит из множества простых кирпичиков и достаточно проста в реализации.

Ну со своей стороны могу сказать что семейство программ, которые я проектировал используют в 90 процентах три базовых объекта для обработки списка, редактора и фильтра. Уж как говорится объектнее некуда. Но правда связано это с особенностями средства разработки PowerBuider.
softwarer
Согласен, на блокировочнике придется уделить внимание некоторым вещам, которые в версионнике легко решаются. Например, частичный откат - если вы из формы1 вызвали форму2, из формы2 вызвали форму3, в форме3 нажали Ok, а в форме2 - Cancel.
И эту проблему пришлось решать ;)))

softwarerУ меня был проект, где заказчик захотел некий не очень с моей точки зрения обоснованный слой доступа к данным - по сути, грузить данные из БД на клиента, там ими оперировать и так вот кэшированно скидывать обратно.
Возможный подход, но как я утверждаю, применимый только в частном случае. В общем случае требующий неоправданных затрат на проектирование базовых объектов. Настолько неоправданных что я не знаю известных программ, библиотек или средств разработки реализующих данный принцип.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33602433
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsТогда стоит наверное сказать на каких типах БД построены данные приложения? Если мы рассматриваем версионники и блокировочники. Или это тоже частный случай применимый только к версионникам?
Эти приложения - для версионников. У меня для блокировочника единственный проект и кардинально менее крупный.

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

EstetsЕсли бы все было так просто, не было бы таких флеймов.
Я не знаю PowerBuilder и готов допустить, что на нем все непросто. Насколько я слышал, это продукт с достаточно жестко прописанной идеологией разработки.

EstetsНу со своей стороны могу сказать что семейство программ, которые я проектировал используют в 90 процентах три базовых объекта для обработки списка, редактора и фильтра. Уж как говорится объектнее некуда.
Э-э, очень даже есть куда. Обратите внимание, что названы по сути три визуальных компонента и все. Это "объектно" по той же логике, по которой ООП отождествляют с "киданием компонент на форму" в дельфе - типа раз компоненты, значит уже крутой ООпер.

EstetsВозможный подход, но как я утверждаю, применимый только в частном случае.
Описанный в этом абзаце подход - безусловно, частный. Но этот пример выдвигался не для доказательства общности, чему служили более ранние, а для оценки трудоемкости.

Это более сильное решение, чем "cached updates вообще" и тем не менее реализован без особых проблем. Следовательно и реализовать названное мной [в общем случае] возможно и не слишком сложно.

EstetsВ общем случае требующий неоправданных затрат на проектирование базовых объектов.
Хм. То есть Вы считаете две тысячи строк неоправданными затратами?

Не знаю. Лично я готов потратить неделю-две, дабы потом год за годом беспроблемно работать.

EstetsНастолько неоправданных что я не знаю известных программ, библиотек или средств разработки реализующих данный принцип.
Хм. Какой именно принцип? И если на то пошло, какие Вы знаете? :)
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33602783
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЯ не знаю PowerBuilder и готов допустить, что на нем все непросто. Насколько я слышал, это продукт с достаточно жестко прописанной идеологией разработки.
Рекомендации по "идеологии разработки" не ограничивают использование своей идеологии. В качестве особенности разработки я имел ввиду технологию DataWindow ээээ некое описание визуального представления для буффера данных (редактор, список, отчет в одном флаконе), что позволяет отвязать проблемы с получением, обработкой и сохранением данных от графического отображения их на экране. Насколько я знаю ничего похожего в других средствах разработки нет.

softwarer EstetsНу со своей стороны могу сказать что семейство программ, которые я проектировал используют в 90 процентах три базовых объекта для обработки списка, редактора и фильтра. Уж как говорится объектнее некуда.
Э-э, очень даже есть куда. Обратите внимание, что названы по сути три визуальных компонента и все.
Именно так и есть, приложение работает как тонкий клиент (вся обработка бизнес логики происходит только на сервере БД. Например настройка пункта главного меню "Список валют" содержит:
имя ХП - для получения данных
имя DataWindow - отвечающей за то как показать данные и как назвать колонки
и имя объекта - отвечающего за показ DataWindow вызов процедуры и обработка действий пользователя (поднятие контекстного меню и пр.)

softwarerЭто более сильное решение, чем "cached updates вообще" и тем не менее реализован без особых проблем. Следовательно и реализовать названное мной [в общем случае] возможно и не слишком сложно.
Нет действительно если для работы с ORACLE достаточно "Открыл транзакцию - загрузил документ - поправил - нажал ОК commit/нажал Cancel rollback. ;)", то я первый побегу с требованием к разработчикам сменить БД ;) и не напрягать службу поддержки дурацкими вопросами почему в отчет попала паразитная запись.

softwarerХм. То есть Вы считаете две тысячи строк неоправданными затратами?
Не знаю. Лично я готов потратить неделю-две, дабы потом год за годом беспроблемно работать.
Как говорил классик "Не верю", именно из за того что представляю объем необходимого кода и не представляю всех засад которые могут возникнуть при его реализации.

softwarerХм. Какой именно принцип? И если на то пошло, какие Вы знаете? :)
Если упростить до предела "Нельзя создать связанную запись до тех пор пока главная запись физически не сохранена в базе". Из чего следует ;) что не существует промышленных систем реализующих в полном объеме как вы сказали "cached updates" обновление информации для документов MASTER-DETAIL.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33602917
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsИменно так и есть, приложение работает как тонкий клиент
Судя по всему описанному, реализация кэширования на клиенте в вашем случае упирается в доработку либо реализацию собственного DataWindow. Допускаю, что это неоправданно проблематично.

EstetsНет действительно если для работы с ORACLE достаточно "Открыл транзакцию - загрузил документ - поправил - нажал ОК commit/нажал Cancel rollback. ;)", то я первый побегу с требованием к разработчикам сменить БД ;)
Хм. Так бегите :)

EstetsКак говорил классик "Не верю",
Ну, на нет и суда нет. Представлять код, извините, не буду - в первую очередь потому, что он принадлежит не мне.

EstetsЕсли упростить до предела "Нельзя создать связанную запись до тех пор пока главная запись физически не сохранена в базе".
Хм. Что-то я перестал Вас понимать. Я тоже не знаю библиотек, реализующих столь идиотский принцип, и не понимаю, откуда Вы его вытащили. Если же говорить о принципе "нельзя сохранить связанную запись, пока главная не сохранена", то он называется FOREIGN KEYем, и построенных на его учете библиотек, назовем так, много :)

EstetsИз чего следует ;) что не существует промышленных систем реализующих в полном объеме как вы сказали "cached updates" обновление информации для документов MASTER-DETAIL.
Хм. Меня учили, что из изначально..... нелогичного утверждения может следовать все что угодно, и это ровным счетом ничего не значит.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33603163
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, пойдем попорядку ;)

Есть форма реализуюшая отношение Master-Detail. Оператору необходимо сохранить 1 главную запись и N подчиненных. Можно

А. Открыть транзакцию, добавить запись в БД дать пользователю ее редактировать, добавить подчиненную запись в БД дать пользователю ее редактировать (N-раз). При нажатии кнопки ОК закоммитить транзакцию, при нажатии кнопки Cancel откатить транзакцию. Временных записей в БД не возникает.

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

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

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

Ну теперь итого:

А - возможно только для ORACLE
Б - возможно для версионника и для блокировочника, но в сложных случаях ИМХО не реализуемый
В - способ известный еще со времен DBASE, имеет право на жизнь, и достаточно часто используемый во всяких Axapta подобных системах. Но череватый паразитными записями.
Г. - предложенный мной способ решения, имеющий свои особенности.


softwarerХм. Что-то я перестал Вас понимать. Я тоже не знаю библиотек, реализующих столь идиотский принцип, и не понимаю, откуда Вы его вытащили. Если же говорить о принципе "нельзя сохранить связанную запись, пока главная не сохранена", то он называется FOREIGN KEYем, и построенных на его учете библиотек, назовем так, много :)
Мое утверждение касалось варианта Б. И еще раз могу сказать, что я не видел программ его реализующего в полном объеме.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33603199
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл кстати еще один способ

Д. Не давать пользователю вносить перечень пока он явно не сохранит главную запись. Что тоже мной использовалось для сложных но редких настроек.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33603243
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EstetsА. Открыть транзакцию, добавить запись в БД дать пользователю ее редактировать, добавить подчиненную запись в БД дать пользователю ее редактировать (N-раз). При нажатии кнопки ОК закоммитить транзакцию, при нажатии кнопки Cancel откатить транзакцию. Временных записей в БД не возникает.
<skipped>
А - возможно только для ORACLE Мне кажется, вы не совсем понимаете что есть версионник и блокировочник. Советую почитать например здесь http://www.ibase.ru/devinfo/versions.htm , достаточно четко и кратко. Возможно, у оракла имеются какие-то отличия и особенности, но вряд ли они существенны в данном случае.
Только перед тем как бежать менять БД, советую ознакомится с ... ну для начала с "Песенкой ослика-ораклиста" :)
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33603274
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один1Мне кажется, вы не совсем понимаете что есть версионник и блокировочник. Советую почитать например здесь http://www.ibase.ru/devinfo/versions.htm
Спасибо, я человек простой, от сохи, по этому повду знаю только одно что если человек открыл транзакцию и обновил одну запись в таблице и забыл ее закрыть, то рано или поздно на уши встанет болшой отдел ;)
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33603671
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsСпасибо, я человек простой, от сохи, по этому повду знаю только одно что если человек открыл транзакцию и обновил одну запись в таблице и забыл ее закрыть, то рано или поздно на уши встанет болшой отдел ;)
В случае Оракла - столько не живут :) Во всяком случае лично я за скоро десять лет работы с сервером ни разу не видел отдела, вставшего на уши по этому поводу.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33603684
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsА - возможно только для ORACLE
Скорее для любого версионника.

EstetsБ - возможно для версионника и для блокировочника, но в сложных случаях ИМХО не реализуемый
Ну - как говорится, если факты противоречат теории, тем хуже для фактов.

EstetsВ - способ известный еще со времен DBASE, имеет право на жизнь,
Не имеет. При встрече убивать вместе с автором.

EstetsГ. - предложенный мной способ решения, имеющий свои особенности.
Вот этот я бы классифицировал как "имеет право на жизнь".

EstetsМое утверждение касалось варианта Б. И еще раз могу сказать, что я не видел программ его реализующего в полном объеме.
Не знаю, что Вы называете полным объемом. В моем последнем проекте таким образом идет работа с метаинформацией проекта. Там есть понятие "ядро" - на текущий момент это системная часть клиента в двухзвенке, в перспективе также будет промежуточным звеном в трехзвенке; это ядро при старте грузит в себя метаинформацию, позволяет ее редактировать и по кнопке "сохранить" сбрасывает изменения в БД.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33604509
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer EstetsСпасибо, я человек простой, от сохи, по этому повду знаю только одно что если человек открыл транзакцию и обновил одну запись в таблице и забыл ее закрыть, то рано или поздно на уши встанет болшой отдел ;)
В случае Оракла - столько не живут :) Во всяком случае лично я за скоро десять лет работы с сервером ни разу не видел отдела, вставшего на уши по этому поводу.
Так это все таки заслуга Oracle без его блокировки ресурсов при изменении данных или ваша? ;))))

softwarerНе знаю, что Вы называете полным объемом. В моем последнем проекте таким образом идет работа с метаинформацией проекта. Там есть понятие "ядро" - на текущий момент это системная часть клиента в двухзвенке, в перспективе также будет промежуточным звеном в трехзвенке; это ядро при старте грузит в себя метаинформацию, позволяет ее редактировать и по кнопке "сохранить" сбрасывает изменения в БД.
Разработка больших проектов требует схожих решений, у нас тоже использовались термины ядро и метаинформация ;) В нашем понимании ядро включало в себя
"Ядро документооборота" - работа с документами, статусами документов, гафом переходов между статусами. Которое в том числе содержало метаинформацию о полях, таблицах, процедурах.
"Ядро настроек беропасности" - соответственно роли пользователи и допуска к документам, состояниям и пр.
"Ядро учета" - базовый механизм внесения проводок, планы счетов, счета, периоды, шаблоны для получения остатков и оборотов.

А по поводу возможности реализовать алгоритм "Б", я не говорил что это невозможно, я и сам часто такой подход использовал, но полностью построить систему по такому принципу у меня мозгов и времени не хватило ;)

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

Код: plaintext
1.
2.
3.
4.
5.
6.
FETCH @day, @qty, @товар

WHILE <Есть перечень>
BEGIN
  SP_СгенериКаМнеПроводку(@day, <СчетОткуда>, <СчетКуда>, @qty, @товар)
  FETCH @day, @qty, @товар
END

Реальный код не слишком сложнее приведенного, но чтобы человек смог настроить/изменить проводку он должен знать TransactSQL ;-0.
Начальство решило с этим бороться, а давайте сказали они для документа сделаем настройку проводок, типа простой пользователь выберет счета, поля документа, из которых брать сумму, валюту, аналитику и пр. и все будет в шоколаде.

Сделали. Часто из суммы надо вычленять НДС, сделали, всякие курсовые разницы распределяются на разные счета в зависимости от знака, сделали проверку условий проводки. Балансовая стоимость списывается по партиям, сделали поддержку LIFO-FIFO. Есть проводки по нескольким суммам, написали возможность расчетов в полях. Есть зависимые проводки, развернули настойку в дерево.

В результате проблему решили, но затраты на настройку всего этого, и вероятность совершения ошибки превышают выгоды использования данного механизма.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33604920
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EstetsВ результате проблему решили, но затраты на настройку всего этого, и вероятность совершения ошибки превышают выгоды использования данного механизма. А пользователи этим механизмом пользуются ? Или все равно говорят программисту "добавьте мне, пожалуйста, проводку" ?
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33607694
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsТак это все таки заслуга Oracle без его блокировки ресурсов при изменении данных или ваша?
Хм. Ну во-первых формулировка крайне неудачна, во-вторых - заслуга Oracle.

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

EstetsА по поводу возможности реализовать алгоритм "Б", я не говорил что это невозможно, я и сам часто такой подход использовал, но полностью построить систему по такому принципу у меня мозгов и времени не хватило ;)
Мы с Вами упорно не понимаем друг друга. Я не понимаю, какие мозги и время нужны для "полного построения по такому принципу" в сравнении с "частичным построением". Механика закладывается один раз, в базовых классах, а дальше формы пользуются этой функциональностью на уровне настройки, на уровне "включил использование фичи".

EstetsМогу рассказать одну грустную историю. ........
Сделали. Часто из суммы надо вычленять НДС, сделали, всякие курсовые разницы распределяются на разные счета в зависимости ..... В результате проблему решили, но затраты на настройку всего этого, и вероятность совершения ошибки превышают выгоды использования данного механизма.
Знаю. Делали подобную вещь. Сделали так: во-первых, вычленили ключевые, часто используемые вещи и сделали их на уровне настроек. Во-вторых, предусмотрели в конфигурационных таблицах "гнезда", куда можно написать скрипт или имя хранимки - на случай редкой особенности, которую невыгодно таким вот образом универсально автоматизировать. Наконец, я написал программу для редактирования и верификации этой метаинформации. Программа достаточно сложного интерфейса, не для простого пользователя, но использовал ее собственно эксперт-настройщик. Отзывы были весьма положительные - то есть пользовались, просили доработок и вплоть до "приехал к клиенту и прямо по ходу беседы подстраиваешь то, что обсуждаете".
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33607737
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЗнаю. Делали подобную вещь. Сделали так: во-первых, вычленили ключевые, часто используемые вещи и сделали их на уровне настроек. Во-вторых, предусмотрели в конфигурационных таблицах "гнезда", куда можно написать скрипт или имя хранимки - на случай редкой особенности, которую невыгодно таким вот образом универсально автоматизировать. Наконец, я написал программу для редактирования и верификации этой метаинформации. Программа достаточно сложного интерфейса, не для простого пользователя, но использовал ее собственно эксперт-настройщик. Отзывы были весьма положительные - то есть пользовались, просили доработок и вплоть до "приехал к клиенту и прямо по ходу беседы подстраиваешь то, что обсуждаете".

Точно,у меня тоже так сделано:по таблице описаний проводок по-умолчанию формируются select для выборов счетов,пишутся в текстовое поле в этой таблице и сам механизм работает на основе этого текстового поля.Если надо его поправить тем,что не влезает в настроечные параметры,дописывается ручками.Минуты две назад как раз его правил (правда параметрами).SELECT формирует гордо называнный начальством "предкомпилятор условий счето"в.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33608591
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один1 EstetsВ результате проблему решили, но затраты на настройку всего этого, и вероятность совершения ошибки превышают выгоды использования данного механизма. А пользователи этим механизмом пользуются ? Или все равно говорят программисту "добавьте мне, пожалуйста, проводку" ?
Были продвинутые пользователи которые на SQL что то дописывали. А в данном случае не все программисты в конторе понимают как это работает, только избранные ;))
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33608652
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЗнаю. Делали подобную вещь. Сделали так: во-первых, вычленили ключевые, часто используемые вещи и сделали их на уровне настроек. Во-вторых, предусмотрели в конфигурационных таблицах "гнезда", куда можно написать скрипт или имя хранимки - на случай редкой особенности, которую невыгодно таким вот образом универсально автоматизировать. Наконец, я написал программу для редактирования и верификации этой метаинформации. Программа достаточно сложного интерфейса, не для простого пользователя, но использовал ее собственно эксперт-настройщик. Отзывы были весьма положительные - то есть пользовались, просили доработок и вплоть до "приехал к клиенту и прямо по ходу беседы подстраиваешь то, что обсуждаете".
Может быть это и выход, но у нас такой возможности не было. Логика была только на сервере и соответственно закладывалась в момент компиляции процедуры или работала по настройкам, которые выполнялись скопом и вмешаться в процесс выполнения было нельзя.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33608668
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsМожет быть это и выход, но у нас такой возможности не было. Логика была только на сервере и соответственно закладывалась в момент компиляции процедуры или работала по настройкам, которые выполнялись скопом и вмешаться в процесс выполнения было нельзя.
Хм. А в MSSQL-е отсутствует динамический SQL?
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33608762
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer EstetsМожет быть это и выход, но у нас такой возможности не было. Логика была только на сервере и соответственно закладывалась в момент компиляции процедуры или работала по настройкам, которые выполнялись скопом и вмешаться в процесс выполнения было нельзя.
Хм. А в MSSQL-е отсутствует динамический SQL?
Гы гы гы, есть то он есть да ктож ему даст. В смысле права для пользователей напрямую изменять таблицы, а иначе все это сильно не помогает.
...
Рейтинг: 0 / 0
Временная запись, добавляется с клиента. Как потом её корректно удалить?
    #33609012
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, у меня недостаточно знаний системы прав MSSQL, чтобы оценить Ваш ответ.

Что ж (пожимая плечами) быть по сему. Значит нельзя.
...
Рейтинг: 0 / 0
46 сообщений из 46, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Временная запись, добавляется с клиента. Как потом её корректно удалить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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