|
|
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
Есть база: create table head (type varchar(255), tbl varchar(255)); create table type1 (t1var1 int, t1var2 int, t1var3 int); create table type2 (t2var1 int, t2var2 int); .. insert into head values('item1','type1'); insert into head values('item2','type2'); .. insert into type1 values (123,323,123); .. insert into type2 values (43243,23423); .. insert into type3 values (43243,23423); .. Нужна серверная процедура которая бы делала так: select foo('type1'); --т.е. select * from type1; t1var1|t1var2|t1var3| 123|323|123| select foo('type2'); -- т.е. select * from type2; t2var1|t2var2 43243|23423 В сторону какого ключевого слова смотреть? подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2009, 22:54 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
select foo('item1'); --т.е. select * from type1; t1var1|t1var2|t1var3| 123|323|123| select foo('item2'); -- т.е. select * from type2; t2var1|t2var2 43243|23423 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2009, 22:57 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
koriskВ сторону какого ключевого слова смотреть? подскажите, пожалуйста.Ваш вопрос не имеет никакого отношения к форуму "Проектирование БД". Задайте вопрос на профильном форуме по используемой Вами СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 03:40 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
korisk Нужна серверная процедура которая бы делала так: select foo('type1'); --т.е. select * from type1; t1var1|t1var2|t1var3| 123|323|123| select foo('type2'); -- т.е. select * from type2; t2var1|t2var2 43243|23423 В сторону какого ключевого слова смотреть? подскажите, пожалуйста.для чего это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 06:50 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
Nafдля чего это? Каждый item имеет разные параметры(разное их число с разными типами ). В зависимости от реализации имеется разное item-ов. А код клиента хотелось бы сделать не зависимым от количества итемов. ChAВаш вопрос не имеет никакого отношения к форуму "Проектирование БД". Задайте вопрос на профильном форуме по используемой Вами СУБД. Как я понял, предложенное мной решение в реляционную алгебру не укладывается. А хранить числа в виде строки не экономно. Может существоует более качественное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 08:35 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
Если необходимо получить неизвестно что наперед, можно пользоваться метаданными СУБД. Для MS SQL это семейство системных вью INFORMATION_SCHEMA.TABLES, INFORMATION_SCHEMA.COLUMNS и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 08:38 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
korisk пишет: > Нужна серверная процедура которая бы делала так: > select foo('type1'); --т.е. select * from type1; > В сторону какого ключевого слова смотреть? подскажите, пожалуйста. Смотреть надо в сторону редизайта БД, это у тебя с ним проблемы. Такого в принципе не должно быть, чтобы тебе такие выкрутасы нужны были бы. Названия полей, таблиц, view доложны быть статичными в запросах. потому что запросы динамически их вычислять не умеют. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 10:47 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
В чем проблема? с клиента на сервер вы все равно собрались имя таблицы передавать, но и сгенерируйьте что-то типа: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 10:57 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
СУБДЕсли необходимо получить неизвестно что наперед, можно пользоваться метаданными СУБД. Для MS SQL это семейство системных вью INFORMATION_SCHEMA.TABLES, INFORMATION_SCHEMA.COLUMNS и т.п. Спасибо посмотрю. Naf В чем проблема? с клиента на сервер вы все равно собрались имя таблицы передавать, но и сгенерируйьте что-то типа: Код: plaintext 1. Хочу чтобы при добавлении данных код менять не нужно было. MasterZivСмотреть надо в сторону редизайта БД, это у тебя с ним проблемы. Такого в принципе не должно быть, чтобы тебе такие выкрутасы нужны были бы. Названия полей, таблиц, view доложны быть статичными в запросах. потому что запросы динамически их вычислять не умеют. Самому не нравиться. Всю голову поломал, но придумал :) Решил как то так сделать: 1 create table items (itemid int , tbl varchar(255)); 2 3 create table charvars (intemid int, var varchar); 4 create table intvars (intemid int, var int); 5 6 select * from charvars union select * from intvars; Не экономно, правда.. Что скажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 18:01 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
where itemid = ITMID; конечно. ну или JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 18:07 |
|
||
|
Доступ к таблице по названию в поле(внутри серверной процетуры)
|
|||
|---|---|---|---|
|
#18+
korisk пишет: > Самому не нравиться. Всю голову поломал, но придумал :) > > Решил как то так сделать: > 1 create table items (itemid int , tbl varchar(255)); > 2 > 3 create table charvars (intemid int, var varchar); > 4 create table intvars (intemid int, var int); > 5 > 6 select * from charvars union select * from intvars; > > Не экономно, правда.. Что скажите? Я ничего не скажу, пока вашу схему не увижу. А так -- все "динамически" поименованные таблицы надо сгонять в одну, возможно добавляя тип сущности в PK таблицы. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2009, 18:57 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=84&tid=1543100]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 346ms |

| 0 / 0 |
