Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите решить проблему с выполнением запроса сформированного динамически. Есть таблица с большим количеством полей. Нужно в хранимой процедуре перебрать поля в цикле. declare @dtmes datetime declare @col_name varchar(30) declare @ID numeric(18) declare @SQL2 varchar(16384) set @dtmes= дата set @ID=1014 set @col_name = 'sgn'+convert(varchar(4),@ID) set @val= (select @col_name from report where dtmes = @dtmes) в результате переменной @val присваивается значение sgn1014 Как сделать чтобы в этом запросе переменная @col_name воспринималось как наименование поля, а не как константа?? есть другой вариант: set @SQL2 = 'select '+@col_name+' from report where dtmes = "'+convert(varchar,@dtmes)+'"' exec (@SQL2) а как тогда получить значение которое возвратил запрос?? ASE12.5.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 12:54 |
|
||
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 14:02 |
|
||
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
Очень не советую так делать. 0) Использование EXEC ведет к проблемам с правами. ВСЕ пользователи, которые будут использовать эту хранимую процедуру, должны будут иметь непосредственно права на все действия, выподняемые в EXEC(). 1) Если вам нужно в цикле перебрать поля таблицы, значит вы уже что-то делаете не так. Запись -- это не массив, это кортеж. Выполняя реляционные операции вам не нужно перебирать колонки, и соответственно наоборот, перебирая колонки вы выполняете нереляционные операции. А ASE - реляционная СУБД, на ней надо работать реляционными операциями. Подумайте о редизайне этого дела, надо сделать столбцы строками, тогда все у вас будет хорошо сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 22:36 |
|
||
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
MasterZiv : Понятно. Поля строками сделать не получиться , так как записи будут добавляться с течением времени а поля не будут. Просто хотелось уменьшить размер кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 06:29 |
|
||
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
luvMasterZiv : Понятно. Поля строками сделать не получиться , так как записи будут добавляться с течением времени а поля не будут. Чем тебя смущает наличие фиксированного во времени количества СТРОК, а не столбцов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2006, 11:42 |
|
||
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
ээээ помойму ты противоречишь сам себе MasterZiv 1) Если вам нужно в цикле перебрать поля таблицы, значит вы уже что-то делаете не так. MasterZiv Чем тебя смущает наличие фиксированного во времени количества СТРОК, а не столбцов ? Тем что число полей в моей задаче конечно.А время бесконечно.а в таблицы добавляют записи,а не поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 06:27 |
|
||
|
Динамическое формирование имнени поля в запросе.
|
|||
|---|---|---|---|
|
#18+
luvээээ помойму ты противоречишь сам себе Тем что число полей в моей задаче конечно.А время бесконечно.а в таблицы добавляют записи,а не поля. Нету противоречий. Ну будут у тебя добавлятся не N записей, а N*k, где k - некая константа. В чем проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 09:38 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33679298&tid=2012896]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 322ms |

| 0 / 0 |
