Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
Ну по любому, права есть, только для разных юзеров РАЗНЫЕ Пример был, показать контекст выполнения и олицетворение, залогиненный юзер может выполнять только свои ХП, чужие он может выполнять либо "внутри" своих ХП (на самом деле там немного сложнее, права проверяются по цепочкам владения, но для примера сойдёт), либо от имени другого юзера, получив НАПРЯМУЮ (не через посредника) чужие права, что как правильно было замечено является моветоном. Поэтому, прицепить CAD для каждой таблицы, в "общем" случае, нельзя!
Золотые слова, Юрий Венедиктович (c) Наша Russia
Тут вопрос "религиозный", я о своей прилюдно сказал, теперь твоя очередь сказать, что исповедуншь
Спишем на то, что с примером кода ты не разбирался, поэтому сделал такие выводы. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
И что? У тебя в приложении на одной форме показываются две таблицы (при том полученные через одно соединение), но под РАЗНЫМИ правами? Я не хочу разбираться с кодом для СУБД с которой не работаю и ближайшее время не собираюсь. Но сам принцип я не улавливаю. Никогда не сталкивался с ситуациями что "права то есть, но их как бы и нет". Это какой-то кривой дизайн системы. И это логично. И выполнять их он может сколько угодно раз и в какой угодно последовательности - при том результат НЕ изменится. На "чужие" - да, ему нужны права. В оракле тоже есть свои нюансы - скажем не всё то что разрешено "через роль" может быть доступно при выполнении ХП без дополнительных телодвижений. НО строить систему так что это безобразие должен разруливать клиент, при том какими-то малоочевидными способами, и без возможности тупо вызывать ХП в произвольном порядке и получать всегда предсказуемый результат - такое мне бы в голову точно не пришло. Ну и да, на основании этого надо зарезать напрочь половину технологий доступа к данным - т.к. я уверен что ни дотнетовские датасетные "адаптеры", ни какой распространённый ОРМ (что в дотнете, что в яве) такой фигни тоже не поддерживает Ваяем систему настолько "в себе", что пользовать её можно лишь одним очень жёстко регламентированным способом - это путь в никуда. Поэтому нафиг такую систему! И в фоксе, и в других языках. Изобретать велосипеды с квадратными колёсами вместо штатных, уже написанных и нормально работающих механизмов - лишь потому что авторы придумали на бэкэнде какую-то невнятную хрень Почему ж неправильную? Она просто не является экстремистской - пишите как удобнее, и как посчитаете полезным для каждого конкретного случая. Надо погрузить 100500 записей одной пачкой (быстро, атомарно, с серверной пре/пост-обработкой) - напишите ХП (и сам так делал - когда это на самом деле ПОЛЕЗНО), надо сохранить мастер-детали построчно - сохраняйте построчно - и то и другое вполне хорошо. А запрещать что-либо по совершенно надуманным соображениям (попутно выкидывая единственную более-менее адекватную фоксовую технологию работы с данными - ну или навешивая на неё какие-то мега-монструозные коды - лишь бы ублажить Ктулху) - это плохо. Вот скажи честно, твоя хитрая БД может быть использована из явы при помощи hibernate, или из дотнета при помощи EntityFramework? Без влезания внутрь и использования низкоуровневых ридеров/коммандов... Я так понимаю что нет (иначе и с фоксом не возникало бы "вопросов") - а раз так - то ещё раз. фтопку ------------------ WBR, Igor |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
че уже никак по-простому? |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
является моветоном
+ я не понимаю. намудрил сам и с группой хрень с полномочиями, ну ладно, ну зачем тогда про то, что определенный механизм и логика работы с данными неверны, нелогичны и т.д. ..? |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Просто движок Павла обсуждается уже не в первый раз. И на самом деле, движок реализует вырожденную трёхзвенку, если я правильно понимаю. Это когда MsSQL выступает в качестве сервера приложения. Но примера я действительно не понял, хотя и полностью разобрал. |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Т.е. он всё это время хочет сказать что разработал определённый АПИ (не штатный для реляционной СУБД), и этот АПИ не позволяет "по очереди" получить или изменить, скажем, 2 источника данных - только "за один вызов". Но тогда с какого надо было бы использовать ЛЮБУЮ систему ориентированную на работу с СУБД (и основанную прежде всего на SQL запросах, и лишь затем на вызове ХП для некоторых целей) для работы с НЕ-СУБД, которым и стал его MSSQL+система ХП? Т.е. его претензия из разряда "CAD не может работать с facebook API, т.к. там нет таблиц/курсоров" - ну это и понятно, и вообще не вызывает вопросов... Кроме одного - при чём тут работа с СУБД, запрашиваемая автором темы ------------------ WBR, Igor |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
та ну нах немцы нервно курят в сторонке у нас в команде был деятель, который по шаблоном преподставляя в мнемоники знач-я и куски кода генерил ХП. потом это никто не мог сопровождать, да и сервер раком стоял динамич-ки исполняя все это г. |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Игорь. Это всё-таки исключительно моё понимание, как оно сложилось. Я бы не торопился сразу обсуждать. Похоже, с точностью до наоборот. Какие-то сложности с обновлением 2-х источников данных могли стать одной из предпосылок к тому чтоб увести полностью логику на хранимки. |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
теперь бы мне хотелось узнать количество прод.копий этой разработки. скорость процесса разработки/масштабирования. трудоемкость/трудозатраты на поддержку. |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Однако оно сразу многое проясняет. Если это так, то всё становится совершенно понятно - все претензии к CAD, и прочее. Естественно ODBC/OLEDB и прочие подобные узкоспециализированные механизмы никак не приспособлены для работы с произвольными АПИ, "сервисами" и т.п. Конечно же в парадигме "работы с сервисом" я бы тоже не стал разделять "сохранение объекта" на 10-20 вызовов отдельных методов, так же и запрос данных сложного объекта... ------------------ WBR, Igor |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
Да. 1. Пример первый - справочник, есть юзер заполняющий/модифицирующий справочник, есть юзер только выбирающий из справочника, эти два юзера находятся в разных ролях/группах, у первого есть право на выполнение ХП с select/insert/update/delete у второго только на ХП с select. Аналогично с документами (+ "тараканы" документов, типа кто может видеть суммы, цены кто нет итд). 2. Пример два, склад, кладовщик на планшете с Анроидом, на PHP имеет форму со списком договоров/контрактов итд, при приёме товаров отмечает, что для договора №1 приехало 5шт товара1, товара2; для контракта №2 пришел такой-то товар, или из производства "нарисовалось" 3 шт товар3 и 4 шт товара4 по счету №3 и №4. При сохранении, ХП формирует письма манагерам (не клиент, а сервер формирует и отсылает mail) о том, что товар на складе, обрати внимание, что эту же процедуру можно выхвать и с компа. Так же, формируется всего ОДНО письмо для каждого манагера, а не 100500 писем по всем записям, которые отметил кладовщик. В MSSQL для такой операции существует системная БД msdb, в этой БД "мои" логины/юзеры никто и звать их никак и не один вменяемый dba не даст доступа к сист. базам данных, но право выполнения системных ХП в системной БД дают сертификаты. Это пример, когда не имея "прямого" соединения с БД, не имея в ней вАще никаких прав, а используя олицетворение посредством сертификата выполняется ХП "чужой" БД. 3. Ну из той же оперы, что и п.2, это доступ к "соседней" БД.
Хорошо, будем считать, что я плохо объяснил
Что-то, я сомневаюсь, что перечисленные ЯП не умеют работать с ХП серверов. ;)
То есть использование ХП сервера - это "квадратные колёса", а вот прямой доступ к таблицам - это штатный механизм. (только спрашивается: нафига сервер-team заморачивались реализуя парадигму ХП)
Дык, я не против, ... мы вроде уже договорились - каждый сам себе злобный ...
Неправильно понимаешь, от клиента работа БД не зависит, поскольку использует штатный механизм доступа данных через ХП, за исключением тех ЯП, которые не умеют работать с ХП. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 23.03.18 20:37 |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
Тёзка, привет. 1. Скорее - это толстый клиент, поскольку сервер "среднего слоя" и СУБД это одно и то же. К такой архитектуре привели разнородные "клиенты", более того "клиенты" вообще из других систем. 2. Тут forum.foxclub.ru Игорю рассказал пример, откуда "растут" ноги такой архитектуры. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 2 раз(а). Последнее : PaulWist, 23.03.18 20:34 |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Система где вся работа заключается в "вызове ХП" IMHO не должна называться СУБД Есть технологии для работы с СУБД - они основаны на SQL, и лишь изредка, в "особых случаях" на вызове ХП. Есть технологии для работы с сервисами (в широком смысле - не обязательно web или rest) - они основаны на "контрактах" aka интерфейсах aka АПИ. Смешивать их не следует. Твоя система, вероятно, в чистом виде второй вариант (полагаю что штатный DML там запрещён в принципе - никаких SELECT/INSERT/UPDATE/DELETE клиентам отсылать не позволено). То что она реализована на платформе MSSQL - ну что ж, всякое бывает, не вижу смысла особо критиковать не совсем подходящий выбор среды реализации (естественно что на языке широкого профиля гораздо удобнее, проще и лучше реализуются "сервисы" нежели на T-SQL). Единственное что НАДО делать - так это чётко проговаривать - фоксовый CAD не подходит для работы с сервисами (да, там есть в качестве источника XML - но я полагаю что толку от этого будет около 0). Равно и ODBC/ADODB - в общем случае НЕподходящий механизм для работы с сервисами - слишком много ограничений и неудобств, проистекающих из совершенно другой "направленности" этих инструментов. При этом автор темы не собирается делать такого рода систему - это абсолютно точно Хотя я и намекал ему что нынче SOA в тренде - но если он и пойдёт по этому пути, я всячески советую ему НЕ делать сервисы силами СУБД - даже если там можно "встраивать" C#/java код. Гораздо лучше писать сервисы на обычных языках и платформах, а с СУБД работать именно как с СУБД (уже из слоя сервисов) - т.е. обычным SQL-ем, скорее всего автогенерируемым тем или иным ORM-ом. Заодно (это тоже тренд - CodeFirst подход) и сама структура БД будет генерироваться на основании "классов предметной области" - программных сущностей описанных в среднем слое. Естественно. Для работы с реляционной СУБД ХП это вспомогательный механизм. Куча СУБД вообще либо не имеют возможности делать ХП, либо там процедурный язык весьма ограничен - зато все они без проблем умеют SQL - который есть основной метод доступа к реляционным данным. Трёхзвенная архитектура предполагает работу среднего слоя с СУБД именно посредством SQL-я, и весьма малое количество "логики" в СУБД. Двухзвенная архитектура (чаще всего применяемая в фоксе, если он не с dbf-ами работает) предполагает объединение среднего слоя "бизнес-логики" именно с клиентским слоем, а никак не с СУБД. Для двухзвенной архитектуры где слой бизнес-логики объединён с СУБД (а "клиент" по сути классический "тонкий", как в трёхзвенке) ну я даже названия для такой схемы не знаю - и уж точно она не является распространённым подходом к разработке. Я, конечно, не очень много всяких разных систем повидал, но конкретно такой я лично никогда не видел Надеюсь что и не увижу - я не люблю "странных" архитектурных решений и выбора языков реализации ------------------ WBR, Igor |
Re: Современные методы работы с данными - OBDC, ADO(OLE DB) и библиотеки классов - Обсуждение | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
2 PaulWist
Сколько прод.копий? Какие трудозатраты на поддержку и масштабирование? Сколько разработчиков? Разработчики меняются? |
© 2000-2024 Fox Club  |