Re: как программно сделать приватную датасесию | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
А пока все живы, обсуждают старую шнягу DS, от команды Fox-MS. Спорное удобство, как виртуальная машина, на твоей машине. Не компе представить можно, а на реально авто - сложно понять. Я понял механику DS как: что мол, когда фокус переходит на форму с приватной DS, то SET-ы и открытые таблички видны только открытые в это DS. Отношения польза/вред не прочуствовал, и не использую )
Доб. Аа, извините. Это топик уже о том, где размещать код программы общения с БД: целиком в фоксе (клиенте), или в T-SQL при БД, или промежуточные варианты ) Старый добрый спор остроконечников и тупоконечников Доб. Если что, я за В.Максимова - минимум кода в БД, остальное - в клиенте. Исправлено 2 раз(а). Последнее : of63, 17.03.17 20:05 |
Re: как программно сделать приватную датасесию | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Это ты понятно объяснил (если это правда). Дак если это так, то такого рода DS можно было использовать и в FPD. Там были команды COPY TO VIEW и SET VIEW TO, что напоминает приватные датасессии.
Тоже никогда не использовал. |
Re: как программно сделать приватную датасесию | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
В ФПД было что-то под названием ...REGION что-ли. Я не понял, и тоже не использовал
|
Re: как программно сделать приватную датасесию | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Достопочтенный of63 так шутит?
|
Re: как программно сделать приватную датасесию | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Андрей, о чем я шучу?. Был оператор в при форме в ФПД, типа что-то REGION, Вот ты заинтересовался, взял бы и нашел наличие/отсутствие этого оператора или предиката (как там у вас). И меня бы подтвердил, или осмеял
|
Re: как программно сделать приватную датасесию | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Мне тоже по барабану как у них устроено - это их головная боль!
Потому что, СУБД - это "двое в одном флаконе", БЛ и данные. В моём случае БД может и существует независимо от "посторонних" компонентов. В твоём же случае, у тебя два отдельных флакона, которые друг без друга существовать не могут. Вот если бы средний слой просто транслировал вызовы к СУБД, а не управлял бы ей, то я бы первый спросил: "Уважаемый научи" (с) к/ф Не бойся я с тобой Разница в этом.
В 10-ый раз повторяю, я не против твоего подхода, ты сознательно идешь и берёшь на себя риск возможного нарушения БЛ, ... если ты так делаешь, значит готов потом расхлёбывать получившуюся кашу, ... добавить больше нечего. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 17.03.17 21:45 |
Re: как программно сделать приватную датасесию | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Да я не про фпд, я про это
З.Ы. в спор мэтров не вмешиваюсь - но тож интерестно - на чем порешат в итоге. У меня у самого все гораздо проще и тривиальнее - клиент-сервер, двухзвенка, никакого промежуточного слоя, все в локальной сети, логика размазана частью по коду, частью в БД в ХП - если честно делал как удобнее методом проб и ошибок, без глубокого погружения в теорию. Исправлено 3 раз(а). Последнее : AndyNigmatec, 17.03.17 21:55 |
Re: как программно сделать приватную датасесию | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
1. Если удобно, то делай, тут возражений нет. 2. БЛ и сложные процедуры, должны решаться не клиентом БД, а самой БД или ты считаешь, что сейчас самый раз реинкарнации фокса только на другом уровне (шарпе), мы уже так все писали, какие "монстры" получались ты сам знаешь. 3. ХП, триггер меняется так, что юзер об этом даже не заметит, более того, он не заметит, что данные стали приходить из другой таблицы или даже с другого сервера, для "клиента" вызов останется одним и тем же. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: как программно сделать приватную датасесию | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Андрей, у них теория думаешь? Она есть, и у них и у тебя, несколько "теорий". При случае упоминается некие гении-теоретики "Дейкстра" (ИК еще упомоминает на букву Д товарища, я щас не помню, и не читал), или еще кто. Но ваять прогу/БД именно тебе )
|
Re: как программно сделать приватную датасесию | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
У меня "програмерство" это как бонус к основным обязанностям - поэтому использую сугубо практический подход.
Именно поэтому и решил что это ты пошутил насчет того что не использовал DS - ну не поверю что у тебя все в одной датасессии крутилось/крутится ... опять же - я не про фпд - я уж даж не помню как там что - настолько давно это было Исправлено 1 раз(а). Последнее : AndyNigmatec, 17.03.17 22:07 |
Re: как программно сделать приватную датасесию | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Решения ты здесь не найдёшь, этот Со своей стороны могу сказать, что именно размазанность кода между клиентом и сервером меня привела к тому, что бизнес-логика должна быть сосредоточена в одном месте, в тот момент у меня был "толстый" клиет, поэтому БЛ перенёс в СУБД (оппоненты скажут надо перенести в средний слой, что на мой взгляд неправильно, но не суть), главное ты сразу почувствуешь разницу, тебе не надо будет помнить о многих вещях, на твой front-end будут передаваться подготовленные данные, а также на back-end будут "уходить" клиентские данные в интерфейс посредника (либо ХП, либо среднего слоя), если данные корректные, то ты получишь "одобрение" посредника, если не корректные, то получишь ошибку. Таким образом, конечный клиент будет освобожден от несвойственной ему работы. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 17.03.17 22:11 |
Re: как программно сделать приватную датасесию | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Андрей, не слушай их (они сами друг друга, и себя уже не понимают), делай как посчитаешь нужным. А их споры... ну так... послушай... Доживешь до их/наших лет - поймешь )))
|
Re: как программно сделать приватную датасесию | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Не, именно почитывая (и кстати именно здесь) подобные споры и наловчился когда-то на фоксе ... И, также когда-то начитавшись подобного (я в том момент как раз спрыгнул с dbf на нормальную БД) и была у меня попытка все в БД запхать ... но не хватило тяму/знаний/упорства - в итоге - имеем что имеем )))
|
Re: как программно сделать приватную датасесию | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Ты это, ... ты кого это ... назвал ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 18.03.17 07:17 |
Re: как программно сделать приватную датасесию | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Дело в том что когда говорят про клиент-сервер и 3-звенку то обычно имеют в виду именно количество отдельных программных компонент, а когда говорят про "слои" БД/БЛ/GUI - то имеют в виду скорее "логическое" разделение кода. В самом "тупом" случае даже на фоксе с dbf-ами (когда по сути только один exe имеется - никаких "серверов", "сервисов" и прочих сложных штук) вполне можно "разделить слои". Банально не писать "расчёты" в коде кнопок, использовать те же триггера (хотя они и сильно ограничены, но кое что умеют делать сносно) Вот ХП в dbc не имеют существенных отличий от "просто процедур" - только что хранятся в dbc и потому их сложнее изменять в продуктивной системе. Работают они по сути так же как и "простой код приложения". Т.е. если с идеей "разделения слоёв" вообще нет никаких споров - это правильно и так и надо делать в сколь-нибудь большой программе, то все споры вокруг того куда нужно каждый слой запихивать если работает как минимум 2 разных компонента - внешняя "большая" СУБД и "пользовательский exe" или, к примеру, "веб-прога". А если ещё и появляется выделенный "сервер приложений" (про что и говорят 3-звенка) то становится ещё интереснее. Вот Павел настаивает что слой данных И слой БЛ обязаны жить в СУБД. Ты, как я понял, считаешь что слой БЛ можно размазать между СУБД и "клиентом" (что-то в ХП, что-то в коде клиента). Я тоже так считаю Главное чтобы в коде клиента эти самые элементы БЛ не оказались в Click кнопок Чтобы они были чётко отделены от кода чисто "поддерживающего пользовательской ввод". ------------------ WBR, Igor |
Re: как программно сделать приватную датасесию | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Игорь, тут я не то чтобы считаю - а "так получилось" ))) Поэтому то и интерестно смотреть/читать как у других "получается" и что это им дает.
По поводу подхода Паши - тоже когда то хотел так сделать именно желая чтоб все в одном месте было и БД стала бы "вещью в себе" - но тогда не осилил (все-таки процедурный язык в firebird-е который использую "победнее"), а сейчас пожалуй уже бы и не стал так делать. Исправлено 1 раз(а). Последнее : AndyNigmatec, 18.03.17 12:58 |
Re: как программно сделать приватную датасесию | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
А у меня изначально как у Паши было.
И до сих пор многое осталось. Основное. Первое что выкинул оттуда, то с чего началась эта дискуссия. Элементарные Insrt-update Повторяю. Мне трудно разбираться с огромным количеством ХП. В то время как тригеры... я как то для БЛ использую исключительно редко, и исключительно... метко))) Т.е. там, где все очевидно-вечно. С ними то легче. Я то про то, что понадобился ASP.NET, а он тогда трудно с ХП дружил, и пришлось БЛ писать на шарпе (не так и много там было) Но... сразу свой взгляд пересмотрел. На размещение БЛ в БД. Даже начал попытку создать на шарпе средний слой... но... именно с фоксом, затруднения начались. Плюнул. Оставил как есть. По факту, все равно, каждый делает так, как ему удобнее. И мне вот не понять, почему Паше, легче искать, в 509 ХП что то. А ведь в нормальном языке, это может быть всего 20 классов. Со своими преимуществами наследования и пр. И уж конечно, на фоксе средний слой, вряд ли кто будет делать (сегодня). Я так понимаю, передовая ИТ вообще, сервисной архитектуре стремится... Паша же, рассказывая о выгодах. Могу описать минусы его подхода. У меня несколько очень похожих клиентов. И БД практически одинакова. А вот БЛ у них увы, отличается. И Довольно сильно. И был бы он среднем слое, мне было бы куда легче( ------------------ Исправлено 1 раз(а). Последнее : Аспид, 18.03.17 15:10 |
Re: как программно сделать приватную датасесию | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Такое впечатление, что эта БЛ где-то на диске а:\ расположена, только без охраны.
|
Re: как программно сделать приватную датасесию | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
[attachment 27263 slesar.gif] Слюсарь делает так, как ему удобнее |
Re: как программно сделать приватную датасесию | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Как говорил т. Сталин: "Гинденбургов у меня для вас нет", те надо уметь работать с теми кто есть.
Неправильно понял, у меня такое же представление о целостности как и у тебя (целостность внутри транзакции можеб быть любой). Разница только в том, то в моём понимании состояние данных должно всегда соотвествовать БЛ, в твоём понимании состояние данных может находится в рассогласованном состоянии с БЛ, те (запись в Алкоголе может отсутствовать, тем не менее бука "А" в продукте может находиться).
Дык, в том-то и дело, что ты НИКОГДА не сможешь вытащить ветвь дерева если оно зациклено не на родительский узел, а на один из дочерних узлов одной ветви (или как ты сам предложил вырожденный случай когда запись циклица сама на себя), пример:
те в это кольцо можно попасть если строить ветвь для ID = 2 или 3, для ID = 1 всегда будет возвращаться одна заптись, таким образом часть данных "потеряется", хотя физически будет существовать, те будет нарушена БЛ!
1. Все данные записаны исключительно через интерфейс проги, никакой самодеятельности под sa. 2. Ну их "защищенный режим" работет тоже только тогда, когда юзер для отбора ветви попадал внуть цикла. 3. Ну вот, ты сам приводишь пример, (шапка и строки) рассогласованности данных с БЛ, с твоей точки зрения это норма для меня нет.
И это правильно, ты должен предусмотреть все возможные ситуации, а как ты это сделаешь - дело десятое.
Не понял, юзер/прогер просто получит ошибку/сообщение, что либо ХП не найдена, либо тип параметра не может быть авотматом конвертирован либо напрочь не совпадает, ... не понял в чем проблема, ... более того прога не падает, а ждёт корректного параметра., и вообще такие вещи обычно отлавливаются на уровне тестирования, ... хотя могу сказать, что не все комбинации параметров проверяются иногда юзер говорит: "я тут сортировку задал, а прога ругается, мол нет такого поля", ошибка такого плана исправляется за пару минут в ХП.
Раньше я привел код триггеров для твоего примера с Продуктом и Алкоголем, ничего там сверх естественного нет, обычный код, правда требующий аккуратности в написании и понимании как работает триггер, то что не все так делают, ну это их право. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
© 2000-2024 Fox Club  |