Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Присоединить хранимую процедуру в прямом запросе (число прочтений - 3291 )
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Присоединить хранимую процедуру в прямом запросе
19. Мая 2014 :: 09:31
Печать  
Подскажите, пожалуйста, можно ли присоединить хранимую процедуру в запросе что то типа

     |SELECT TOP 1
       |      Номенклатура.id
     |      ,Дети.id
     |FROM
     |      Справочник.Номенклатура as Номенклатура
     |      LEFT JOIN test(Номенклатура.ID) AS Дети On 1 = 1
     |";

база SQL
     
     
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #1 - 19. Мая 2014 :: 09:53
Печать  
по моему нет.
надо написать другую хранимую процедуру которая будет делать сразу
весб функционал sql запроса
  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #2 - 19. Мая 2014 :: 09:54
Печать  
ок, попробую
  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #3 - 20. Мая 2014 :: 04:01
Печать  
Добрый день.
облом  Печаль поля то нетипизированные возвращаются. Может кто знает способ как сделать их типизированными?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #4 - 20. Мая 2014 :: 04:39
Печать  
Типизация в 1С++ выглядит примерно так:
Код
Выбрать все
     |SELECT TOP 1
     |	Номенклатура.id [Номенклатура $Справочник.Номенклатура]
     |	,Дети.id [Дети $Справочник.СправочникДетей] 


Для большей точности рекомендую почитать документацию.
  
Наверх
ICQ  
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #5 - 20. Мая 2014 :: 10:18
Печать  
Спасибо Улыбка. Но вопрос немного о другом. Почитайте внимательней ветку, она не такая длинная Подмигивание. Обратите внимание на сообщение от Z1.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #6 - 20. Мая 2014 :: 10:41
Печать  
OnCheck писал(а) 20. Мая 2014 :: 10:18:
Спасибо Улыбка. Но вопрос немного о другом. Почитайте внимательней ветку, она не такая длинная Подмигивание. Обратите внимание на сообщение от Z1.

Уф-ф-ф... Спросить то чего хотел? Если вопрос по типизации то я достаточно подробно (наверное) ответил.

Если не очень подробно, то (на сколько я себе представляю) типизация выглядит так:
1. Строится SQL-запрос к БД
2. В полученной выборке 1С++ ищет столбцы с описанием типизации (то самое Номенклатура $Справочник.Номенклатура)
3. Выбрав ИД-шники из этого столбца заполняет этот столбец не ИД-шником а неспоредственным 1С-ным объектом (из-за чего 1С-ка генерит кучу запросов к SQL)

Какая разница при этом, используется ли хранимая процедура или нет, я не понимаю. Может опишешь свою проблему поподробнее?
  
Наверх
ICQ  
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #7 - 21. Мая 2014 :: 07:30
Печать  
Да я хочу ХП приджойнить к таблице как в первом посте

     |SELECT TOP 1
      |      Номенклатура.id
     |      ,Дети.id
     |FROM
     |      Справочник.Номенклатура as Номенклатура
     |      LEFT JOIN test(Номенклатура.ID) AS Дети On 1 = 1
     |";

а он ругается что не знает такой таблицы test

Z1 предложил сделать через EXEC test(:Номенклатура), где описать полный текст запроса. Но тогда не понятно как описать типизацию колонок.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #8 - 21. Мая 2014 :: 07:58
Печать  
А если попробовать в этой хранимой процедуре описать колонки нужным образом? Т.е. в резльтате запроса из ХП идет выборка, а в этой выборке будет поле с именем [Номенклатура $Справочник.Номенклатура]
З.Ы. И непонятно, почему "ругается что не знает такой таблицы test"... По сути это обычные SQL-запросы. Может прав нет, у 1С-коннекта к базе, на использование этой ХП?
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #9 - 21. Мая 2014 :: 08:25
Печать  
Salimbek писал(а) 21. Мая 2014 :: 07:58:
А если попробовать в этой хранимой процедуре описать колонки нужным образом? Т.е. в резльтате запроса из ХП идет выборка, а в этой выборке будет поле с именем [Номенклатура $Справочник.Номенклатура]
З.Ы. И непонятно, почему "ругается что не знает такой таблицы test"... По сути это обычные SQL-запросы. Может прав нет, у 1С-коннекта к базе, на использование этой ХП?

так должно все работать.
как бы непонятно что именно не работает.

  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #10 - 21. Мая 2014 :: 09:37
Печать  
Z1 писал(а) 21. Мая 2014 :: 08:25:
так должно все работать.
как бы непонятно что именно не работает.


Угу, вот и мне непонятно...
  
Наверх
ICQ  
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #11 - 22. Мая 2014 :: 02:40
Печать  
    |SELECT TOP 1
    |       id
    |FROM
    |    Справочник.Кассы as Кассы
    |    LEFT JOIN dbo.test() On 1 = 1
    |";
   
    тз = Запрос.Выполнить();

пишет ошибку Недопустимое имя объекта "dbo.test".

хотя    

EXECUTE dbo.test

нормально отрабатывает.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Присоединить хранимую процедуру в прямом запросе
Ответ #12 - 22. Мая 2014 :: 04:31
Печать  
Эм-м-м, а разве так можно делать? Процедура - она же потому и процедура, что ее вызывать надо (через EXEC). А если хочется обращаться к результату в запросе, то это уже Функция получается. Вот например, производительность запросов с использованием UDF
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать