Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Всем доброе время суток. Что-то ничего не нашел в сети по разработке приложений типа "клиент-сервер", если дадите ссылок, буду очень признателен. А вопрос такой: есть некий документ, который реализуется в базе на нескольких таблицах (шапка документа, состав, дополнительные данные и т.д.) Пользователь хочет в приложении либо открыть существующий документ для редактирования, либо создать новый. Как это реализовать в приложении: 1. Создавать похожую структуру таблиц, связей и т.д., но в памяти клиента-компьютера, т.е. структура документа будет реализована средставми языка программирования - массивы в памяти, структуры и т.д. Для того чтобы сохранить новый или отредактированный документ в базе - из памяти переносится в таблицы базы. Неудобство - чем сложнее документ, тем сложнее его реализовать в памяти: структуры, массивы, проверки и т.д. Но из плюсов - меньше нагрузка на сеть и сервер БД. Выше скорость работы, т.к. обрабатывать данные в памяти компьютера в любом случае быстрее, нежели в базе. 2. Открывать транзакцию в базе, пользователь будет работать с документом (редактировать содержимое, дополнять или удалять что-то). Все изменения фиксируются сразу же в базе. По завершению редактирования - или COMMIT, или ROLLBACK (смотря что выберет пользователь) Наверное, правильнее все же второй вариант с точки зрения технологии. Но в реальности все так же? Подскажите, пожалуйста, или дайте ссылок :) Заранее большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 19:46 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Вариант #1 - может быть, но больго геморойно. Вариант #2 - никогда! Вариант #3. Пользователь все делает на отвязаных рекордсетах, а после окончания редактирования быстренько все сохраняет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 20:46 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
У меня сейчас именно вариант1. Т.е. структура документа в базе реализуется в памяти локального компьютера. Вся работа с документом - в памяти, т.е. все связи, зависимости, целостность данных. Но действительно, уж больно геморройно. Вопрос возник из-за того, что понадобилось очередное "усложнение" документа в памяти компьютера. А почему вариант2 - никогда? Не зная все тонкостей (не хватает опыта разработки БД), удобнее было бы. Есть куча вопросов о поддержании целостности в данном случае. Что Вы подразумеваете на отвязанных рекордсетах? Т.е. получить данные, хранить в рекордсетах, а потом - UpdateBatch всех рекордсетов? Если так, то идея неплоха!!! Надо обдумать. Или я неправильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 21:06 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Клиент на VC++. Сейчас все сделано не на рекордсетах, а, скажем так, на массивах, списках и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 21:10 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Нет никакой разницы. Даже лучше. Свобода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 22:03 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовНет никакой разницы. Даже лучше. Свобода. Между чем и чем Вы имеете в виду "нет разницы"? Между этими двумя вариантами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 22:10 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Под "отвязаным рекордсетом" обычно понимается рекордсет, изменения в котором никак не отражаются на данных из которых он получен. Так как данные в базе хранятся в виде таблиц, то разумно хранить подготовленые к занесению в базу данные в двумерных массивах, однако зачем городить огород с объявлениями всяких массивов, механизмами их заполнения и пр., в то время как нужная структрура может быть получена автоматически. Пишется что-то вроде select * from table where что-то=невозможное значение. Еще один плюс такого метода - если в таблице сделаны какие-то изменения, то не надо много переделывать код клиента. Можно и UpdateBatch. Если это одна таблица. Если много, то лучше все собрать в одном месте и сделать в единой транзакции, открытой на сервере . Это ключевые слова. Именно поэтому не катит вариант №2. Никогда нельзя открывать транзакции на клиенте! Пользователь открыл транзакцию. Попил чаю. Пошел домой. Сломал ногу. Попал в больницу. А кто будет транзакцию закрывать и блокировки снимать? Админ? А он в это время в командировке в пивной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 22:22 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Понятно, я примерно так и понял про рекордсеты. Буду получать нужные данные в рекордсет, менять уже в нем, но с отложенным обновлением. Если пользователь выберет - "сохранить документ", тогда UpdateBatch для рекордсета. Мне удобнее будет часть документа в приложении сделать на рекордсете, а часть все же на массивах и структурах. Ну да ладно, это уже все понятно. Насчет транзакций, я и писал, что открывать в базе, а не на клиенте: Kezya2. Открывать транзакцию в базе , пользователь будет работать с Самое первое сообщение. Cat2 - большое Вам спасибо, подсказали вариант, о котором я не знал !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 22:28 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
UpdateBatch - плохое решение. Если надо занести данные в несколько таблиц, то этот метод будет окрывать транзакции для каждой таблицы, что чревато противоречивость данных если одна из них не завершится. Этого можно избежать, открыв перед UpdateBatch транзакцию на клиенте. Однако это опять грабли с ее возможным незавершением. Ну упадет клиентская машина между обновлением 17 и 18 таблицы! Лучше использовать хранимую процедуру в которой в единой транзакции выполняются все обновления всех таблиц или собирать на клиенте запрос примерно такого вида: begin transaction update table1 ... update table2 ... ... commit transaction ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 23:34 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Если в рекордсете будут данные из нескольких таблиц, то для полного обновления одного рекордсета с использованием ХП - придется в цикле вызывать ХП для каждой записи в рекордсете. Что тоже не очень хорошо в плане производительности. А иначе - я что-то не понимаю с обновлением :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 00:19 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
KezyaЕсли в рекордсете будут данные из нескольких таблиц, то для полного обновления одного рекордсета с использованием ХП - придется в цикле вызывать ХП для каждой записи в рекордсете. Что тоже не очень хорошо в плане производительности. А иначе - я что-то не понимаю с обновлением :( Если ты обтетишь одну таблицу, то делаешь изменние и сразу коммит (или автокоммит в свойствах рекордсетов). Если обнавляешь сразу несколько таблиц, то это лучше делать в ХП. И старайся построить логику преложения так, чтобы ФИЗИЧЕСКИ не блокировать таблицу на долго. Cat2 begin transaction update table1 ... update table2 ... ... commit transaction Это не самый лучший способ обнавления нескольких таблиц, так лучше на клиенте не делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 09:01 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Cat2 2. Никогда C> нельзя открывать транзакции на клиенте! Пользователь открыл транзакцию. C> Попил чаю. Пошел домой. Сломал ногу. Попал в больницу. А кто будет C> транзакцию закрывать и блокировки снимать? Админ? А он в это время в C> командировке в пивной. Вы какой сервер имели ввиду? Например, в ib/fb (версионник) транзакция может быть открыта только на клиенте. Читающая транзакция блокировок не выставляет, а пишущую открывают лишь для сохранения. В общем то я понял, что вы хотели сказать... просто утверждение не распространяется на все сервера. -- Dik76 Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 10:10 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
bas Cat2 begin transaction update table1 ... update table2 ... ... commit transaction Это не самый лучший способ обнавления нескольких таблиц, так лучше на клиенте не делать. Именно так и правильно делать, независимо идет ли прямой UPDATE или через ХП. Сохранение документа с перечнем это одна транзакция, либо сохранился весь либо откатилось все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 11:49 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
EstetsИменно так и правильно делать, независимо идет ли прямой UPDATE или через ХП. Сохранение документа с перечнем это одна транзакция, либо сохранился весь либо откатилось все. Во-первых, я роллбека не увидел там, а, во-вторых, я имел ввиду, что на клиенте лучше не делать обнавление сразу в нескольких таблицах, это лучше делать в ХП. Я же не сказал, что это совсем не правильно, я сказал, что по возможности обнавление нескольких таблиц должно быть завернуто в ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 12:58 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Афтару Мазохизм - неизлечимая болезнь ИТ-отрасли. Массивы, списки, транзакции, отвязанные рекодсеты...УЖАС ! Зачем ? Ради чего ? Что было основанием для такого решения ? Этож надо так усложнять себе жизнь. Эту тему тут сто раз перетёрли. С таким подходом Вам не поможет НИОДИН совет. Вы утонете в сложностях и глюках раньше, чем соберёте хотя бы альфа-версию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:10 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Вам надо взять заточенный для работы с БД инструмент типа Powerbuilder/Delphi/C++Builder/FoxPro/Access и поскорее (я бы добавил, бегОм) упростить программку, пока не поздно. Не нужно тратить время и силы для создания механизмов, которые были оформлены стандартом "де-факто" еще 10 лет назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:21 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
LSVАфтару Мазохизм - неизлечимая болезнь ИТ-отрасли. Массивы, списки, транзакции, отвязанные рекодсеты...УЖАС ! Зачем ? Ради чего ? Что было основанием для такого решения ? Этож надо так усложнять себе жизнь. Эту тему тут сто раз перетёрли. С таким подходом Вам не поможет НИОДИН совет. Вы утонете в сложностях и глюках раньше, чем соберёте хотя бы альфа-версию. Спорить не буду, знаний маловато. Я же попросил вначале - если есть ссылки, ткните носом. Если Вы подскажите варианты (решение, понятное дело, не надо), буду лично Вам очень признателен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:38 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
TemplarВам надо взять заточенный для работы с БД инструмент типа Powerbuilder/Delphi/C++Builder/FoxPro/Access и поскорее (я бы добавил, бегОм) упростить программку, пока не поздно. Не нужно тратить время и силы для создания механизмов, которые были оформлены стандартом "де-факто" еще 10 лет назад. Клиент у меня на VC++, база MS SQL Server, доступ через ADO. Какие инструменты именно Вы имеете в виду? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:41 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Kezya TemplarВам надо взять заточенный для работы с БД инструмент типа Powerbuilder/Delphi/C++Builder/FoxPro/Access и поскорее (я бы добавил, бегОм) упростить программку, пока не поздно. Не нужно тратить время и силы для создания механизмов, которые были оформлены стандартом "де-факто" еще 10 лет назад. Клиент у меня на VC++, база MS SQL Server, доступ через ADO. Какие инструменты именно Вы имеете в виду? :( Так и спрашивайте в форуме по VC++ про доступ к БД как и что там, кто-что использует, да и почитать книжечку типа работа с БД из VC++, тут нет темы связанной с проектированием БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 14:50 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Если сервер будет строго MSSQL, то рекомендую: Delphi (с компонентами SDAC, EhLib, FastReport). Сможете сотворить чудеса за очень короткое время. По теме: Используйте свой пункт 2, но без транзакций. Вааще без транзакций. Если нужно отказаться от документа, то просто удаляйте его. И всего делов. Боитесь неизбежных пропусков в нумерации ? Если это очень критично, то помечайте документ как "для удаления" и его можно будет потом заюзать повторно. ХРАНИТЕ ВСЁ СРАЗУ В БАЗЕ. Никаких отложенных коммитов. Вы наверно интербазы на MSSQL перешли ? Не правда ли ? Ща наверно услышу: "Вах...Ты знал !" (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 15:24 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
basТак и спрашивайте в форуме по VC++ про доступ к БД как и что там, кто-что использует, да и почитать книжечку типа работа с БД из VC++, тут нет темы связанной с проектированием БД Тема была про технологию клиент-сервер, согласен, раздел не самый подходящий, но куда бы поместили такую тему Вы? У меня уже есть и доступ и база. Мне не нужны советы про то, как это работает. Нужен был совет относительно реализации документа и всего лишь. Templar сказал, что есть специализированные инструменты, но пока ничего про них не написал. Но очень хотелось бы почитать. Т.к. написал он в этой теме, то и спросил про инструмент я здесь же. LSV же предложил другой вариант - без транзакций, но это все же другой вариант, а не другой инструмент!!! Так что Ваш последний пост вобщем-то не понял к чему вообще относится. LSVЕсли сервер будет строго MSSQL, то рекомендую: Delphi (с компонентами SDAC, EhLib, FastReport). Сможете сотворить чудеса за очень короткое время. По теме: Используйте свой пункт 2, но без транзакций. Вааще без транзакций. Если нужно отказаться от документа, то просто удаляйте его. И всего делов. Боитесь неизбежных пропусков в нумерации ? Если это очень критично, то помечайте документ как "для удаления" и его можно будет потом заюзать повторно. ХРАНИТЕ ВСЁ СРАЗУ В БАЗЕ. Никаких отложенных коммитов. Вы наверно интербазы на MSSQL перешли ? Не правда ли ? Ща наверно услышу: "Вах...Ты знал !" (с) У меня VC++, учить Delphi нет желания. Вот насчет отсутствия коммитов и отложенных обновлений стоит подумать. Только мазохизма в моих действиях особого не вижу. Два разных подхода, ну и что. В Вашем - тоже есть минусы, можем обсудить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 17:16 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
авторТолько мазохизма в моих действиях особого не вижу. Два разных подхода, ну и что.Вот это и плохо, что не видите. :) Переусложнение чревато ужасными последствиями. Чем больше ненужных наворотов, тем меньше шансов проге стать нормальным продуктом. Это и есть самый главный минус, который может перечеркнуть ВСЁ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:34 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
KezyaTemplar сказал, что есть специализированные инструменты, но пока ничего про них не написал. Но очень хотелось бы почитать. Т.к. написал он в этой теме, то и спросил про инструмент я здесь же. ... У меня VC++, учить Delphi нет желания. Вот насчет отсутствия коммитов и отложенных обновлений стоит подумать. Если есть желание изучать VC++ то конечно Delphi не более заточено под работу с БД чем VC++. А вот если есть желание написать программу работающую с БД, то я бы воспользовался советом Templar и искал языки изначально расчитанные на работу с БД. А спросить возможности можно на соседних форумах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:37 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
LSV авторТолько мазохизма в моих действиях особого не вижу. Два разных подхода, ну и что.Вот это и плохо, что не видите. :) Переусложнение чревато ужасными последствиями. Чем больше ненужных наворотов, тем меньше шансов проге стать нормальным продуктом. Это и есть самый главный минус, который может перечеркнуть ВСЁ. Насчет переусложнения - полностью согласен. Надо найти баланс между излишним переусложнением и обеспечением нормальной работоспособности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:48 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
KezyaВот насчет отсутствия коммитов и отложенных обновлений стоит подумать. Вот мое мнение, прямая работа с таблицами допустима только если создается телефонный справочник работающий в однопользовательском режиме. Любая более менее сложная задача включает в себя отношения мастер-детейл, кучу расчетных ХП, и в этом случае транзакционная целостность жизненно необходима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:50 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Estets KezyaTemplar сказал, что есть специализированные инструменты, но пока ничего про них не написал. Но очень хотелось бы почитать. Т.к. написал он в этой теме, то и спросил про инструмент я здесь же. ... У меня VC++, учить Delphi нет желания. Вот насчет отсутствия коммитов и отложенных обновлений стоит подумать. Если есть желание изучать VC++ то конечно Delphi не более заточено под работу с БД чем VC++. А вот если есть желание написать программу работающую с БД, то я бы воспользовался советом Templar и искал языки изначально расчитанные на работу с БД. А спросить возможности можно на соседних форумах. Могу, конечно, ошибаться. Но вот Delphi разве расчитан изначально на работу с БД? Именно сам язык, без дополнительных возможностей? VC++ я уже давно изучаю, поэтому менять язык и среду разработки - уже как-то поздно :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:50 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Estets KezyaВот насчет отсутствия коммитов и отложенных обновлений стоит подумать. Вот мое мнение, прямая работа с таблицами допустима только если создается телефонный справочник работающий в однопользовательском режиме. Любая более менее сложная задача включает в себя отношения мастер-детейл, кучу расчетных ХП, и в этом случае транзакционная целостность жизненно необходима. это я имел в виду под нормальной работоспособностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 18:54 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Kezya Могу, конечно, ошибаться. Но вот Delphi разве расчитан изначально на работу с БД? Именно сам язык, без дополнительных возможностей? Я тоже конечно могу ошибаться но ноги у Delphi растут из Паскаля который ничего не знал о БД ;). Практически все продукты разработки имеют компоненты или модули работы с БД, но продукты расчитанные на работу с БД практически невозможно без БД использовать, начиная с Clipper, FoxPro, Clarion, Paradox, PowerBuilder, Access. Сам я работаю на PowerBuilder и мне иногда сложно понять всех проблем возникающих на других средствах разработки. На PB все это выглядит так :) Положил на окно компоненту "Грид" основанную на SQL запросе передал ей коннект к бд По кнопочке с единственной коммандой Retrieve() получил набор строк, которые пользователь может изменять, удалять, добавлять новые. По кнопочке с единственной коммандой Update() записал все изменения в базу. Приложение само разберется какие строки обновлять, какие удалять. Хотите мастер-детейл положил еше один "Грид" настроил связь между главным и подчиненным списком через ключевое поле. И приложение опять само сохранит Мастер, получит из базы значение Identity поля подставит его в Детейл, сохранит Детейл. Закроет или откатит транзакции при необходимости. Ну вообщем если не все так красиво, но по крайней мере близко к этому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 19:13 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Estets На PB все это выглядит так :) Положил на окно компоненту "Грид" основанную на SQL запросе передал ей коннект к бд По кнопочке с единственной коммандой Retrieve() получил набор строк, которые пользователь может изменять, удалять, добавлять новые. По кнопочке с единственной коммандой Update() записал все изменения в базу. Приложение само разберется какие строки обновлять, какие удалять. Хотите мастер-детейл положил еше один "Грид" настроил связь между главным и подчиненным списком через ключевое поле. И приложение опять само сохранит Мастер, получит из базы значение Identity поля подставит его в Детейл, сохранит Детейл. Закроет или откатит транзакции при необходимости. Ну вообщем если не все так красиво, но по крайней мере близко к этому. Теперь понятно, что Вы имели в виду. В VC++ тоже есть гриды :) Начиная от стандартных (имею в виду MS гриды), и заканчивая сторонними инструментами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 19:56 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
KezyaТеперь понятно, что Вы имели в виду. В VC++ тоже есть гриды :) Начиная от стандартных (имею в виду MS гриды), и заканчивая сторонними инструментами. Только в PowerBuilder объект DataWindow который может быть гридом, редактором, отчетом позволяет настраивать все что относится к связи между визуальным отображением данных (поля, колонки, заголовки, маски) и тем как все это живет в БД, вплоть до какую хранимую процедуру надо вызвать при удалении строчки из "грида". Именно настраивать а не писать код. Я не спорю что все можно написать самому, но не стоит забывать что "время-деньги" ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 20:08 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Estets KezyaТеперь понятно, что Вы имели в виду. В VC++ тоже есть гриды :) Начиная от стандартных (имею в виду MS гриды), и заканчивая сторонними инструментами. Только в PowerBuilder объект DataWindow который может быть гридом, редактором, отчетом позволяет настраивать все что относится к связи между визуальным отображением данных (поля, колонки, заголовки, маски) и тем как все это живет в БД, вплоть до какую хранимую процедуру надо вызвать при удалении строчки из "грида". Именно настраивать а не писать код. Я не спорю что все можно написать самому, но не стоит забывать что "время-деньги" ;) А вот это действительно здорово и интересно. Попробую найти нечто подобное и для vc++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 21:02 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
авторМогу, конечно, ошибаться. Но вот Delphi разве расчитан изначально на работу с БД? Именно сам язык, без дополнительных возможностей? Дабы не искать языков, которые якобы рассчитаны на работу с БД, а потом устраивать их сравнение с теми, которые якобы не рассчитаны , позволю себе сказать вот чего: это детский сад!!!! Нет языков, сильно или слабо рассчитанных на работу с БД. С БД нужно работать внутре БД, или средствами самой БД: хранимые процедуры или просто запросы, которые выполняются в БД и являются тиак сказать языком БД для работы с данными. Откуда бы их не вызывали - они одинаково работают. Это раз! А вот Два: Системы можно разделить по удобству показа информации из БД (заметьте, не работы с БД!). Тут вообще говорить не об чем - кому как удобно. Визуальные системы конечно намного проще и удобнее. Влияет еще язык системы - кто любит с++ и ненавидит pascal, тому не стоит предлагать Дельфи :) И наоборот. Ну и Три: где бы ни писать, писать нужно грамотно. :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 10:19 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Языки, ориентированные на работу с данными плохо справляются с остальными работами (графика, работа с оборудованием, создание DLL, COM, CGI) При этом универсальные IDE уже давно научились хорошо работать с данными. Поэтому, ИМХО, специализированные срЕды будут вымирать. В пользу более универсальных. Истерические выпады в сторону Паскаля - от элементарного дремучего невежества. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 10:55 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Есть 4 вариант Создаешь копию документа на сервере с пометкой редактируется (на тех же таблицах) и работаешь с ней. Потом одной транзакцией отменяешь старый и проводишь новый. Автоматически поддерживается версионность и история изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 12:38 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
мдя читаешь и волосы дабов встают... массивы и всякое х... не знаю как там в vc++ но в делфях есть компонент memtable или memdata так вот как у нас в проге реализовано детище документ при открытии сущ-го ... 3 квери тянут данные одна шапку -> которая ни в каких структурах не храниться а данные сразу присваиваються нужнам компонентам на форме вторая позиционку --> которая сразу загоняеться в мемтаблу ну и треться доп историю и то по необходимости если юзверь перешол на соот-ю закладку... по поводу блокировок .. тот тут два варианта 1 не блокировать строчку в таблице шипки ... тоесть дать двум юзверям открыть один и тот же документ и второй блокировать запись в таблице шапки не давая таким образом двум юзверям открыть один и тот же документ. ну и обновления если док новый то данне закидываються на сервер и хранимкой пишут что угодно куда угодно если старый то просто апдейтяться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 13:31 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
tygraНет языков, сильно или слабо рассчитанных на работу с БД. По поводу языков, абсолютно согласен. Я например говорил о продуктах. А продукты включают в себя например нативные и универсальные интерфейсы к БД, средства разработки структуры БД, ну и конечно средства отображения "визуализации" данных. Это конечно мое ИМХО, но недостаточное внимание компании Borland к этим компонентам, не позволило дельфям занять свою нишу на рынке разработки всяких информационных систем. Даже в России где позиция Borland была более сильной чем во всем мире, огромное количество клиентских приложений пишутся на С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 13:54 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
LSVИстерические выпады в сторону Паскаля - от элементарного дремучего невежества. Здесь выпадов в сторону Паскаля не было, не так ли? Об удобстве той или иной среды разработки говорить бессмысленно, tygra абсолютно прав. Каждый сам решит, что ему больше подходит для решения той или иной задачи. То, что я документ представлял в памяти - ну да, не самый удобный вариант, но дело в том, что структура документа не очень проста, и в виде связанных массивов в памяти мне это было очень удобно реализовать :) Может быть, я не совсем понятно описал задачу: пользователь открывает документ у себя на компьютере, редактирует его и потом либо сохраняет либо отменяет редактирование. Как его представить на компьютере - это уже дело десятое (в памяти, на рекордсетах и т.д.) Вот варианты, которые предложили: 1. Все изменения в документе фиксируются "на лету". Вероятно, для этого придется открывать транзакцию на сервере для того, чтобы можно было сделать откат (если пользователь выберет "не сохранять документ"). Не нужны ни массивы, ни списки ни рекордсеты. 2. На компьтер сохраняется копия документа (как эту копию представить на локальном компьютере, уже можно придумать). Документ редактируется и потом уже сохраняется в базе. Тоже ХП и транзакции, но транзакции уже не для отката сохранения, а для поддержания целостности. 3. Делать копию документа на тех же таблицах. Т.к. история изменений и версионность не нужна, то отличие от первого варианта я не понимаю :( Вот я что хотел узнать Большое всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 14:07 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
авторЭто конечно мое ИМХО, но недостаточное внимание компании Borland к этим компонентам, не позволило дельфям занять свою нишу на рынке разработки всяких информационных систем. Даже в России где позиция Borland была более сильной чем во всем мире, огромное количество клиентских приложений пишутся на С. ??? Куда еще то внимательнее? Вроде бы Дельфи предоставляет сделать все, что только душе угодно и мозгам под силу :) И при чем тут информационные системы? А про С не будем - я о том и писал, что большая часть сишников до сих пор считают, что паскаль ведет с ними войну, и потому не перейдут ни на что другое, особенно на Дельфи(потому что паскаль) или СиБилдер (потому что Борланд => это Дельфи и т.д.). Им конечно неудобно.... но пишут :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 16:01 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
KezyaКлиент у меня на VC++, база MS SQL Server, доступ через ADO. Какие инструменты именно Вы имеете в виду? :( Инструменты, позволяющие избежать неоправданной траты времени при использования VC для решения подобных задач. Навскидку, то что вы описали в заголовке решается одним из перечисленных инструментов примерно за 1 день. Если требования позволяют, переходите на .NET. Порядок трудозатрат выйдет такой же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2005, 16:33 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
tygra авторЭто конечно мое ИМХО, но недостаточное внимание компании Borland к этим компонентам, не позволило дельфям занять свою нишу на рынке разработки всяких информационных систем. Даже в России где позиция Borland была более сильной чем во всем мире, огромное количество клиентских приложений пишутся на С. ??? Куда еще то внимательнее? Вроде бы Дельфи предоставляет сделать все, что только душе угодно и мозгам под силу :) Я имел ввиду, не то как это сейчас, а то как все это начиналось. Когда в конторе встал вопрос с переходом с Парадокса на более продвинутую систему смотрели Дельфи 2.0 и PowerBuilder 4.0 написали простенькую програмку по работе с SQL, выбрали PowerBuilder за скорость разработки. А по поводу ошибок Борланд на мой взгляд это БДЕ и весьма посредственный, особенно в ранних, версиях генератор отчетов. tygraИ при чем тут информационные системы? Может быть я и ошибаюсь но 70% рынка прикладного ПО в количественном и 90% в стоймостном выражении это всевозможные информационные, бухгалтерские, учетные системы работающие с SQL серверами. Чего небыло 10 лет назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 09:34 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Нуууу, когда начиналось.... Мне и тогда Дельфи нравилась. Да и сейчас уж в России она занимает очень большую часть рынка. По поводу информационных систем - сорри, проглядел слово " разработки информа...". Но все-таки ниша огромна. В России. За рубежом - нет. Не из-за самой Дельфи, в силу менталитета зарубежа: там сто лет назад писали на с++ и vb, так и пишут, ведь чтобы перейти на что-то новое нужно мало того, что купить это новое за неслабые деньги, да еще программеров обучить, потому и корячатся :). У нас такой проблемы нет - все стоит по 70 руб и программеров навалом. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 10:48 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
tygraНо все-таки ниша огромна. В России. За рубежом - нет. Не из-за самой Дельфи, в силу менталитета зарубежа: там сто лет назад писали на с++ и vb, так и пишут, ведь чтобы перейти на что-то новое нужно мало того, что купить это новое за неслабые деньги, да еще программеров обучить, потому и корячатся :). Скорее наш менталитет ;) Спасибо советскому образованию, если бы изучение в институтах основывалось не на паскале а на С++, то и ситуация могла быть координально противоположной. Плюс активная политика представительства Борланда по крайней мере в Москве в середине 90-х годов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 13:19 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
чтобы вы не спорили скажу что VC2005 по набору компонент работы с данными не уступает дельфи -даже мягко сказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 21:13 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Lepsikчтобы вы не спорили скажу что VC2005 по набору компонент работы с данными не уступает дельфи -даже мягко сказано. Тут надо корректно сравнивать. Стандартный набор компонентов у Делфи, увы местами очень даже слаб: плохие репортеры, грид, доступ к данным. Однако существуют мощные и недорогие (и даже фришные) сторонние компоненты. Так что мы сравниваем ? Стандартные наборы ? Тут Делфи вполне может проиграть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 10:27 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
LSVПри этом универсальные IDE уже давно научились хорошо работать с данными. Поэтому, ИМХО, специализированные срЕды будут вымирать. В пользу более универсальных. LSVТут надо корректно сравнивать. Стандартный набор компонентов у Делфи, увы местами очень даже слаб: плохие репортеры, грид, доступ к данным. Как говорится почему на форуме Access нет вопросов типа как подключать отчеты на Crystal Reports или Fast Reports (точнее мало и ответы на них обычно "Нафига?")? Именно по тому, что стандартных средств Access хватает для полного решения небольших задач. По этому пока специализированные продукты держат свои позиции. И есть подозрение будет это продолжаться достаточно долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 11:15 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Именно по тому, что стандартных средств Access хватает для полного решения небольших задачСогласен. Однако хочу сделать акцент на словосочетании "небольших задач" . Очень верно подмечено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2005, 15:38 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
> Kezya. 1. Создавать похожую структуру таблиц, связей и т.д., но в памяти клиента-компьютера, ... Данный вариант изящно реализуется средствами DataSet технологии .Net. Локальный фрагмент базы данных в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2005, 10:18 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Прочитал весь топик. Уважаемые мне кажестя все уже забыли про суть вопроса. Вопрос касался, на мой взгляд, архитектуры. Умные люди говорят, что реализаций может быть три [Фаулер]: 1. Транзакционная модель 2. Объектная модель 3. "Модуль таблицы" (не помню как пишется по англ. на русский иногда переводят так) В принципе перечислены были все, только понятия смешивались #3 это как раз та реализация которая заложена в Дельфях и VS.NET - а именно, возможность работы с объектами типа DataSet или Recordset, обычно ее сочетают с транзакционной моделью (#1) - поскольку логику вносят по большей части в транзакции или хран процедуры. Изначально человек как раз спрашивал что лучше... такое впечатление что в данный момент он реализовал нечто похожее на объектную модель (#2). Тут вот все в резких выражениях высказывались против такой модели, когда логика живет в промежуточном слое, в виде объектов (списков и т.д.). Дескать проще все сложить в Datasetы и хран процедуры. Спорить не буду все зависит от сложности задачи и вариантов развития. Однако, одно замечание в защиту: Язык программирования любой СУБД это процедурный язык. Проектируя приложение по схеме "Наделаю табличек - накликаю формочки с гридами - все заработает" вы сами отказываетесь от возможностией представляемых объектно ориентированными языками (будь то дельфи или VS) представьте себе - ведь класс "Документ" можно отнаследовать от другого, или представить его в виде композиции классов... возможности неисчерпаемы, но вы их похороните в хранимых процедурах с множеством операторов IF, CASE и тд, а тот кто будет ковырять ваше программство после вас, станет неврастеником, разбирая все эти ветки условных операторов... А язык это вообще детали - главное программировать не "На языке" а "С использованием языка" (конечно я про объектно ориентированные :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 10:33 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
А еще забыл Фаулер "Архитектура корпоративных систем" - наиболее часто цитируемая книжка, там все есть. Включая и паттерны сохранения в бд. "Шлюзы" и "Мапперы" там всякие... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 12:23 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
jocko3. "Модуль таблицы" (не помню как пишется по англ. на русский иногда переводят так) Боюсь, я не понимаю этих слов. Можно объяснение или ссылку, что имеется в виду? jockoЯзык программирования любой СУБД это процедурный язык. Проектируя приложение по схеме "Наделаю табличек - накликаю формочки с гридами - все заработает" вы сами отказываетесь от возможностией представляемых объектно ориентированными языками (будь то дельфи или VS) представьте себе - ведь класс "Документ" можно отнаследовать от другого, или представить его в виде композиции классов... возможности неисчерпаемы, но вы их похороните в хранимых процедурах с множеством операторов IF, CASE и тд, а тот кто будет ковырять ваше программство после вас, станет неврастеником, разбирая все эти ветки условных операторов... Боюсь, это типичное высказывание человека, который читал рекламные высказывания в книжках и не особо думал о сути. "Объектно-ориентированных языков", если понимать слова в их прямом значении, не существует; существуют языки, поддерживающие объектно-ориентированный синтаксис. Мне в свое время очень повезло - когда я взахлеб рассказал одному старому программисту про ООП, он сказал мне: "Так посмотри код нашей системы - она так и построена". Я посмотрел, и увидел великолепную реализацию идей "ООП" на классическом Си. ООП здесь взято в кавычки, поскольку как ни странно, в нем практически нет собственных идей - это скорее удачно собранный набор принципов, придуманных до того. Честно говоря, лень предметно разбирать выдвинутые Вами лозунги - поскольку Вы их скопировали. Просто возьмите хорошие исходники и посмотрите. Впрочем, если Вы не хотите идти этим путем - программируйте хранимки на java и используйте все преимущества ООП-синтаксиса. Ни от чего отказываться совершенно не обязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 13:01 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
Ну да. Часть документа у меня все же получилось "представить" на гридах. Но только часть, остальное - приглось в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 13:02 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
2 softwarer Ссылку я дал на Фаулера - хорошая книжка, но возможно, Вам не понравится... Книжка для тех кто сначала проектирует на бумажке (можно конечно и в Rational XDE ;)) с помощью UML, а не начинает сразу давить на клаву. А что касается лозунгов - то сори конечно, но это скорее крик души, поскольку я устал переписывать код написанный идиотами по принципу "накликаю формочку - программа готова". Хотя, и сам был таким идиотом лет 5 назад, жаль что я не начал читать "рекламные высказывания в книжках" раньше. А так я могу еще посоветовать книжку того же Фаулера "Рефакторинг" и Паттерны от GOF, но это уже к разделу "просто треп" Человек спрашивал что почитать - я ответил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 10:05 |
|
||
|
Вопрос о технологии "клиент-сервер" (+)
|
|||
|---|---|---|---|
|
#18+
jockoСсылку я дал на Фаулера - хорошая книжка, но возможно, Вам не понравится... Хороших книг, к сожалению, очень много :) И если целью является исключительно понять Ваше высказывание, читать ради этого книгу является несколько... несоразмерным. jockoХотя, и сам был таким идиотом лет 5 назад, жаль что я не начал читать "рекламные высказывания в книжках" раньше. "Крупный ученый - это тот, кто успешно преодолевает серьезные препятствия на пути к глобальному заблуждению". Или, если угодно грубее - один идиотизм нисколько не должен являться основанием другого, более продвинутого. Если чуть утрировать, Вы говорите примерно следующее: "раньше я был идиотом, поскольку садился и не думая шлепал формочки по тем паттернам, которые придумал сам - теперь я сажусь и не думая шлепаю формочки по тем паттернам, которые увидел в книгах". Безусловно, это прогресс, весьма приятный для имеющих с Вами дело.... но как бы это сказать, непринципиальный. Для принципиального надо отказываться от "сажусь и не думая". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 14:09 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1545699]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
117ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 420ms |

| 0 / 0 |
