Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
ИльдарSR
Member

Откуда:
Сообщений: 466
Добрый день.
Есть проблема не знаю как ее решить.
Есть процедура
CREATE PROCEDURE vru_Test
@a_number varchar(125) OUTPUT,
@b_number varchar(125) OUTPUT,
@txt_sms varchar(255) OUTPUT,
@incoming_id int OUTPUT,
@path_file varchar(255)OUTPUT,
@name_file varchar(255)OUTPUT,
@num_attempt tinyint OUTPUT,
@max_attempt tinyint OUTPUT,
@true_file_f int OUTPUT
********************

Внутри процедуры запучскатеся вторая процедура
IF @num_attempt=@max_attempt
BEGIN

EXECUTE vru_SendArchivoIncoming @incoming_id=@incoming_id,
@result_delivery_id=4
END



после того как я запускаю ее vru_Test происходит ошибка
Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa



Заранее благодарен
9 ноя 09, 16:14    [7903069]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
А полный текст обеих процедур увидеть можно?
9 ноя 09, 16:23    [7903156]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
ИльдарSR
Member

Откуда:
Сообщений: 466
ALTER PROCEDURE [dbo].[vru_GetIncomMsgFromQueue]
@a_number varchar(125) OUTPUT,
@b_number varchar(125) OUTPUT,
@txt_sms varchar(255) OUTPUT,
@incoming_id int OUTPUT,
@path_file varchar(255)OUTPUT,
@name_file varchar(255)OUTPUT,
@num_attempt tinyint OUTPUT,
@max_attempt tinyint OUTPUT,
@true_file_f int OUTPUT
AS
BEGIN
BEGIN TRY
declare
@result_delivery_id int,
@incoming_id_1 int
SET @max_attempt=(SELECT max_attempt_send_sms FROM Configuration)


SELECT @a_number=a_number,
@b_number=b_number,
@txt_sms=txt_sms,
@incoming_id=i.incoming_id,
@path_file=path_file,
@name_file=name_file,
@num_attempt=num_attempt,
@true_file_f=true_file_f
FROM incoming i WITH (INDEX (XPKIncoming))
INNER JOIN
queue_message_incoming q WITH (INDEX (IX_que_id))
ON (i.incoming_id=q.incoming_id)
WHERE i.incoming_id = (
SELECT MIN(incoming_id) FROM queue_message_incoming
WHERE status_send_id IS NULL OR status_send_id=2 and true_file_f=0
)

IF @@ROWCOUNT = 0
BEGIN
PRINT 'сообщения все взяты из очереди'
SET @max_attempt=null
SET @incoming_id=0
END ELSE

IF @num_attempt=@max_attempt
BEGIN

EXECUTE vru_SendArchivoIncoming @incoming_id=@incoming_id,
@result_delivery_id=4
END ELSE

UPDATE queue_message_incoming WITH (TABLOCK)
SET status_send_id=1,true_file_f=1
WHERE incoming_id = (
SELECT MIN(incoming_id) FROM queue_message_incoming
WHERE status_send_id IS NULL OR status_send_id=2 and true_file_f=0
)
RETURN 1


END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;

SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();

RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
RETURN -1
END CATCH

END


ALTER PROCEDURE [dbo].[vru_SendArchivoIncoming]
@incoming_id int,
@result_delivery_id int
AS
BEGIN

SELECT @incoming_id=i.incoming_id
FROM incoming_id i inner join dbo.queue_message_incoming q ON(i.incoming_id=q.incoming_id)
WHERE i.incoming_id=incoming_id and status_send_id<>5
BEGIN TRANSACTION
INSERT INTO dbo.archiv_incoming(incoming_id,result_delivery_id)
VALUES(@incoming_id,@result_delivery_id)
COMMIT TRANSACTION
END
9 ноя 09, 16:24    [7903171]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

а если еще и error_procedure(), error_line() вывести?

Posted via ActualForum NNTP Server 1.4

9 ноя 09, 16:31    [7903233]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
ИльдарSR
Member

Откуда:
Сообщений: 466
вывел такую ошибку
Conversion failed when converting the nvarchar value 'vru_SendArchivoIncoming' to data type int.
9 ноя 09, 16:36    [7903280]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id',  [new]
iljy
Member

Откуда:
Сообщений: 8711
ИльдарSR,

а зачем вам вообще в процедуре параметр @incoming_id?

ALTER PROCEDURE [dbo].[vru_SendArchivoIncoming]
@incoming_id int,
@result_delivery_id int
AS
BEGIN

SELECT @incoming_id=i.incoming_id
FROM incoming_id i inner join dbo.queue_message_incoming q ON(i.incoming_id=q.incoming_id)
WHERE i.incoming_id=incoming_id and status_send_id<>5
Вы его значение сразу теряете, а он входной. Может проще переменную локальную сделать?
Ну и заодно полный текст ошибки приведите.
9 ноя 09, 16:37    [7903288]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
ИльдарSR
вывел такую ошибку
Conversion failed when converting the nvarchar value 'vru_SendArchivoIncoming' to data type int.
Ошибка в 17й строке.
9 ноя 09, 16:37    [7903289]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
ИльдарSR
Member

Откуда:
Сообщений: 466
iljy и Гавриленко Сергей Алексеевич
Большое спасибо все получилось.
9 ноя 09, 16:41    [7903329]     Ответить | Цитировать Сообщить модератору
 Re: Procedure or function 'vru_SendArchivoIncoming' expects parameter '@incoming_id', which wa  [new]
ИльдарSR
Member

Откуда:
Сообщений: 466
Забыл
daw тоже огромное спасибо.
9 ноя 09, 16:42    [7903334]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить