powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос о технологии "клиент-сервер" (+)
53 сообщений из 53, показаны все 3 страниц
Вопрос о технологии "клиент-сервер" (+)
    #33183661
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброе время суток.
Что-то ничего не нашел в сети по разработке приложений типа "клиент-сервер", если дадите ссылок, буду очень признателен.
А вопрос такой: есть некий документ, который реализуется в базе на нескольких таблицах (шапка документа, состав, дополнительные данные и т.д.)
Пользователь хочет в приложении либо открыть существующий документ для редактирования, либо создать новый. Как это реализовать в приложении:
1. Создавать похожую структуру таблиц, связей и т.д., но в памяти клиента-компьютера, т.е. структура документа будет реализована средставми языка программирования - массивы в памяти, структуры и т.д. Для того чтобы сохранить новый или отредактированный документ в базе - из памяти переносится в таблицы базы. Неудобство - чем сложнее документ, тем сложнее его реализовать в памяти: структуры, массивы, проверки и т.д. Но из плюсов - меньше нагрузка на сеть и сервер БД. Выше скорость работы, т.к. обрабатывать данные в памяти компьютера в любом случае быстрее, нежели в базе.
2. Открывать транзакцию в базе, пользователь будет работать с документом (редактировать содержимое, дополнять или удалять что-то). Все изменения фиксируются сразу же в базе. По завершению редактирования - или COMMIT, или ROLLBACK (смотря что выберет пользователь)
Наверное, правильнее все же второй вариант с точки зрения технологии. Но в реальности все так же?
Подскажите, пожалуйста, или дайте ссылок :)
Заранее большое спасибо
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183703
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вариант #1 - может быть, но больго геморойно.
Вариант #2 - никогда!
Вариант #3. Пользователь все делает на отвязаных рекордсетах, а после окончания редактирования быстренько все сохраняет
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183714
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня сейчас именно вариант1. Т.е. структура документа в базе реализуется в памяти локального компьютера. Вся работа с документом - в памяти, т.е. все связи, зависимости, целостность данных. Но действительно, уж больно геморройно. Вопрос возник из-за того, что понадобилось очередное "усложнение" документа в памяти компьютера.
А почему вариант2 - никогда? Не зная все тонкостей (не хватает опыта разработки БД), удобнее было бы. Есть куча вопросов о поддержании целостности в данном случае.
Что Вы подразумеваете на отвязанных рекордсетах? Т.е. получить данные, хранить в рекордсетах, а потом - UpdateBatch всех рекордсетов?
Если так, то идея неплоха!!! Надо обдумать. Или я неправильно понял?
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183719
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент на VC++. Сейчас все сделано не на рекордсетах, а, скажем так, на массивах, списках и т.д.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183744
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет никакой разницы. Даже лучше. Свобода.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183747
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовНет никакой разницы. Даже лучше. Свобода.
Между чем и чем Вы имеете в виду "нет разницы"? Между этими двумя вариантами?
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183752
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Под "отвязаным рекордсетом" обычно понимается рекордсет, изменения в котором никак не отражаются на данных из которых он получен.

Так как данные в базе хранятся в виде таблиц, то разумно хранить подготовленые к занесению в базу данные в двумерных массивах, однако зачем городить огород с объявлениями всяких массивов, механизмами их заполнения и пр., в то время как нужная структрура может быть получена автоматически.
Пишется что-то вроде select * from table where что-то=невозможное значение. Еще один плюс такого метода - если в таблице сделаны какие-то изменения, то не надо много переделывать код клиента.

Можно и UpdateBatch. Если это одна таблица. Если много, то лучше все собрать в одном месте и сделать в единой транзакции, открытой на сервере . Это ключевые слова. Именно поэтому не катит вариант №2. Никогда нельзя открывать транзакции на клиенте! Пользователь открыл транзакцию. Попил чаю. Пошел домой. Сломал ногу. Попал в больницу. А кто будет транзакцию закрывать и блокировки снимать? Админ? А он в это время в командировке в пивной.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183754
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, я примерно так и понял про рекордсеты. Буду получать нужные данные в рекордсет, менять уже в нем, но с отложенным обновлением. Если пользователь выберет - "сохранить документ", тогда UpdateBatch для рекордсета. Мне удобнее будет часть документа в приложении сделать на рекордсете, а часть все же на массивах и структурах. Ну да ладно, это уже все понятно.
Насчет транзакций, я и писал, что открывать в базе, а не на клиенте:
Kezya2. Открывать транзакцию в базе , пользователь будет работать с
Самое первое сообщение.
Cat2 - большое Вам спасибо, подсказали вариант, о котором я не знал !!!
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183791
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
UpdateBatch - плохое решение. Если надо занести данные в несколько таблиц, то этот

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

данных если одна из них не завершится. Этого можно избежать, открыв перед UpdateBatch

транзакцию на клиенте. Однако это опять грабли с ее возможным незавершением. Ну

упадет клиентская машина между обновлением 17 и 18 таблицы!
Лучше использовать хранимую процедуру в которой в единой транзакции выполняются все

обновления всех таблиц или собирать на клиенте запрос примерно такого вида:

begin transaction

update table1 ...
update table2 ...
...
commit transaction
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183804
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в рекордсете будут данные из нескольких таблиц, то для полного обновления одного рекордсета с использованием ХП - придется в цикле вызывать ХП для каждой записи в рекордсете. Что тоже не очень хорошо в плане производительности. А иначе - я что-то не понимаю с обновлением :(
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33183993
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaЕсли в рекордсете будут данные из нескольких таблиц, то для полного обновления одного рекордсета с использованием ХП - придется в цикле вызывать ХП для каждой записи в рекордсете. Что тоже не очень хорошо в плане производительности. А иначе - я что-то не понимаю с обновлением :(

Если ты обтетишь одну таблицу, то делаешь изменние и сразу коммит (или автокоммит в свойствах рекордсетов). Если обнавляешь сразу несколько таблиц, то это лучше делать в ХП. И старайся построить логику преложения так, чтобы ФИЗИЧЕСКИ не блокировать таблицу на долго.

Cat2
begin transaction

update table1 ...
update table2 ...
...
commit transaction
Это не самый лучший способ обнавления нескольких таблиц, так лучше на клиенте не делать.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184133
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2
2. Никогда
C> нельзя открывать транзакции на клиенте! Пользователь открыл транзакцию.
C> Попил чаю. Пошел домой. Сломал ногу. Попал в больницу. А кто будет
C> транзакцию закрывать и блокировки снимать? Админ? А он в это время в
C> командировке в пивной.
Вы какой сервер имели ввиду? Например, в ib/fb (версионник) транзакция может быть
открыта только на клиенте. Читающая транзакция блокировок не выставляет, а
пишущую открывают лишь для сохранения.
В общем то я понял, что вы хотели сказать... просто утверждение не распространяется
на все сервера.

--
Dik76

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184460
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bas Cat2
begin transaction

update table1 ...
update table2 ...
...
commit transaction
Это не самый лучший способ обнавления нескольких таблиц, так лучше на клиенте не делать.

Именно так и правильно делать, независимо идет ли прямой UPDATE или через ХП. Сохранение документа с перечнем это одна транзакция, либо сохранился весь либо откатилось все.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184732
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EstetsИменно так и правильно делать, независимо идет ли прямой UPDATE или через ХП. Сохранение документа с перечнем это одна транзакция, либо сохранился весь либо откатилось все.

Во-первых, я роллбека не увидел там, а, во-вторых, я имел ввиду, что на клиенте лучше не делать обнавление сразу в нескольких таблицах, это лучше делать в ХП. Я же не сказал, что это совсем не правильно, я сказал, что по возможности обнавление нескольких таблиц должно быть завернуто в ХП.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184780
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Афтару
Мазохизм - неизлечимая болезнь ИТ-отрасли.
Массивы, списки, транзакции, отвязанные рекодсеты...УЖАС ! Зачем ? Ради чего ? Что было основанием для такого решения ?
Этож надо так усложнять себе жизнь. Эту тему тут сто раз перетёрли.
С таким подходом Вам не поможет НИОДИН совет. Вы утонете в сложностях и глюках раньше, чем соберёте хотя бы альфа-версию.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184812
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам надо взять заточенный для работы с БД инструмент типа Powerbuilder/Delphi/C++Builder/FoxPro/Access и поскорее (я бы добавил, бегОм) упростить программку, пока не поздно. Не нужно тратить время и силы для создания механизмов, которые были оформлены стандартом "де-факто" еще 10 лет назад.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184860
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVАфтару
Мазохизм - неизлечимая болезнь ИТ-отрасли.
Массивы, списки, транзакции, отвязанные рекодсеты...УЖАС ! Зачем ? Ради чего ? Что было основанием для такого решения ?
Этож надо так усложнять себе жизнь. Эту тему тут сто раз перетёрли.
С таким подходом Вам не поможет НИОДИН совет. Вы утонете в сложностях и глюках раньше, чем соберёте хотя бы альфа-версию.
Спорить не буду, знаний маловато. Я же попросил вначале - если есть ссылки, ткните носом. Если Вы подскажите варианты (решение, понятное дело, не надо), буду лично Вам очень признателен :)
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33184872
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TemplarВам надо взять заточенный для работы с БД инструмент типа Powerbuilder/Delphi/C++Builder/FoxPro/Access и поскорее (я бы добавил, бегОм) упростить программку, пока не поздно. Не нужно тратить время и силы для создания механизмов, которые были оформлены стандартом "де-факто" еще 10 лет назад. Клиент у меня на VC++, база MS SQL Server, доступ через ADO. Какие инструменты именно Вы имеете в виду? :(
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185056
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kezya TemplarВам надо взять заточенный для работы с БД инструмент типа Powerbuilder/Delphi/C++Builder/FoxPro/Access и поскорее (я бы добавил, бегОм) упростить программку, пока не поздно. Не нужно тратить время и силы для создания механизмов, которые были оформлены стандартом "де-факто" еще 10 лет назад. Клиент у меня на VC++, база MS SQL Server, доступ через ADO. Какие инструменты именно Вы имеете в виду? :(

Так и спрашивайте в форуме по VC++ про доступ к БД как и что там, кто-что использует, да и почитать книжечку типа работа с БД из VC++, тут нет темы связанной с проектированием БД
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185150
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сервер будет строго MSSQL, то рекомендую:
Delphi (с компонентами SDAC, EhLib, FastReport).
Сможете сотворить чудеса за очень короткое время.

По теме:
Используйте свой пункт 2, но без транзакций. Вааще без транзакций. Если нужно отказаться от документа, то просто удаляйте его. И всего делов. Боитесь неизбежных пропусков в нумерации ? Если это очень критично, то помечайте документ как "для удаления" и его можно будет потом заюзать повторно.
ХРАНИТЕ ВСЁ СРАЗУ В БАЗЕ. Никаких отложенных коммитов.

Вы наверно интербазы на MSSQL перешли ? Не правда ли ?

Ща наверно услышу: "Вах...Ты знал !" (с)
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185538
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
basТак и спрашивайте в форуме по VC++ про доступ к БД как и что там, кто-что использует, да и почитать книжечку типа работа с БД из VC++, тут нет темы связанной с проектированием БД Тема была про технологию клиент-сервер, согласен, раздел не самый подходящий, но куда бы поместили такую тему Вы?
У меня уже есть и доступ и база. Мне не нужны советы про то, как это работает. Нужен был совет относительно реализации документа и всего лишь. Templar сказал, что есть специализированные инструменты, но пока ничего про них не написал. Но очень хотелось бы почитать. Т.к. написал он в этой теме, то и спросил про инструмент я здесь же.
LSV же предложил другой вариант - без транзакций, но это все же другой вариант, а не другой инструмент!!! Так что Ваш последний пост вобщем-то не понял к чему вообще относится.

LSVЕсли сервер будет строго MSSQL, то рекомендую:
Delphi (с компонентами SDAC, EhLib, FastReport).
Сможете сотворить чудеса за очень короткое время.

По теме:
Используйте свой пункт 2, но без транзакций. Вааще без транзакций. Если нужно отказаться от документа, то просто удаляйте его. И всего делов. Боитесь неизбежных пропусков в нумерации ? Если это очень критично, то помечайте документ как "для удаления" и его можно будет потом заюзать повторно.
ХРАНИТЕ ВСЁ СРАЗУ В БАЗЕ. Никаких отложенных коммитов.
Вы наверно интербазы на MSSQL перешли ? Не правда ли ?
Ща наверно услышу: "Вах...Ты знал !" (с)
У меня VC++, учить Delphi нет желания. Вот насчет отсутствия коммитов и отложенных обновлений стоит подумать. Только мазохизма в моих действиях особого не вижу. Два разных подхода, ну и что. В Вашем - тоже есть минусы, можем обсудить :)
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185700
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТолько мазохизма в моих действиях особого не вижу. Два разных подхода, ну и что.Вот это и плохо, что не видите. :)
Переусложнение чревато ужасными последствиями. Чем больше ненужных наворотов, тем меньше шансов проге стать нормальным продуктом. Это и есть самый главный минус, который может перечеркнуть ВСЁ.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185706
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaTemplar сказал, что есть специализированные инструменты, но пока ничего про них не написал. Но очень хотелось бы почитать. Т.к. написал он в этой теме, то и спросил про инструмент я здесь же.
...
У меня VC++, учить Delphi нет желания. Вот насчет отсутствия коммитов и отложенных обновлений стоит подумать.
Если есть желание изучать VC++ то конечно Delphi не более заточено под работу с БД чем VC++. А вот если есть желание написать программу работающую с БД, то я бы воспользовался советом Templar и искал языки изначально расчитанные на работу с БД. А спросить возможности можно на соседних форумах.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185726
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV авторТолько мазохизма в моих действиях особого не вижу. Два разных подхода, ну и что.Вот это и плохо, что не видите. :)
Переусложнение чревато ужасными последствиями. Чем больше ненужных наворотов, тем меньше шансов проге стать нормальным продуктом. Это и есть самый главный минус, который может перечеркнуть ВСЁ.
Насчет переусложнения - полностью согласен. Надо найти баланс между излишним переусложнением и обеспечением нормальной работоспособности
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185730
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaВот насчет отсутствия коммитов и отложенных обновлений стоит подумать.
Вот мое мнение, прямая работа с таблицами допустима только если создается телефонный справочник работающий в однопользовательском режиме. Любая более менее сложная задача включает в себя отношения мастер-детейл, кучу расчетных ХП, и в этом случае транзакционная целостность жизненно необходима.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185731
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets KezyaTemplar сказал, что есть специализированные инструменты, но пока ничего про них не написал. Но очень хотелось бы почитать. Т.к. написал он в этой теме, то и спросил про инструмент я здесь же.
...
У меня VC++, учить Delphi нет желания. Вот насчет отсутствия коммитов и отложенных обновлений стоит подумать.
Если есть желание изучать VC++ то конечно Delphi не более заточено под работу с БД чем VC++. А вот если есть желание написать программу работающую с БД, то я бы воспользовался советом Templar и искал языки изначально расчитанные на работу с БД. А спросить возможности можно на соседних форумах.
Могу, конечно, ошибаться. Но вот Delphi разве расчитан изначально на работу с БД? Именно сам язык, без дополнительных возможностей?
VC++ я уже давно изучаю, поэтому менять язык и среду разработки - уже как-то поздно :(
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185735
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets KezyaВот насчет отсутствия коммитов и отложенных обновлений стоит подумать.
Вот мое мнение, прямая работа с таблицами допустима только если создается телефонный справочник работающий в однопользовательском режиме. Любая более менее сложная задача включает в себя отношения мастер-детейл, кучу расчетных ХП, и в этом случае транзакционная целостность жизненно необходима.
это я имел в виду под нормальной работоспособностью.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185754
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kezya
Могу, конечно, ошибаться. Но вот Delphi разве расчитан изначально на работу с БД? Именно сам язык, без дополнительных возможностей?
Я тоже конечно могу ошибаться но ноги у Delphi растут из Паскаля который ничего не знал о БД ;). Практически все продукты разработки имеют компоненты или модули работы с БД, но продукты расчитанные на работу с БД практически невозможно без БД использовать, начиная с Clipper, FoxPro, Clarion, Paradox, PowerBuilder, Access. Сам я работаю на PowerBuilder и мне иногда сложно понять всех проблем возникающих на других средствах разработки.

На PB все это выглядит так :)
Положил на окно компоненту "Грид" основанную на SQL запросе
передал ей коннект к бд
По кнопочке с единственной коммандой Retrieve() получил набор строк, которые пользователь может изменять, удалять, добавлять новые.
По кнопочке с единственной коммандой Update() записал все изменения в базу. Приложение само разберется какие строки обновлять, какие удалять.

Хотите мастер-детейл положил еше один "Грид" настроил связь между главным и подчиненным списком через ключевое поле. И приложение опять само сохранит Мастер, получит из базы значение Identity поля подставит его в Детейл, сохранит Детейл. Закроет или откатит транзакции при необходимости.

Ну вообщем если не все так красиво, но по крайней мере близко к этому.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185786
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets
На PB все это выглядит так :)
Положил на окно компоненту "Грид" основанную на SQL запросе
передал ей коннект к бд
По кнопочке с единственной коммандой Retrieve() получил набор строк, которые пользователь может изменять, удалять, добавлять новые.
По кнопочке с единственной коммандой Update() записал все изменения в базу. Приложение само разберется какие строки обновлять, какие удалять.
Хотите мастер-детейл положил еше один "Грид" настроил связь между главным и подчиненным списком через ключевое поле. И приложение опять само сохранит Мастер, получит из базы значение Identity поля подставит его в Детейл, сохранит Детейл. Закроет или откатит транзакции при необходимости.

Ну вообщем если не все так красиво, но по крайней мере близко к этому.
Теперь понятно, что Вы имели в виду. В VC++ тоже есть гриды :) Начиная от стандартных (имею в виду MS гриды), и заканчивая сторонними инструментами.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185801
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaТеперь понятно, что Вы имели в виду. В VC++ тоже есть гриды :) Начиная от стандартных (имею в виду MS гриды), и заканчивая сторонними инструментами.
Только в PowerBuilder объект DataWindow который может быть гридом, редактором, отчетом позволяет настраивать все что относится к связи между визуальным отображением данных (поля, колонки, заголовки, маски) и тем как все это живет в БД, вплоть до какую хранимую процедуру надо вызвать при удалении строчки из "грида". Именно настраивать а не писать код. Я не спорю что все можно написать самому, но не стоит забывать что "время-деньги" ;)
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33185825
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets KezyaТеперь понятно, что Вы имели в виду. В VC++ тоже есть гриды :) Начиная от стандартных (имею в виду MS гриды), и заканчивая сторонними инструментами.
Только в PowerBuilder объект DataWindow который может быть гридом, редактором, отчетом позволяет настраивать все что относится к связи между визуальным отображением данных (поля, колонки, заголовки, маски) и тем как все это живет в БД, вплоть до какую хранимую процедуру надо вызвать при удалении строчки из "грида". Именно настраивать а не писать код. Я не спорю что все можно написать самому, но не стоит забывать что "время-деньги" ;)
А вот это действительно здорово и интересно. Попробую найти нечто подобное и для vc++
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33186239
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМогу, конечно, ошибаться. Но вот Delphi разве расчитан изначально на работу с БД? Именно сам язык, без дополнительных возможностей?

Дабы не искать языков, которые якобы рассчитаны на работу с БД, а потом устраивать их сравнение с теми, которые якобы не рассчитаны , позволю себе сказать вот чего: это детский сад!!!!

Нет языков, сильно или слабо рассчитанных на работу с БД. С БД нужно работать внутре БД, или средствами самой БД: хранимые процедуры или просто запросы, которые выполняются в БД и являются тиак сказать языком БД для работы с данными. Откуда бы их не вызывали - они одинаково работают. Это раз!
А вот Два: Системы можно разделить по удобству показа информации из БД (заметьте, не работы с БД!). Тут вообще говорить не об чем - кому как удобно. Визуальные системы конечно намного проще и удобнее. Влияет еще язык системы - кто любит с++ и ненавидит pascal, тому не стоит предлагать Дельфи :) И наоборот.
Ну и Три: где бы ни писать, писать нужно грамотно. :)

-- Tygra's --
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33186361
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Языки, ориентированные на работу с данными плохо справляются с остальными работами (графика, работа с оборудованием, создание DLL, COM, CGI)
При этом универсальные IDE уже давно научились хорошо работать с данными. Поэтому, ИМХО, специализированные срЕды будут вымирать. В пользу более универсальных.
Истерические выпады в сторону Паскаля - от элементарного дремучего невежества.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33186690
TimKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 4 вариант

Создаешь копию документа на сервере с пометкой редактируется (на тех же таблицах) и работаешь с ней.
Потом одной транзакцией отменяешь старый и проводишь новый.
Автоматически поддерживается версионность и история изменений.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33186847
kasperlet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мдя читаешь и волосы дабов встают... массивы и всякое х...
не знаю как там в vc++
но в делфях есть компонент memtable или memdata
так вот как у нас в проге реализовано детище документ
при открытии сущ-го ... 3 квери тянут данные
одна шапку -> которая ни в каких структурах не храниться а данные сразу присваиваються нужнам компонентам на форме
вторая позиционку --> которая сразу загоняеться в мемтаблу
ну и треться доп историю и то по необходимости если юзверь перешол на соот-ю закладку...
по поводу блокировок .. тот тут два варианта 1 не блокировать строчку в таблице шипки ... тоесть дать двум юзверям открыть один и тот же документ
и второй блокировать запись в таблице шапки не давая таким образом двум юзверям открыть один и тот же документ.
ну и обновления
если док новый то данне закидываються на сервер и хранимкой пишут что угодно куда угодно
если старый то просто апдейтяться
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33186909
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНет языков, сильно или слабо рассчитанных на работу с БД.
По поводу языков, абсолютно согласен. Я например говорил о продуктах. А продукты включают в себя например нативные и универсальные интерфейсы к БД, средства разработки структуры БД, ну и конечно средства отображения
"визуализации" данных.
Это конечно мое ИМХО, но недостаточное внимание компании Borland к этим компонентам, не позволило дельфям занять свою нишу на рынке разработки всяких информационных систем. Даже в России где позиция Borland была более сильной чем во всем мире, огромное количество клиентских приложений пишутся на С.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33186949
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVИстерические выпады в сторону Паскаля - от элементарного дремучего невежества.
Здесь выпадов в сторону Паскаля не было, не так ли?
Об удобстве той или иной среды разработки говорить бессмысленно, tygra абсолютно прав. Каждый сам решит, что ему больше подходит для решения той или иной задачи.
То, что я документ представлял в памяти - ну да, не самый удобный вариант, но дело в том, что структура документа не очень проста, и в виде связанных массивов в памяти мне это было очень удобно реализовать :)
Может быть, я не совсем понятно описал задачу: пользователь открывает документ у себя на компьютере, редактирует его и потом либо сохраняет либо отменяет редактирование. Как его представить на компьютере - это уже дело десятое (в памяти, на рекордсетах и т.д.) Вот варианты, которые предложили:
1. Все изменения в документе фиксируются "на лету". Вероятно, для этого придется открывать транзакцию на сервере для того, чтобы можно было сделать откат (если пользователь выберет "не сохранять документ"). Не нужны ни массивы, ни списки ни рекордсеты.
2. На компьтер сохраняется копия документа (как эту копию представить на локальном компьютере, уже можно придумать). Документ редактируется и потом уже сохраняется в базе. Тоже ХП и транзакции, но транзакции уже не для отката сохранения, а для поддержания целостности.
3. Делать копию документа на тех же таблицах. Т.к. история изменений и версионность не нужна, то отличие от первого варианта я не понимаю :(
Вот я что хотел узнать
Большое всем спасибо!
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33187356
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто конечно мое ИМХО, но недостаточное внимание компании Borland к этим компонентам, не позволило дельфям занять свою нишу на рынке разработки всяких информационных систем. Даже в России где позиция Borland была более сильной чем во всем мире, огромное количество клиентских приложений пишутся на С.
???
Куда еще то внимательнее? Вроде бы Дельфи предоставляет сделать все, что только душе угодно и мозгам под силу :)
И при чем тут информационные системы?
А про С не будем - я о том и писал, что большая часть сишников до сих пор считают, что паскаль ведет с ними войну, и потому не перейдут ни на что другое, особенно на Дельфи(потому что паскаль) или СиБилдер (потому что Борланд => это Дельфи и т.д.). Им конечно неудобно.... но пишут :)

-- Tygra's --
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33187465
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KezyaКлиент у меня на VC++, база MS SQL Server, доступ через ADO. Какие инструменты именно Вы имеете в виду? :(
Инструменты, позволяющие избежать неоправданной траты времени при использования VC для решения подобных задач. Навскидку, то что вы описали в заголовке решается одним из перечисленных инструментов примерно за 1 день. Если требования позволяют, переходите на .NET. Порядок трудозатрат выйдет такой же.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33188322
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra авторЭто конечно мое ИМХО, но недостаточное внимание компании Borland к этим компонентам, не позволило дельфям занять свою нишу на рынке разработки всяких информационных систем. Даже в России где позиция Borland была более сильной чем во всем мире, огромное количество клиентских приложений пишутся на С.
???
Куда еще то внимательнее? Вроде бы Дельфи предоставляет сделать все, что только душе угодно и мозгам под силу :)

Я имел ввиду, не то как это сейчас, а то как все это начиналось. Когда в конторе встал вопрос с переходом с Парадокса на более продвинутую систему смотрели Дельфи 2.0 и PowerBuilder 4.0 написали простенькую програмку по работе с SQL, выбрали PowerBuilder за скорость разработки.

А по поводу ошибок Борланд на мой взгляд это БДЕ и весьма посредственный, особенно в ранних, версиях генератор отчетов.
tygraИ при чем тут информационные системы?

Может быть я и ошибаюсь но 70% рынка прикладного ПО в количественном и 90% в стоймостном выражении это всевозможные информационные, бухгалтерские, учетные системы работающие с SQL серверами. Чего небыло 10 лет назад.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33188540
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нуууу, когда начиналось....
Мне и тогда Дельфи нравилась. Да и сейчас уж в России она занимает очень большую часть рынка.

