|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Здравствуйте! Всем. В приложение я устанавливаю соединение с бд через "мастера настройки источников данных". В приложении у меня в вызывается хранимая процедура из бд, которая создаёт таблицу и к ней преставление. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
Суть проблемы такова: Как мне обратится к созданному процедурой представлению? Много искал в инете. но толкового не нашел (может коряво искал) и решил спросить совета. Заранее благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 18:53 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
executesql(N'select * from ViewShop') ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 19:09 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Это где писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 19:28 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
так у представления имя составное в имени присутствует id, так как таких представлений много. Я хотел использовать функцию Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
но как в FROM правильно указать имя не знаю, посоветуйте как сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 21:26 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Я вас не понимаю. Exec('create view ...') вы сделать в состоянии, а exec('select * from View*') нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 21:30 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
я пробовал, но в функции не работает, еще я думал сделать процедуру но как вернуть из неё таблицу не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 21:39 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Microsoft SQL Server 2012 - 11.0.5058.0 (X64) May 14 2014 18:34:29 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Результат: Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2014, 23:09 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
dimasikus, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2014, 00:04 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
dimasikus, Но сам подход дурацкий. Создавать таблицы и вьюхи програмно - плохая практика. З.Ы. Тема для форума MS SQL, а не для NET ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2014, 00:07 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Cat2, вы говорите подход дурацкий, вот мне надо чтобы таблицы пользователь сам создавал через приложение, я так решил сделать если можно по другому, то скажите как и посоветуйте где почитать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2014, 00:16 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Arm79, спасибо за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2014, 00:17 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
dimasikus, Подход простой. Пользователю нужно создавать бизнес-сущности. А уж сделать такую физическую модель, чтобы на нее ложились эти сущности - уже ваша задача. Как вариант, рассмотрите EAV ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2014, 00:54 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Ну и еще, если у вас внешнее приложение, почему бы в нем динамически не формировать запрос с нужным представлением? Зачем извращаться на сервере? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2014, 00:58 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
dimasikus, 1. Вы вероятно не обратили внимание на то, почему сработал вариант от Arm79 и должен сработать мой вариант. Потому что в обоих случаях явно указывался ее владелец - dbo. Когда пользователь создает какой-то объект в базе, то по умолчанию полное имя будет [Base].[Owner].[Name] Таким образом ваши пользователи насоздают кучу табличек и вьюх с именами: User1.TableShop1 User1.ViewShop1 User2.TableShop2 User3.ViewShop2 User3.TableShop3 User3.ViewShop3 Понятно, что select * from ViewShop3 ничего не вернет, а даст ошибку, что такой таблице нет. И действительно - вьюхи dbo.ViewShop3 не существует. Потому что опускать имя владельца можно только если он - dbo. Таким образом Вы должны дать всем права dbo, что ОЧЕНЬ нехорошо 2. Я не знаю Вашей задачи, но она наверняка не уникальна и тривиальна. Зачем Вы плодите кучу табличек с одной записью в каждой для каждого магазина, если все их можно хранить в одной таблице TableShop и отличать их по IDShop? 3. Могу посоветовать почитать форум Проектирование БД или что-нибудь про основы проектирования баз данных =============== Arm79, зачем вы человека непонятными словами пугаете? EAV можно применить тогда, когда все другие пути еще хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2014, 10:54 |
|
Динамические таблицы
|
|||
---|---|---|---|
#18+
Cat2Arm79, зачем вы человека непонятными словами пугаете? EAV можно применить тогда, когда все другие пути еще хуже. Хе :-) По сравнению с динамическим созданием таблиц и представлений EAV - вершина архитектурной мысли. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2014, 12:45 |
|
|
start [/forum/topic.php?fid=20&fpage=108&tid=1402479]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 347ms |
total: | 485ms |
0 / 0 |