Страница 1 из 1

Вызов хранимой процедуры

Добавлено: 16 апр 2014, 10:31
jonyk
Подскажите пожалуйста как из дизайнера вызвать хранимую процедуру, которая очищает таблицу и заполняет ее новыми данными с учетом параметров. Она располагается в базе данных MS SQL. в самом MS SQL процедура выполняется. Если же я код из этой процедуры вставляю в создаваемый Источник данных в дизайнере, то получаю сообщение об ошибках.
Содержание хранимой процедуры:

Код: Выделить всё

ALTER PROCEDURE [dbo].[proc_ReestrNakCreate] 
	@NomNakFirst varchar(10),	-- номер первой накладной в реестре
	@NomNakLast varchar(10)	-- номер последней накладной в реестре
AS
BEGIN
SET NOCOUNT ON;
	DECLARE 
	@iNak int NOT NULL,
	@iNakLast int NOT NULL,
	@strNak varchar(10),	-- номер накладной в строковом виде
	@NomLen int	NOT NULL   -- количество знаков в номере накладной
	
SET @iNak = cast(@NomNakFirst as int)
SET @iNakLast = cast(@NomNakLast as int)
SET @NomLen = LEN(@NomNakFirst)
	
	-- очищаем таблицу перед наполнением
DELETE FROM T_TMP_ReestrNak
	
	-- наполняем таблицу последовательными значениями
	WHILE @iNak <= @iNakLast
	BEGIN
SET @strNak = CAST(@iNak as varchar)
		WHILE LEN(@strNak) < @NomLen
SET @strNak = '0' + @strNak
		
INSERT INTO T_TMP_ReestrNak
	(NomNak)
	VALUES
	(@strNak)
		
SET @iNak = @iNak + 1
	END
END

Re: Вызов хранимой процедуры

Добавлено: 16 апр 2014, 13:01
Aleksey
Здравствуйте,

Не могли бы вы прислать пример отчета с тестовыми данными для анализа.
А так же, отчетность, в первую очередь, предназначена для вывода данных (выборка из базы данных) и какие либо действия по изменению (удаление, изменение) данных мы не рекомендуются использовать.

Спасибо.

Re: Вызов хранимой процедуры

Добавлено: 16 апр 2014, 13:22
jonyk
Добрый день!

Вот и я не хотел бы в отчете использовать код на изменение данных. Тогда возвращаемся к началу вопроса - каким образом мне соединить таблицу с данными (не изменяемыми) и таблицей, в которой каждый раз при запуске отчета через форму должны обновляться данные.
Отчет еще в процессе разработки и что-то конкретное прислать не имею возможным.

Спасибо

Re: Вызов хранимой процедуры

Добавлено: 16 апр 2014, 14:57
Aleksey
Здравствуйте,

Не могли бы вы более подробно описать свою задачу.

Спасибо.

Re: Вызов хранимой процедуры

Добавлено: 21 апр 2014, 13:01
jonyk
Добрый день!
И все-таки есть ли способы вызвать процедуру proc_ReestrNakCreate из базы данных MS SQL Kcsh дизайнером Stimulsoft?

Спасибо.

Re: Вызов хранимой процедуры

Добавлено: 21 апр 2014, 16:22
Aleksey
Здравствуйте,

Да, вы можете создать новый источник данных, указать тип - "Хранимая процедура" и использовать в запросе свою процедуру.

Спасибо.

Re: Вызов хранимой процедуры

Добавлено: 21 апр 2014, 17:01
jonyk
Добрый день!
Выше я приводил пример хранимой процедуры, которая работает в MS SQL, а в динайнере не работает. Код из этой процедуры можно подставить в пустой отчет.

Спасибо.

Re: Вызов хранимой процедуры

Добавлено: 22 апр 2014, 14:06
Aleksey
Здравствуйте,

Не совсем понятно зачем вы ее целиком хотите в отчет впихнуть(запрос на изменение процедуры ALTER PROCEDURE ...), а не просто вызвать EXEC ... По логике она уже есть у вас на сервере, вам просто необходимо передать ей два параметра и запустить.

Спасибо.

Re: Вызов хранимой процедуры

Добавлено: 22 апр 2014, 16:29
jonyk
Добрый день!
Спасибо огромное! Именно этот результат я и хотел получить.

Re: Вызов хранимой процедуры

Добавлено: 22 апр 2014, 16:38
Aleksey
Здравствуйте,

Всегда рады помочь.