Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Временные таблици MsSql и PHP, не возвращается набор данных 
:(
    Опции темы
SharedNoob
Дата 9.10.2008, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: нет
Всего: 5



Доброго времени суток.
Вот столкнулся с пока что необъяснимой проблемой. 
Из PHP вызываю хранимую процедуру в SQL2008 (SQL2000 такая же проблема, проверил), которая формирует и возвращает набор данных в PHP. Процедура данные возвращает правильно, но в PHP они не доходят.

Код процедуры:
Код

 Create table #TPRT (kodls int, namels varchar(50), optnppN int, optnppK int, pictnppn int, pictnppk int)
 Create table #TOPT (kodls int, namels varchar(50), kodopt int, nameopt varchar(30), znopt varchar(100), npp int identity(0,1))
 
 insert into #TOPT (kodls, namels, kodopt, nameopt, znopt)
    select p.kodls, p.name, ISNULL(s.kod,0), so.name, isnull(s.txt100,'Пусто')
        from LST_PROD p with(index(PK_LST_PROD))
            left join SSPRDATA s with(index(PK_SSPRDATA)) on p.KodLs=s.KodLs and s.KodSpr=17 and @Dw between s.Dwn and s.DwK
            left join SSPRDATA so with(index(IX_SSPRDATA)) on so.KodSpr=16 and so.Kod=ISNULL(s.K01,0)
        where p.KodProd=0 and @dw between p.DWN and p.DWK
            and p.LN03=1

 insert into #TPRT (kodls, namels, optnppN, optnppK)
    select t.kodls, MAX(t.namels), MIN(t.npp), MAX(t.npp)
        from #TOPT t
        group by t.kodls

select * from #TPRT        


Что характерно, если оставляю так то данные доходят:
Код

 Create table #TPRT (kodls int, namels varchar(50), optnppN int, optnppK int, pictnppn int, pictnppk int)
 Create table #TOPT (kodls int, namels varchar(50), kodopt int, nameopt varchar(30), znopt varchar(100), npp int identity(0,1))
 
 insert into #TOPT (kodls, namels, kodopt, nameopt, znopt)
    select p.kodls, p.name, ISNULL(s.kod,0), so.name, isnull(s.txt100,'Пусто')
        from LST_PROD p with(index(PK_LST_PROD))
            left join SSPRDATA s with(index(PK_SSPRDATA)) on p.KodLs=s.KodLs and s.KodSpr=17 and @Dw between s.Dwn and s.DwK
            left join SSPRDATA so with(index(IX_SSPRDATA)) on so.KodSpr=16 and so.Kod=ISNULL(s.K01,0)
        where p.KodProd=0 and @dw between p.DWN and p.DWK
            and p.LN03=1


select * from #TOPT    


кто нибудь сталкивался ? почему так ?
PM MAIL ICQ Skype   Вверх
SharedNoob
Дата 9.10.2008, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: нет
Всего: 5



Еще более интересная вещь, если создать временные таблицы непосредственно перед вызовом процедуры то PHP получает набор.

Процедура:
Код


alter                PROCEDURE [dbo].procname

AS Begin
 
 insert into #TOPT (kodls, namels, kodopt, nameopt, znopt)
    select p.kodls, p.name, ISNULL(s.kod,0), so.name, isnull(s.txt100,'Пусто')
        from LST_PROD p with(index(PK_LST_PROD))
            left join SSPRDATA s with(index(PK_SSPRDATA)) on p.KodLs=s.KodLs and s.KodSpr=17 and @Dw between s.Dwn and s.DwK
            left join SSPRDATA so with(index(IX_SSPRDATA)) on so.KodSpr=16 and so.Kod=ISNULL(s.K01,0)
        where p.KodProd=0 and @dw between p.DWN and p.DWK
            and p.LN03=1
 insert into #TPRT (kodls, namels, optnppN, optnppK)
    select t.kodls, MAX(t.namels), MIN(t.npp), MAX(t.npp)
        from #TOPT t
        group by t.kodls
select * from #TPRT 

END


Вызов:
Код

 Create table #TPRT (kodls int, namels varchar(50), optnppN int, optnppK int, pictnppn int, pictnppk int)
 Create table #TOPT (kodls int, namels varchar(50), kodopt int, nameopt varchar(30), znopt varchar(100), npp int identity(0,1))
 exec dbo.procname


Что же получается, нельзя создавать временные таблици в процедурах при работе с PHP ?

Это сообщение отредактировал(а) SharedNoob - 9.10.2008, 09:34
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0389 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.