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

Откуда:
Сообщений: 8
Скрипт не срабатывает очередь не очищается, в чем проблема...?

USE [Server1C]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[GetMsg]
	@N INT,
	@Msg VARCHAR(max) ='' output
AS
BEGIN
	
	IF OBJECT_ID('[dbo].[DBQueue'+cast(@N as VARCHAR)+']') IS not NULL AND
		EXISTS(SELECT * FROM sys.objects
        WHERE object_id = OBJECT_ID('[dbo].[DBQueue'+cast(@N as VARCHAR)+']')
        AND type = 'SQ')
	begin
		DECLARE @Query VARCHAR(max);
		DECLARE @tab Table (Msg VARCHAR(max));
	
		SET @Query = 'RECEIVE TOP (1) (cast(cast(message_body AS XML) AS VARCHAR(max))) AS Msg FROM dbo.DBQueue'+cast(@N as VARCHAR)
		Insert into @tab
		exec (@Query) 
		
		Select @Msg = Msg 
		from @tab
	end
END


Сообщение было отредактировано: 12 фев 16, 14:10
12 фев 16, 14:10    [18809175]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
NuLamerYa
'RECEIVE TOP (1) (cast(cast(message_body AS XML) AS VARCHAR(max))) AS Msg FROM dbo.DBQueue'+cast(@N as VARCHAR)

а что Вы ожидатет от вот етой команды то ? При insert exec ?
12 фев 16, 14:12    [18809191]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
NuLamerYa
Member

Откуда:
Сообщений: 8
Считываем сообщение и результат записываем..
12 фев 16, 14:19    [18809248]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
NuLamerYa
Скрипт не срабатывает
Молча?
12 фев 16, 14:24    [18809293]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
NuLamerYa
Считываем сообщение и результат записываем..

Пример F описан по другому RECEIVE
12 фев 16, 14:27    [18809324]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
NuLamerYa
Member

Откуда:
Сообщений: 8
invm
NuLamerYa
Скрипт не срабатывает
Молча?

Мне нужно эту @msg в 1с прочитать
12 фев 16, 14:37    [18809387]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
NuLamerYa
Member

Откуда:
Сообщений: 8
Maxx
NuLamerYa
Считываем сообщение и результат записываем..

Пример F описан по другому RECEIVE

В чем расхождения?
12 фев 16, 14:39    [18809405]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
Glory
Member

Откуда:
Сообщений: 104751
NuLamerYa
Скрипт не срабатывает

Это такое сообщение об ошибке ?

NuLamerYa
очередь не очищается,

странным бы выглядело очищение очереди при несработавшем скрипте

NuLamerYa
в чем проблема...?

Наверное она содержится в сообщении об ошибке
12 фев 16, 14:49    [18809503]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
NuLamerYa
Member

Откуда:
Сообщений: 8
Glory
NuLamerYa
Скрипт не срабатывает

Это такое сообщение об ошибке ?

NuLamerYa
очередь не очищается,

странным бы выглядело очищение очереди при несработавшем скрипте

NuLamerYa
в чем проблема...?

Наверное она содержится в сообщении об ошибке

Сообщения об ошибке нет вот в чем проблема...
12 фев 16, 14:50    [18809519]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
Glory
Member

Откуда:
Сообщений: 104751
NuLamerYa
Сообщения об ошибке нет вот в чем проблема...

Откуда вы тогда знаете, что у вас сработало, а что не сработало ?
12 фев 16, 14:51    [18809525]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
NuLamerYa
Сообщения об ошибке нет вот в чем проблема...
Значит читаете не ту очередь, или в очереди нет сообщений, или вызвали процедуру без указания предложения output.
12 фев 16, 15:07    [18809644]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
NuLamerYa
Member

Откуда:
Сообщений: 8
Glory
NuLamerYa
Сообщения об ошибке нет вот в чем проблема...

Откуда вы тогда знаете, что у вас сработало, а что не сработало ?

После прочтения RECEIVE сообщение в очереди должно убиться...
12 фев 16, 18:20    [18810760]     Ответить | Цитировать Сообщить модератору
 Re: Проблема RECEIVE  [new]
Glory
Member

Откуда:
Сообщений: 104751
NuLamerYa
После прочтения RECEIVE сообщение в очереди должно убиться...

Еще раз вопрос - откуда вы знаете, какие команды вашего скрипта выполнились

ЗЫ
насчет что там кому долджен советую читать хелп

The RECEIVE statement removes received messages from the queue unless the queue specifies message retention. When the RETENTION setting for the queue is ON, the RECEIVE statement updates the status column to 0 and leaves the messages in the queue.
12 фев 16, 18:54    [18810885]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить