Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Нетовский клиент не видит временные таблицы / 8 сообщений из 8, страница 1 из 1
15.12.2006, 10:31
    #34202044
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
Люди, сижу и охреневаю медленно:
есть процедура на сервере типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
alter proc UP_DiagramExp
@company nvarchar( 50 ),
@year int=null,
@mon int=null,
@TypeExp int=null,
@StruktSubdiv nvarchar( 50 )=null,
@maxGhor bigint =null output,
@minGhor bigint =null output,
@maxVert bigint =null output
as
set nocount on
if isnull(@year, 0 )<> 0  --график затрат компании за год
	begin
		select * into #TempExp from
			--------таблица1--------------
			union
			--------Таблица2-------------
						
	end
select * from #TempExp
set @maxGhor=(select max(mon) as mon from #TempExp)
set @minGhor=(select min(mon) as mon from #TempExp)
Есть код на клиенте:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim StorPar( 1 ) As SqlParameter
        StorPar = SqlHelperParameterCache.GetSpParameterSet(строка подключения, "UP_DiagramExp")
        StorPar( 0 ).Value = "бла-бла"
        StorPar( 0 ).Direction = ParameterDirection.Input 'компания
        StorPar(1).Direction = ParameterDirection.Input 'год
        StorPar( 2 ).Direction = ParameterDirection.Input 'месяц
        StorPar(3).Direction = ParameterDirection.Input 'тип затрат
        StorPar( 4 ).Direction = ParameterDirection.Input 'Структурное подразделение
        StorPar(5).Direction = ParameterDirection.Output ' Максимальное значение по Х
        StorPar( 6 ).Direction = ParameterDirection.Output 'Минимальное значение по Х
        StorPar(7).Direction = ParameterDirection.Output 'Максимальное значение по Y

        Dim dr As SqlDataReader = SqlHelper.ExecuteReader(строка подключения, CommandType.StoredProcedure, "UP_DiagramExp" _
        , StorPar)
При выполнении этой процедуры на клиенте пишет "неправильное имя #TempExp", причём если данные не загонять в временную таблицу, то всё отрабатывает ОК.
Люди добрыя, с какого хрена клиент не видит временных таблиц, тем более эти таблицы используются внутри хранимки и нигде на клиенте даже не проскакивает имя "#TempExp"? В Аксессе такие процедуры нормально отрабатывают ...
...
Рейтинг: 0 / 0
15.12.2006, 15:42
    #34203565
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
неправильное имя #TempExp это как?
...
Рейтинг: 0 / 0
15.12.2006, 16:02
    #34203668
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
sposadЛюди, сижу и охреневаю медленно:

Вы явно создавать временную таблицу в процедуре не пробовали?

Код: plaintext
1.
2.
3.
4.
5.
6.
...
as
set nocount on

create table #TempExp (....)

...
...
Рейтинг: 0 / 0
15.12.2006, 16:51
    #34203927
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
Roman S. Golubin sposadЛюди, сижу и охреневаю медленно:

Вы явно создавать временную таблицу в процедуре не пробовали?

Код: plaintext
1.
2.
3.
4.
5.
6.
...
as
set nocount on

create table #TempExp (....)

...

Нет, не пробовал пока ..., а какая разница? Да я читал, что select into нежелательно вроде, но на видимость-то таблицы метод её создания влияет как?
Вообще есть идеи, подсказанные в VB.net:), нет времени проверить пока, но проверю - напишу
Спасибо
...
Рейтинг: 0 / 0
16.12.2006, 17:20
    #34205032
+2
+2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
авторНет, не пробовал пока ..., а какая разница?
Какая разница?
Вы передаете прцедуре значение @year равное null. А теперь пошагово посмотрите что в процедуре происходит и сами удостоверьтесь, что временная таблица НЕ_СОЗДАЕТСЯ!!!!
...
Рейтинг: 0 / 0
19.12.2006, 15:02
    #34210672
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
sposadПри выполнении этой процедуры на клиенте пишет "неправильное имя #TempExp" . .. с какого хрена клиент не видит временных таблиц
жжёшь. Клиенту совсем не обязательно знать о существовании временных таблиц, что бы выводить ошибки, которые приходят с сервера БД.
...
Рейтинг: 0 / 0
21.12.2006, 10:01
    #34215142
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
Прошу прощения, что не написал сразу, вы оказались правы, как и мембер на VB, я идиёт! Нехрен по ночам работать. Вобщем запуталься я тогда запуская проц то из QA то из нета, путаясь в параметрах.
Правда путанницу внесло ещё некоторое обстоятельство:
если пишешь
Код: plaintext
1.
Dim dr As SqlDataReader = SqlHelper.ExecuteReader(строка подключения, CommandType.StoredProcedure, "UP_DiagramExp" _
        , StorPar)
то считывается reader, но не выводятся параметры output
а вот если пишешь
Код: plaintext
1.
Dim dr As DataSet = SqlHelper.ExecuteDataset(строка подключения, CommandType.StoredProcedure, "UP_DiagramExp" _
        , StorPar)
то и датасет заполняется и параметры вылезают
А я по этим грёбаным параметрам судил о том, выполняется проц или нет ...
...
Рейтинг: 0 / 0
21.12.2006, 12:12
    #34215626
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нетовский клиент не видит временные таблицы
то считывается reader, но не выводятся параметры output
Output-параметры появляются после закрытия ридера. Читайте внимательнее MSDN.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Нетовский клиент не видит временные таблицы / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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