Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема как работать с пользовательскими функциями (число прочтений - 2487 )
Dreamka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 48
Зарегистрирован: 23. Июля 2007
Пол: Мужской
как работать с пользовательскими функциями
02. Июня 2008 :: 05:22
Печать  
я наверное тугодум,но не как не могу понять как правильно писать и пользоваться функциями в запросах.помогите, объясните на пальцах,а гугл не помогает
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #1 - 02. Июня 2008 :: 05:48
Печать  
select
...
dbo.ИмяФ(...)  [Нужное_имя]
...
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Dreamka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 48
Зарегистрирован: 23. Июля 2007
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #2 - 02. Июня 2008 :: 05:52
Печать  
а где их обявлять функции,т.е. есть запрос
select
......
from
.......
where
.....
group by
......
а где тут не вызвать,а объявить функцию?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #3 - 02. Июня 2008 :: 05:57
Печать  
А причем тут select?
Цитата:
CREATE  FUNCTION [ owner_name. ] function_name
    ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] )

RETURNS scalar_return_data_type

[ WITH < function_option> [ [,] ...n] ]

[ AS ]

BEGIN
    function_body
    RETURN scalar_expression
END
  
Наверх
ICQ  
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: как работать с пользовательскими функциями
Ответ #4 - 02. Июня 2008 :: 06:00
Печать  
Dreamka писал(а) 02. Июня 2008 :: 05:52:
а где их обявлять функции,т.е. есть запрос
select
......
from
.......
where
.....
group by
......
а где тут не вызвать,а объявить функцию?


если имеются в виду функции группировки, то их надо объявлять в блоке SELECT
напр, Sum_rr=sum(rr)
  
Наверх
 
IP записан
 
Dreamka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 48
Зарегистрирован: 23. Июля 2007
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #5 - 02. Июня 2008 :: 06:09
Печать  
ну я имею ввиду,что мне нужно в запрсе создать функцию и потом ее использовать,я не понимаю как это сделать
получается,что создание функции и ее использование будут в разных запросых или можно все реализовать в одном?
например:я получаю значения из регистра и мне нужно добавить верхнего родителя номенклатуры через функцию.можно показать схематично,как этот запрос будет вглядеть
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #6 - 02. Июня 2008 :: 06:17
Печать  
Пользовательские функции создаются 1 раз не нужно тебе их создавать для каждого запроса. Т.е. один раз создал и используй где тебе нужно.
  
Наверх
ICQ  
IP записан
 
Dreamka
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 48
Зарегистрирован: 23. Июля 2007
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #7 - 02. Июня 2008 :: 06:32
Печать  
Nick писал(а) 02. Июня 2008 :: 06:17:
Пользовательские функции создаются 1 раз не нужно тебе их создавать для каждого запроса. Т.е. один раз создал и используй где тебе нужно.

т.е. как я понгимаю можно сделать вот так для моего отчета
................
запрос="creat function моя...."
запрос2="select.....dbo.моя.....drop моя"?
а как проверить существет ли пользовательская функция?
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #8 - 02. Июня 2008 :: 06:43
Печать  
Дать человеку удочку...

QA - F8 - Templates - Create function - Create inline function - Ctrl+Shift+M - Меняем имена - Изучаем
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: как работать с пользовательскими функциями
Ответ #9 - 02. Июня 2008 :: 14:04
Печать  
Dreamka писал(а) 02. Июня 2008 :: 06:32:
а как проверить существет ли пользовательская функция?


IF EXISTS(SELECT name FROM sysobjects WHERE name = 'sp_tohex') DROP FUNCTION sp_tohex

Пример использования:

insert into " + ВремТаблица + " values (dbo.sp_tohex(@rank, 6), @id, 1)
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать