Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / подскажите, как можно сформировать запрос в хр. проц-ре / 11 сообщений из 11, страница 1 из 1
04.10.2002, 14:53:20
    #32055530
pvnic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
Добрый день!

ситуация такая - есть некая страничка, на ней туева хуча всякий акций.
по ним считаются всяктй показатели, в лучшем случае они беруться только из 2-х баз... про худшее и грить не интересно ..
и есть такая форма на этой, выбирая параметры которой юзер получает интересующую его выборку.

так вот, собственно вопрос - тк данные нужны макс-но свежие, соотв считается все хр. процедурой, кидается в темповую таблицу, потом делается селект и таблица киляется. как передать тому селекту, что нужно например выбирать акции доходности А1, А2, все..
капитализация - все, от... до...
и тд.
...
Рейтинг: 0 / 0
04.10.2002, 14:57:02
    #32055534
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
Непонял,а что переменные передать в ХП как параметр,а потом юзать их в запросе нельзя???
...
Рейтинг: 0 / 0
04.10.2002, 15:00:05
    #32055536
dkstranger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
Если число параметров и их тип заранее известен,
то проще всего их и передавать в качестве параметра ХП.
Если нет /что, кстати, чаще всего и случается/,
то мы делаем таблицы, ктр хранят параметры
"переменных окружения" и их значения.

Процедура лезет в эту таблицу, смотрит параметры
- и вперед ...
...
Рейтинг: 0 / 0
04.10.2002, 15:02:29
    #32055539
pvnic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
а как например сказать что надо выбрать
1) ALL
2) top 50
3) where spred between 100 and 120
4) where spred>100

проблема не с подставлением значений, а с вставкой в запрос ключевых слов.

перебор всех вариантов - не сработает... тк опять же надо будет дополнять запрос новыми условиями...
...
Рейтинг: 0 / 0
04.10.2002, 15:06:07
    #32055540
Trong
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
Используйте динамические запросы:
Код: plaintext
1.
2.
3.
4.
declare @sql varchar( 500 )
set @sql = 'select [Name], [id] '
set @sql = @sql + 'from sysobjects'
exec (@sql)
...
Рейтинг: 0 / 0
04.10.2002, 15:13:19
    #32055544
dkstranger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
2pvnic

Проблема распадается на несколько частей

1. Формализованные, заранее известные параметры
тут все ясно - см выше
Добавлю только, что мы обычно реализуем
через параметры псевдоязык, куда можно
засунуть и TOP :)

2. Заранее неизвестные параметры

Здесь мы используем 3 подхода
- процедура выдает все во временную таблицу
а потом идет надстройка со всеми доп обработками
- передача в качестве параметра
кусочка текста запроса
- для особых случаев используется
"ручная работа"
-
...
Рейтинг: 0 / 0
04.10.2002, 15:23:06
    #32055551
pvnic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
попробовал
сформировать запрос, по способу, предложенному Trong:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE GET_SORTED_LIST_OF_Shares
@startdate varchar( 50 ),
@stopdate varchar( 50 ),
@onpage varchar( 10 ) 

....

declare @sql varchar( 500 )
set @sql = 'select  '+ @onpage+' * '
set @sql = @sql +  ' from #temp'
exec (@sql)


exec GET_SORTED_LIST_OF_Shares '20020617 19:25:00', '20020917 19:25:00', '30'

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'from'.
...
Рейтинг: 0 / 0
04.10.2002, 15:27:04
    #32055554
dkstranger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
--- Масенькое добавление
CREATE PROCEDURE GET_SORTED_LIST_OF_Shares
@startdate varchar(50),
@stopdate varchar(50),
@onpage varchar(10)

....

declare @sql varchar(500)
set @sql = 'select '+ @onpage+' * '
set @sql = LTRIM(RTRIM(@sql)) + ' from #temp'
exec (@sql)
...
Рейтинг: 0 / 0
04.10.2002, 15:30:12
    #32055556
pvnic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
блин за полчаса до конца работы крыша уехала...
пытался выполнить
select 30 * from #temp

2 dkstranger - а зачем?
...
Рейтинг: 0 / 0
04.10.2002, 15:41:28
    #32055562
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
Неско не понятно: юзверь - это кто? Он самостоятельно пишет запросы? Или оперирует ограниченным набором условий? Так их ID можно смело передавать ХП.... Заодно с числовыми значениями параметров выборки.
...
Рейтинг: 0 / 0
04.10.2002, 15:44:08
    #32055565
dkstranger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите, как можно сформировать запрос в хр. проц-ре
В общем-то не сильно обязательно,
но я сталкивался с появлением иногда паразитных пробелов :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / подскажите, как можно сформировать запрос в хр. проц-ре / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]