Здравствуйте, Sinclair, Вы писали:
V>>Какой кошмар. ))
V>>А если в док-те порядка 250-ти строк?
S>То будет SQL на 250 строк. Чего тут такого?
S>Вы что, думаете, что делать 250 вызовов .Execute() по одному insert() сильно быстрее, чем один вызов c 250 инсертами?
Я думаю, что достаточно подробно описал свою реализацию.
Вот как раз затем описал, чтобы мне не вменяли невесть что.
Но ты продолжаешь.
V>>На той технике (не мега-кластерной, а на простых пнях на 150 МГц тактовой) подобные подходы работали так себе.
S>Чушь какая. Примерно такую транзакцию отправляет на сервер любой ORM с change tracking.
Это уже после 2000-го года.
Никакая ORM в 96-97-х годах не жила.
V>>Да это обычные заморочки с популярными алгоритмами распределения памяти, они открыты и общедоступны, бери да пользуй.
S>Вот только незачем.
Аргумент.
V>>Не вижу здесь сложностей.
S>Пока что сложнее, чем приведённый мною текст.
Приведённый тобою текст не с потолка взялся.
По-взрослому если, то сначала надо зачитать некие "временные" строки док-та из одной таблицы базы, чтобы сформировать такой запрос на вставку этих строк в другую таблицу. Именно в этом месте у меня случилась эмоция "какой кошмар". ))
А если документ редактируется в памяти клиентской программы целиком (иногда на документ надо потратить час-другой времени), то я просто похлопаю молча глазами, бо ответить мне на это нечего. Это будет сценарий из какой-то другой реальности, от которой я всегда был далёк.
S>Проще держать документ в памяти, и скидывать в сервер по кнопке Save.
Понятное дело, что проще. ))
На Бейсике писать тоже проще ровно в том же смысле — потому что ничего сложного не напишешь.
S>Если в процессе отправки произошёл сбой (что крайне маловероятно даже на коаксиале)
Кхмм...
А что же ты так часто напираешь на "сетевые файловые базы" и их недостатки?
Противоречим сами себе, аднака.
S>то просто реконнектимся и повторно выполняем, пользуясь тем, что сервер сам умеет делать rollback в случае обрыва соединения с клиентом.
Это смотря в каком месте произошёл обрыв.
В твоей схеме не только происходят изменения данных, но и кое-что возвращается затем клиенту — тебе же надо вернуть клиенту ID-шки.
Повторно тебе их никто не вернёт при реконнекте, а транзакция будет уже завершённой.
И вот ты понятия не имеешь — то ли в базе уже живёт накладная с идентичным составом строк (а такое бывает регулярно при большом проходняке), то ли это глюк. В любом случае, без вмешательства человека не обойтись, т.е. подключаем человеческий фактор к разбору полётов. Без комментариев, как грится. ))
V>>В твоём же варианте в любом случае надо придумывать уникальный ID для нового док-та, потому что пользователь может редактировать несколько док-тов, возвращаться к ним и т.д.
S>Чушь какая. Я же показал код — где там "придумывание уникального ID для нового документа"?
Для клиентской стороны, если клиент скидывает документ в локальное хранилище по мере редактирования.
Если не скидывает, то мне опять нечего ответить.
Я просто с любопытством понаблюдаю за такой незамутнённостью.
V>>У меня было так — можно было выйти из проги, с другого компа зайти и продолжить редактировать док-ты.
V>>Такая функциональность получилась как побочный эффект от попыток борьбы с последствиями обрывов связи.
S>Вот именно, что получилась она как побочный эффект от пятиколёсного велосипеда.
От обрывов связи.
От реальности, данной нам в ощущениях, а не от низкопробной демагогии.
S>Со стороны пользователей такой задачи не ставилось.
Со стороны пользователей задача вообще слабо ставится, примерно так: "надо, чтобы работала".
Правильно ставить задачу учили как раз меня.
S>Просто вы, коллега, слабо владели T-SQL, отсюда и нагромождение бессмысленностей.
Т.е., всерьёз считаешь приведённый тобой сниппет чем-то сложным?
Хосподя, убейся уже апстену, как можно так глупить-то который уже раз...
После целой россыпи высокоуровневых и не очень языков, которыми ПРИШЛОСЬ владеть в 90-х (вот такие были времена) — T-SQL — это детсад.
Даже более мощный (по тем временам) PL/SQL — тоже.
Просто ты, коллега, слабо владеешь программированием вообще, не разбираешься в вопросе сложностей решений, потому что явно проблематика с предварительной оценкой и "проигрыванием" реальных сценариев. Не знал тогда и сейчас не знаешь достаточное кол-во языков программирования, сравнивать тебе их банально не с чем. Но при этом в каждом сообщении пытаешься навязать свои комплексы кому-то еще. Как тебе такой стиль общения? ))
Почему остальные тебя терпят, но у тебя с самообладанием того-сь? )) Вы же тут все как на ладони, хосподя, видны насквозь. Как только вас ловишь на непонимании предмета, на отсутствии опыта решения более-менее сложных технических задач (вы же тут по большей части тепличные растения, дальше Дельфи/дотнета никогда не заглядывавшие и в ужасе от одной мысли, что туда вообще заглядывать стоит), но при этом чуть что — так вы резко начинаете отправлять окружающих "поучиться". Причём, вам даже не обязательно тыкать в то, что вас поймали — вы часто и сами это видите. Тут же сердитесь (на себя?), но бросаетесь на оппоненета. А он тут причём?
S>Бывает, чо уж там. Я сам счастлив оттого, что написанный мною в 1995м код не сохранился — а то пришлось бы размазывать по лицу слёзы стыда.
Конечно, бывает. В программировании полно случайных людей ошивается.
Этот перекос сугубо из-за ЗП.
Зато науку двигать некому.
Грамотные в своей предметной области люди массово переквалифицировались в неграмотных программистов.
С высоты птьичьего полёта — это большая беда.