Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
С точки зрения простоты - конечно проще на самой старичке писать нужный select/insert/update/delete, НО если честно я не до конца смог разобраться как ограничивать права пользователей на разные таблицы (на уровне столбцов и строк). Более менее понятно, когда таблиц мало и связок между таблицами мало, а вот когда их много, то возникает куча вопросов. С точки зрении использования процедур - я создаю одну процедуру на N действий с основной таблицей и/или связанной таблицей. В начале тела процедуры проверяю права пользователя на select/insert/update/delete. Я не утверждаю, что это самая правильная схема, но пока та, что мне понятна. Если кто-то может на простом и понятном примере объяснить как организовать разграничение доступа на таблицы на уровне столбцов и строк, то буду очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2012, 10:37 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Где-то в степиskyANA, ну если они связаны, почему он применяет "несколько select-ов." а не мои любимые джойны? на форму нужно грузить данные для акции из трех страниц и редактировать данные в трех таблица таблицы для примера aktsia id int IDENTITY(1,1) NOT NULL name nvarchar(50) NOT NULL data_starta date datat_zavershenia date aktsia_magazini id int IDENTITY(1,1) NOT NULL aktsia_id INT magazin_id INT aktsia_yslovia id int IDENTITY(1,1) OT NULL aktsia_id INT kolichestvo_prodaj_za_mesiats INT bonus INT Я планирую пройти курсы по MVC, но скорее всего это будет не раньше начала следующего года, а пока использую накопленные знания и опыт. Не всегда бывает время на нормальное самообучение. Поэтому и вынужден обращаться за советами к специалистам. Что касается stored procedures и orm - есть куча споров на этот счет и каждая из сторон видит свои плюсы в выбранном подходе. http://www.developmentalmadness.com/archive/2009/06/23/data-access-stored-procedures-vs-orm-ad.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2012, 10:55 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Testor1С точки зрения простоты - конечно проще на самой старичке писать нужный select/insert/update/delete, НО если честно я не до конца смог разобраться как ограничивать права пользователей на разные таблицы (на уровне столбцов и строк). Более менее понятно, когда таблиц мало и связок между таблицами мало, а вот когда их много, то возникает куча вопросов. С точки зрении использования процедур - я создаю одну процедуру на N действий с основной таблицей и/или связанной таблицей. В начале тела процедуры проверяю права пользователя на select/insert/update/delete. Я не утверждаю, что это самая правильная схема, но пока та, что мне понятна. Если кто-то может на простом и понятном примере объяснить как организовать разграничение доступа на таблицы на уровне столбцов и строк, то буду очень благодарен.Хм... А покажите кусок кода хранимой процедуры, что у Вас проверяет права пользователя на select/insert/update/delete, на уровне столбцов и строк. P.S.: ссылку про NextResult посмотрели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2012, 10:18 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
skyANATestor1С точки зрения простоты - конечно проще на самой старичке писать нужный select/insert/update/delete, НО если честно я не до конца смог разобраться как ограничивать права пользователей на разные таблицы (на уровне столбцов и строк). Более менее понятно, когда таблиц мало и связок между таблицами мало, а вот когда их много, то возникает куча вопросов. С точки зрении использования процедур - я создаю одну процедуру на N действий с основной таблицей и/или связанной таблицей. В начале тела процедуры проверяю права пользователя на select/insert/update/delete. Я не утверждаю, что это самая правильная схема, но пока та, что мне понятна. Если кто-то может на простом и понятном примере объяснить как организовать разграничение доступа на таблицы на уровне столбцов и строк, то буду очень благодарен.Хм... А покажите кусок кода хранимой процедуры, что у Вас проверяет права пользователя на select/insert/update/delete, на уровне столбцов и строк. P.S.: ссылку про NextResult посмотрели? Пока не смотрел, но посмотрю. Скоро буду реализовывать эту часть. Знаю, что возможно получение результатов от нескольких запросов. Куска на данный момент нет, скоро начну делать. Но уже понятно, что схема получиться сложной :( Приходиться изобретать велосипед, а не хочется :(. Время на проект ограниченно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2012, 11:47 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Testor1skyANAпропущено... Хм... А покажите кусок кода хранимой процедуры, что у Вас проверяет права пользователя на select/insert/update/delete, на уровне столбцов и строк. P.S.: ссылку про NextResult посмотрели? Пока не смотрел, но посмотрю. Скоро буду реализовывать эту часть. Знаю, что возможно получение результатов от нескольких запросов. Куска на данный момент нет, скоро начну делать. Но уже понятно, что схема получиться сложной :( Приходиться изобретать велосипед, а не хочется :(. Время на проект ограниченно. Ограничение на уровне строк - не абсолютно на все таблицы. К примеру определенным группам пользователей разрешить/запретить доступ на просмотр/редактирование данных для региона/города/района и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2012, 08:33 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
skyANATestor1, но если хочется именно через хп и несколько select-ов, то читай про извлечение нескольких результирующих наборов при помощи NextResult тут . Реализовал, но столкнулся с проблемой. В процедуре три селекта select1, select2, select3. NextResult - возвращает результаты запросов не в той последовательности в которой вызываются селекты. Почему? и как определить какой селект сработал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 15:20 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Testor1skyANATestor1, но если хочется именно через хп и несколько select-ов, то читай про извлечение нескольких результирующих наборов при помощи NextResult тут . Реализовал, но столкнулся с проблемой. В процедуре три селекта select1, select2, select3. NextResult - возвращает результаты запросов не в той последовательности в которой вызываются селекты. Почему? и как определить какой селект сработал?Что значит не в той? А в какой? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 15:28 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Testor1, код покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 15:29 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
skyANATestor1, код покажите. Сорри был занят. Старый код удалил. Напишу что делал. Сейчас же временно вызываю три процедуры. Нужно было срочно запустить функционал страницы :( Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: sql 1. 2. 3. В dtTable1 - попадали данные из table1. В dtTable2 - попадали данные из table3. В dtTable3 - попадали данные из table2. Структура таблиц разная. С помощью Debugger-а отследил, что данные в DataTable загружаются не в той последовательности в которой объявлены селекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 08:31 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
DataTable.Load Method (IDataReader) Remarks The Load method consumes the first result set from the loaded IDataReader, and after successful completion, sets the reader's position to the next result set, if any . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:13 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Кстати, может Вам заполнять DataSet из адаптера данных DataAdapter , раз уж Вы пользуетесь DataTable? :) Несколько результирующих наборов Если объект DataAdapter обнаруживает несколько результирующих наборов, то создает несколько таблиц в DataSet . Таблицы получают добавочное имя по умолчанию TableN, для Table0 начинающееся с «Table». Если имя таблицы передается в качестве аргумента методу Fill , то таблицы получают по умолчанию имя TableNameN с последовательно увеличивающимся суффиксом, но начиная с «TableName», а не с TableName0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:19 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
skyANA, Уже код адаптировал на DataSet. Тесты с несколькими селектами проведу в пятницу. Сейчас запарка. Спасибо за поддержку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2012, 12:25 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Testor1, Почти все реализовал через dataset + tvp. Всем спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 22:00 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
Testor1Где-то в степизачем тут процедура?..., две не связанные сущности, магазины и правила начисления, это все можно вытащить двумя запросами к двум таблицам ( магазины, и правила начисления) из-за безопасности и производительности все выборки и запросы на изменения делаю через процедуры жуть какая :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2012, 19:52 |
|
||
|
Сложная форма
|
|||
|---|---|---|---|
|
#18+
EnomayTestor1пропущено... из-за безопасности и производительности все выборки и запросы на изменения делаю через процедуры жуть какая :) Ждем курсов MVC3 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38028796&tid=1359046]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 403ms |

| 0 / 0 |