По поводу информационных систем - сорри, проглядел слово " разработки информа...".
Но все-таки ниша огромна. В России. За рубежом - нет. Не из-за самой Дельфи, в силу менталитета зарубежа: там сто лет назад писали на с++ и vb, так и пишут, ведь чтобы перейти на что-то новое нужно мало того, что купить это новое за неслабые деньги, да еще программеров обучить, потому и корячатся :).
У нас такой проблемы нет - все стоит по 70 руб и программеров навалом.

-- Tygra's --
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33189219
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНо все-таки ниша огромна. В России. За рубежом - нет. Не из-за самой Дельфи, в силу менталитета зарубежа: там сто лет назад писали на с++ и vb, так и пишут, ведь чтобы перейти на что-то новое нужно мало того, что купить это новое за неслабые деньги, да еще программеров обучить, потому и корячатся :).

Скорее наш менталитет ;) Спасибо советскому образованию, если бы изучение в институтах основывалось не на паскале а на С++, то и ситуация могла быть координально противоположной. Плюс активная политика представительства Борланда по крайней мере в Москве в середине 90-х годов.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33190434
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы вы не спорили скажу что VC2005 по набору компонент работы с данными не уступает дельфи -даже мягко сказано.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33190882
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsikчтобы вы не спорили скажу что VC2005 по набору компонент работы с данными не уступает дельфи -даже мягко сказано.
Тут надо корректно сравнивать. Стандартный набор компонентов у Делфи, увы местами очень даже слаб: плохие репортеры, грид, доступ к данным. Однако существуют мощные и недорогие (и даже фришные) сторонние компоненты.

Так что мы сравниваем ? Стандартные наборы ? Тут Делфи вполне может проиграть.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33191092
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПри этом универсальные IDE уже давно научились хорошо работать с данными. Поэтому, ИМХО, специализированные срЕды будут вымирать. В пользу более универсальных.
LSVТут надо корректно сравнивать. Стандартный набор компонентов у Делфи, увы местами очень даже слаб: плохие репортеры, грид, доступ к данным.
Как говорится почему на форуме Access нет вопросов типа как подключать отчеты на Crystal Reports или Fast Reports (точнее мало и ответы на них обычно "Нафига?")? Именно по тому, что стандартных средств Access хватает для полного решения небольших задач.

По этому пока специализированные продукты держат свои позиции. И есть подозрение будет это продолжаться достаточно долго.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33192015
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно по тому, что стандартных средств Access хватает для полного решения небольших задачСогласен. Однако хочу сделать акцент на словосочетании "небольших задач" . Очень верно подмечено.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33237627
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Kezya. 1. Создавать похожую структуру таблиц, связей и т.д., но в памяти клиента-компьютера, ...
Данный вариант изящно реализуется средствами DataSet технологии .Net. Локальный фрагмент базы данных в памяти.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33242706
jocko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитал весь топик. Уважаемые мне кажестя все уже забыли про суть вопроса.
Вопрос касался, на мой взгляд, архитектуры. Умные люди говорят, что реализаций может быть три [Фаулер]:
1. Транзакционная модель
2. Объектная модель
3. "Модуль таблицы" (не помню как пишется по англ. на русский иногда переводят так)
В принципе перечислены были все, только понятия смешивались #3 это как раз та реализация которая заложена в Дельфях и VS.NET - а именно, возможность работы с объектами типа DataSet или Recordset, обычно ее сочетают с транзакционной моделью (#1) - поскольку логику вносят по большей части в транзакции или хран процедуры.
Изначально человек как раз спрашивал что лучше... такое впечатление что в данный момент он реализовал нечто похожее на объектную модель (#2). Тут вот все в резких выражениях высказывались против такой модели, когда логика живет в промежуточном слое, в виде объектов (списков и т.д.). Дескать проще все сложить в Datasetы и хран процедуры. Спорить не буду все зависит от сложности задачи и вариантов развития. Однако, одно замечание в защиту:
Язык программирования любой СУБД это процедурный язык. Проектируя приложение по схеме "Наделаю табличек - накликаю формочки с гридами - все заработает" вы сами отказываетесь от возможностией представляемых объектно ориентированными языками (будь то дельфи или VS) представьте себе - ведь класс "Документ" можно отнаследовать от другого, или представить его в виде композиции классов... возможности неисчерпаемы, но вы их похороните в хранимых процедурах с множеством операторов IF, CASE и тд, а тот кто будет ковырять ваше программство после вас, станет неврастеником, разбирая все эти ветки условных операторов...
А язык это вообще детали - главное программировать не "На языке" а "С использованием языка" (конечно я про объектно ориентированные :))
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33243111
jocko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще забыл Фаулер "Архитектура корпоративных систем" - наиболее часто цитируемая книжка, там все есть. Включая и паттерны сохранения в бд.
"Шлюзы" и "Мапперы" там всякие... :)
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33243274
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jocko3. "Модуль таблицы" (не помню как пишется по англ. на русский иногда переводят так)
Боюсь, я не понимаю этих слов. Можно объяснение или ссылку, что имеется в виду?

jockoЯзык программирования любой СУБД это процедурный язык. Проектируя приложение по схеме "Наделаю табличек - накликаю формочки с гридами - все заработает" вы сами отказываетесь от возможностией представляемых объектно ориентированными языками (будь то дельфи или VS) представьте себе - ведь класс "Документ" можно отнаследовать от другого, или представить его в виде композиции классов... возможности неисчерпаемы, но вы их похороните в хранимых процедурах с множеством операторов IF, CASE и тд, а тот кто будет ковырять ваше программство после вас, станет неврастеником, разбирая все эти ветки условных операторов...
Боюсь, это типичное высказывание человека, который читал рекламные высказывания в книжках и не особо думал о сути. "Объектно-ориентированных языков", если понимать слова в их прямом значении, не существует; существуют языки, поддерживающие объектно-ориентированный синтаксис. Мне в свое время очень повезло - когда я взахлеб рассказал одному старому программисту про ООП, он сказал мне: "Так посмотри код нашей системы - она так и построена". Я посмотрел, и увидел великолепную реализацию идей "ООП" на классическом Си. ООП здесь взято в кавычки, поскольку как ни странно, в нем практически нет собственных идей - это скорее удачно собранный набор принципов, придуманных до того.

Честно говоря, лень предметно разбирать выдвинутые Вами лозунги - поскольку Вы их скопировали. Просто возьмите хорошие исходники и посмотрите.

Впрочем, если Вы не хотите идти этим путем - программируйте хранимки на java и используйте все преимущества ООП-синтаксиса. Ни от чего отказываться совершенно не обязательно.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33243278
Kezya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да. Часть документа у меня все же получилось "представить" на гридах. Но только часть, остальное - приглось в памяти.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33245060
jocko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 softwarer
Ссылку я дал на Фаулера - хорошая книжка, но возможно, Вам не понравится...
Книжка для тех кто сначала проектирует на бумажке (можно конечно и в Rational XDE ;)) с помощью UML, а не начинает сразу давить на клаву.
А что касается лозунгов - то сори конечно, но это скорее крик души, поскольку я устал переписывать код написанный идиотами по принципу "накликаю формочку - программа готова".
Хотя, и сам был таким идиотом лет 5 назад, жаль что я не начал читать "рекламные высказывания в книжках" раньше.
А так я могу еще посоветовать книжку того же Фаулера "Рефакторинг" и Паттерны от GOF, но это уже к разделу "просто треп"

Человек спрашивал что почитать - я ответил.
...
Рейтинг: 0 / 0
Вопрос о технологии "клиент-сервер" (+)
    #33246049
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jockoСсылку я дал на Фаулера - хорошая книжка, но возможно, Вам не понравится...
Хороших книг, к сожалению, очень много :) И если целью является исключительно понять Ваше высказывание, читать ради этого книгу является несколько... несоразмерным.

jockoХотя, и сам был таким идиотом лет 5 назад, жаль что я не начал читать "рекламные высказывания в книжках" раньше.
"Крупный ученый - это тот, кто успешно преодолевает серьезные препятствия на пути к глобальному заблуждению". Или, если угодно грубее - один идиотизм нисколько не должен являться основанием другого, более продвинутого.

Если чуть утрировать, Вы говорите примерно следующее: "раньше я был идиотом, поскольку садился и не думая шлепал формочки по тем паттернам, которые придумал сам - теперь я сажусь и не думая шлепаю формочки по тем паттернам, которые увидел в книгах". Безусловно, это прогресс, весьма приятный для имеющих с Вами дело.... но как бы это сказать, непринципиальный. Для принципиального надо отказываться от "сажусь и не думая".
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос о технологии "клиент-сервер" (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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