Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подскажите с простенькой процедурой  [new]
poiree89
Member

Откуда:
Сообщений: 5
Добрый день!
У меня следующая проблема. Не могу получить выходной параметр процедуры. Дело в том, что выходным параметром процедура хочет считать число, а мне надо выдать varchar(10). Никак не могу найти, где указывается тип выходного параметра?Подскажите, пожалуйста!
AS
BEGIN
	declare @Acc varchar(10)
	SET NOCOUNT ON;
Select @Acc = RIGHT(NEWID(), 10);


END
return @Acc

Упростил процедуру донельзя, просто чтобы разобраться с этим выходным параметром.
Спасибо!
23 дек 11, 20:25    [11817918]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
Glory
Member

Откуда:
Сообщений: 104751
return - это не выходной параметер
Выходные параметры описываются в заголовке процедуры с соответствующим ключевым словом
23 дек 11, 20:47    [11817972]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
poiree89
Member

Откуда:
Сообщений: 5
Glory,

Я пробовал в заголовке указывать output|out, но тогда он добавлял эту переменную в выходной параметр... Т.е. получалось, что один выходной - integer, второй -эта переменная... Из приложения все равно не могу прочитать эту переменную... правда, выдается уже другая ошибка.
23 дек 11, 21:59    [11818205]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
Glory
Member

Откуда:
Сообщений: 104751
poiree89
Из приложения все равно не могу прочитать эту переменную... правда, выдается уже другая ошибка.

Значит изучите, как получать выходные параметры из вашего приложения
23 дек 11, 22:16    [11818264]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Если результат процедуры нужно ловить на клиенте (VBA), то удобно передавать его селектом в самом конце процедуры. Получается нечто вроде
Result = Connection.Execute("EXEC MyProc " & intParam & ", '" strParam & "', '" & Format(dtParam, "yyyymmdd") & "'").Fields("Rsesult")
24 дек 11, 10:04    [11818987]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
poiree89
Member

Откуда:
Сообщений: 5
Glory,
Я вот тут подправил так:
... PROCEDURE [dbo].[GenerateAccountID] @Acc varchar(10) output
...
...


Верно? Но у меня в параметрах показывает, что выходных - 2!
1) вот эта переменная @Acc
2) Все равно Integer (Returns Inreger).
В чем тут дело? какой integer, мне нужен varchar!

Программист-Любитель,

У меня делфи. Там есть специальный компонент. Но вылетает ошибка при попытке обработать процедуру. Вот ищу, где именно ошибка...
24 дек 11, 11:22    [11819058]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
poiree89
Member

Откуда:
Сообщений: 5
А вот мне СКЛ при создании хранимки автоматом создал команды какие-то. приведу полный код ХП:
USE [WebPaymentSystems]
GO
/****** Object:  StoredProcedure [dbo].[GenerateAccountID]    Script Date: 12/24/2011 11:17:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[GenerateAccountID] @Acc varchar(10) output
	-- Add the parameters for the stored procedure here
	
AS
BEGIN
	--declare @Acc varchar(10)

    -- Insert statements for procedure here
Select @Acc = RIGHT(NEWID(), 10);
 WHILE (Select Count(Account) from AccountsTreeProg where Account = @Acc ) > 0 
 BEGIN 
	 Select @Acc = RIGHT(NEWID() ,10)
 END
END


Тут нет ничего лишнего?
24 дек 11, 11:24    [11819067]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите с простенькой процедурой  [new]
antitroll
Guest
poiree89, возьми любой самый простой учебник по программированию для скл сервера

а вообще - какой толстый троллинг
24 дек 11, 11:32    [11819076]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить