Хранимые процедуры. Возвращаемое значение.

AnKa
Дата: 04.12.2000 15:23:29
Во-первых, хочу поблагодарить авторов за великолепный сайт. Уйма полезной информации!
И, собственно вопрос:
Как добиться от хранимой процедуры возвращения значения напр. char(10)? Вроде бы проскальзывала информация, что можно писать на Cи свои функции и "подсовывать" серверу. Кто может поделиться опытом по данному вопросу?
SergSuper
Дата: 04.12.2000 16:11:57
хранимая процедура может выдать только int, который будет написан в ней после return. Как таковых пользовательских функций нет(во всяком случае в 7.0) и на Си это тоже не сделать.
Если хочется узнать как можно писать процедуры на Си и вызывать их с сервера, почитай хелп по ODS(так прямо и напишешь ключевое слово).

С приветом Сергей
baxxtor
Дата: 04.12.2000 16:48:00
В 2000 появились функции. Далее, можешь оспользовать выходной параметр. И на крайняк, можно вернуть это значение в рекордсете.
Павел
Дата: 04.12.2000 18:04:33
Ну если не собираешся использовать это дело прямо в запросе, то элементарно:

Create Procedure StoredProc1 @parameter1 Char(10) Output

As
Set @parameter1='abcdefghij'
Return

Ну а если собираешся, то смотри 'User-defined Functions with MDX Syntax' в Books Online
Павел
Дата: 04.12.2000 18:17:21
Прошу прощения. Прогнал. 'User-defined Functions with MDX Syntax' только в OLAP.
AndyMandy
Дата: 05.12.2000 04:01:13
Если использовать в запросе то
create procedure Proc @var char(10) output
as
set @var ='Привет!' или select @var ='Привет!'

при вызове
declare @myVar char(10)
exec Proc @myVar output
select dd = @ myVar
Вот!
Если вызывать из Delphi например то точно так-же
AnKa
Дата: 06.12.2000 07:16:12
Спасибо всем, кто откликнулся. Жаль, только что так и не решилась моя проблема. Очень уж хочется написать процедурку, которую потом можно вызывать в виде
SET @Val=MyProc(@Val1)
или
SELECT Field1,MyProc(Field2)
FROM Table1
В любом случае, спасибо.
Fompro
Дата: 06.12.2000 20:20:28
Переходите на UDF в 2000