|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.06.2017, 17:16 | #11 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Чем платить?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
13.06.2017, 17:28 | #12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
сложностью разработки (вместо того, чтобы написать select id, name from MyTable будете мутить процедуры с параметрами, разбором полей и т.д. и т.п.), убогим (читай = "универсальным") интерфейсом, потерей производительности и т.д. и т.п.
А самое обидное, что в процессе эксплуатации (ВДРУГ ) выяснится, например, что в процедуру надо передавать не только имя таблицы, но и , например, набор полей, которые нужны. А потом (опять ВДРУГ ) выяснится, что часть полей нужно получать из другой таблицы и её нужно связывать с исходной и т.д. и т.п. Жизнь очень гибкая штука и её крайне трудно засунуть в рамки (не упрощая и ничего не ломая при подгонке). А статью то прочитали про exec и его особенности? |
13.06.2017, 17:43 | #13 | |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Цитата:
Так видишь, я могу сделать запрос, в него подставлять какие поля нужны. Мне нужно что: мне нужно, передав имя таблицы получить из нее данные, чтобы их можно было редактировать потом. Заранее имя таблицы неизвестно. Предполагал, что поля таблицы будут передаваться в том же запросе в ХП, т.е., например (словесно) так: Код:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
|
13.06.2017, 17:58 | #14 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
я не возражаю! вот, я про это и говорил, обычно редакторы, где все поля редактируются без относительно их назначения (универсально) и выглядят убого (одинаково). я не однократно сталкивался с подобными системами. Впрочем, это же моё личное мнение. И дьявол, как всегда, в деталях. В каком-то случае подобная универсальность вполне допустима и оправдана, в каком-то, наоборот, не оправдана. Вам там на месте виднее, как лучше. Да и жизнь/практика обычно всё расставляет по своим местам. В любом случае, желаю успехов в проектировании и разработке! |
|
13.06.2017, 18:04 | #15 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Согласен с Сергеем, подобная универсальность при развитии системы к добру не приведет. Да и дбнавигатор слишком как-то по школьному ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
13.06.2017, 18:09 | #16 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Ну хорошо.
Может быть я и откажусь от этой идеи потом. Но: как можно тогда управлять какие поля будут выбираться и доступны пользователю, а какие нет? можно ли на уровне сервера управлять доступом к конкретным ХП пользователям? Чтобы я мог указывать какие таблицы могут быть доступны пользователю, с каким и полями. Или делать все это через Select в ХП, перечисляя, и, потом просто администрируя, меняя этот перечень в уже ХП на сервере? Я думал так сделать изначально кстати. В качестве админки у меня MS SQL Managment Studio. Иными словами, можно ли делать такое: Код:
Если "да", то меня это устроит!
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
Последний раз редактировалось artemavd; 13.06.2017 в 18:31. |
13.06.2017, 20:45 | #17 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Цитата:
1. 5 ХП для 5 разных таблиц, возвращающие данные (с джойнами ещё на 3 таблицы каждая, кстати); 2. 1 ХП, в которую в качестве параметра передавался @Mode (Режим), который и определял, какую из ХП запускать. 3. ХП возвращала полный набор полей, а доступ к ним из программы рулился в коде. Не самая изящная реализация, да и в сопровождении сложная: добавилось в одну таблицу поле - 6 хранимок упало на тестах (в лучшем случае - на тестах, в худшем - на продуктиве). Просто потому что забыли это поле в них описать. По моему, чтобы получить описание структуры БД или части БД (в том числе список полей конкретной таблицы), нужно обращаться к dbo.sysobjects? Как-то так: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось artemavd; 14.06.2017 в 04:09. |
||
14.06.2017, 04:15 | #18 | |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Цитата:
То есть я создаю таблицу. Субадмин (с гораздо менее доступными правами) через свою программу, без доступа в панель управления сервером, просто перечисляет поля созданной мной таблицы. То, что он перечислил - должно грузиться в клиентское приложение другого пользователя. На самом деле реализация проста, просто затык возник в том, как передать в SELECT в хранимой процедуре как параметр список разрешенных субадмином полей. Конечно, чтобы потом другой конечный пользователь, загрузив эти поля, мог работать как с обычным датасетом через DBNavigator, например. Не спрашивайте зачем такая реализация, просто надо так Sciv, я так понимаю, что твой код это пример из проекта? А зачем там INNER используется?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
|
14.06.2017, 07:04 | #19 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Нет, это пример из интернета. А иннером джойнится таблица типов полей.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
14.06.2017, 07:17 | #20 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
А что это значит тогда?
Код:
Код:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача параметров в хранимой процедуре | Maxjuvefan | БД в Delphi | 7 | 17.09.2015 14:09 |
Как зделать запрос в хранимой процедуре | xatabich | БД в Delphi | 8 | 08.12.2014 08:08 |
Имена переменных в хранимой процедуре | Muramidaza | БД в Delphi | 0 | 17.03.2014 22:44 |
Insert or Update в хранимой процедуре | Dozent | SQL, базы данных | 4 | 15.10.2013 03:17 |
как отключить соединения с БД в хранимой процедуре | Neymexa | SQL, базы данных | 0 | 06.04.2010 11:44 |