Имя: Пароль:
1C
1С v8
SQL, UDF-функции
0 Антиквар
 
10.02.12
14:08
Всем привет!
На MS SQL 2005 есть БД, из 1С мне нужно получать данные из этой БД. С этим проблем нет, главное знать структуру, чтоб написать SQL-запрос. Но программисты БД (это их база на SQL) пишут, что в связи со сложностью структуры нужно использовать UDF-функции, которые они пишут. Прислали пример, файлик, с расширением SQL. Т.е. вроде как обычный скрипт, но внутри что-то типа запросов в перемешку с иероглифами. Причем открывая этот файл в SQL-менеджере иероглифы остаются. Подскажите, что за UDF-функции такие, как мне их использовать? И где они вообще находятся, в структуре БД на SQL их вроде как нет... К чему мне запросы то писать?
1 Господин ПЖ
 
10.02.12
14:11
>Подскажите, что за UDF-функции такие

обычная функция пользователя
2 shuhard
 
10.02.12
14:13
(0) [а запросов в перемешку с иероглифами]
натрави на него Штрилица

а кодеров шли в сад, пусть хранимку сделают
3 Антиквар
 
10.02.12
14:29
(1) А где эти функции хранятся, и могу ли я из 1С их как-то вызывать?
(2) да у меня с ними связи вообще нет :( Есть клиент, которому с одной стороны какая-то фирма делает SQL-базу для определеных задач, а я с другой стороны делаю ему конфигурацию на 1С. В 1С просто нужно периодически подтягивать данные из SQL.
У разработчиков SQL свои задачи и свои обязанности, я не в курсе этого, но всё что они делают клиента устраивает. Конечно если нет возможности использовать UDF-функции из 1С, то буду просить чтобы что-то меняли. Но я пока не представляю что это...
4 shuhard
 
10.02.12
15:16
(3) натрави на него Штрилица
5 rs_trade
 
10.02.12
15:28
(3) вызывать из 1С естественно можно. надо просто знать какой результат возвращает функция. скалярный или нет.
6 shuhard
 
10.02.12
15:34
(3) а по архитектуре, UDF живут на сиквеле что-то вида:
ALTER FUNCTION [dbo].[tango]
(@Param1 decimal (4,1))
RETURNS decimal (12,3) -- тип данных возвращаемого значения.
AS
BEGIN
    RETURN (@Param1*100)
END

и вызываются в запросе:
SELECT     _IDRRef, _Code, _Description,dbo.tango(12)
FROM         _Reference7
7 Антиквар
 
10.02.12
15:52
(4) не понял что это :) Но яндекс подсказал, что программа раскодировки. Мне в принципе не важно что там внутри, согласен на черный ящик, лишь бы знать что нужно на вход и что на выходе. А это мне должны предоставить.
(5) на выходе набор записей
(6) Спасибо! Т.е. я прямо в полях запроса могу указать UDF-функцию? Но откуда она возьмется, она хранится в БД??? Я что-то не нашел.
8 ДенисЧ
 
10.02.12
15:53
(7) а как искал?
9 Антиквар
 
10.02.12
16:14
(8) открыл SQL менеджер, открыл там нужную БД, просмотрел структуру. Но там все привычно, хранимые процедуры, триггеры, ... ни о каких UDF я не слышал и сейчас не вижу :(
Но поскольку в обычном запросе можно к ней обратиться, то я думаю что она внутри БД должна быть где-то...
10 Антиквар
 
10.02.12
17:20
вроде выяснил я, оказывается забыли программисты UDF-функции в базу включить :)
что меня и вводило в ступор, как писать запросы к тому, чего в базе нет :)
11 ДенисЧ
 
10.02.12
17:25
жесть... :-)
А когда включат - скажи запрос sp_help_text 'имя функции'
12 shuhard
 
10.02.12
17:26
(10) UDF живут на сиквеле
UDF бывают примитивные и сложные (5),
для сложных есть особые приемы работы с рекордсетом
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн