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

Откуда: Москва
Сообщений: 1145
Хранимая процедура в MSSQL 2008

DECLARE @res float
	
			

		exec dbo.spDefaultRateFromWWW @codCurrency, @D1, @Res
 
		insert into	Rate_TBL (CodeCurrency,DateRate,Rate) values (@codCurrency, @d1, @Res )
select @Res 

Значение возвращается, а в таблице почемуто поле Rate пустое!!!!
Подскажите, где ошибка?
11 июн 09, 13:12    [7289957]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
Glory
Member

Откуда:
Сообщений: 104760
exec dbo.spDefaultRateFromWWW @codCurrency, @D1 OUTPUT, @Res OUTPUT
11 июн 09, 13:13    [7289972]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
Glory
exec dbo.spDefaultRateFromWWW @codCurrency, @D1 OUTPUT, @Res OUTPUT


OUTPUT спасибо
11 июн 09, 13:37    [7290128]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
MasterZ,

CREATE procedure [dbo].[spGetRate] 

	(
		@codCurrency varchar(3),
		@d date = null
	)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Res float
	DECLARE @D1 date
	if @d is null
		set @D1 = getdate()
	else
		set @D1 = @d
			
	If @codCurrency = 'RUR' 
	begin
		set @res = 1
		select  @res as rate
		return
	end     
	set @Res = (SELECT top (1) Rate FROM Rate_TBL AS R WHERE DateRate=@D1 and CodeCurrency=@codCurrency)

	if not(@res  is null)
	begin
		select @res as rate
		 		
	end
	else
	begin
		exec dbo.spDefaultRateFromWWW @codCurrency, @D1, @Res OUTPUT

		insert into	Rate_TBL (CodeCurrency,DateRate,Rate) values (@codCurrency, @d1 , @Res )   
		select @res as rate - !!!вот в этом месте не выполняется оператор!!! 
		--return @res - прбовал разные варианты
	end
	--select @res as rate - прбовал разные варианты

END

Подскажите почему не выполняется select @res as rate ?
15 июн 09, 09:40    [7298638]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31194
MasterZ
Подскажите почему не выполняется select @res as rate ?
Потому что @res is not null
15 июн 09, 10:12    [7298756]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
alexeyvg
MasterZ
Подскажите почему не выполняется select @res as rate ?
Потому что @res is not null


Не понял, а что тогда будет выводится если @res is null
15 июн 09, 11:27    [7299121]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
MasterZ
alexeyvg
MasterZ
Подскажите почему не выполняется select @res as rate ?
Потому что @res is not null


Не понял, а что тогда будет выводится если @res is null
Лучше скажите, как Вы поняли, что "не выполняется select @res as rate"?
15 июн 09, 11:36    [7299188]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
iap,

возвращается пустое значение, а в таблице запись появляется.
15 июн 09, 11:50    [7299263]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
Glory
Member

Откуда:
Сообщений: 104760
MasterZ
iap,

возвращается пустое значение, а в таблице запись появляется.

Значит все таки select @res as rate - !!!вот в этом месте не выполняется оператор!!! выполняется ?
15 июн 09, 11:52    [7299285]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
Glory
MasterZ
iap,

возвращается пустое значение, а в таблице запись появляется.

Значит все таки select @res as rate - !!!вот в этом месте не выполняется оператор!!! выполняется ?


Блин, точно выполняется, но почему возвращается пустое значение?
15 июн 09, 12:21    [7299450]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
Glory
Member

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

возвращается пустое значение, а в таблице запись появляется.

Значит все таки select @res as rate - !!!вот в этом месте не выполняется оператор!!! выполняется ?


Блин, точно выполняется, но почему возвращается пустое значение?

Наверное потому, что оно там и записано.
15 июн 09, 12:26    [7299492]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
Glory
MasterZ
Glory
MasterZ
iap,

возвращается пустое значение, а в таблице запись появляется.

Значит все таки select @res as rate - !!!вот в этом месте не выполняется оператор!!! выполняется ?


Блин, точно выполняется, но почему возвращается пустое значение?

Наверное потому, что оно там и записано.


insert into Rate_TBL (CodeCurrency,DateRate,Rate) values (@codCurrency, @d1 , @Res - вот здесь есть!!!)
select @Res - а здесь уже записано пустое!!! as rate
15 июн 09, 12:32    [7299525]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
Glory
Member

Откуда:
Сообщений: 104760
MasterZ

insert into Rate_TBL (CodeCurrency,DateRate,Rate) values (@codCurrency, @d1 , @Res - вот здесь есть!!!)
select @Res - а здесь уже записано пустое!!! as rate

Ужас просто.
15 июн 09, 12:33    [7299538]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
Glory
MasterZ

insert into Rate_TBL (CodeCurrency,DateRate,Rate) values (@codCurrency, @d1 , @Res - вот здесь есть!!!)
select @Res - а здесь уже записано пустое!!! as rate

Ужас просто.

Не понял про ужас, где ошибка?
15 июн 09, 12:37    [7299556]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
Glory
Member

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

insert into Rate_TBL (CodeCurrency,DateRate,Rate) values (@codCurrency, @d1 , @Res - вот здесь есть!!!)
select @Res - а здесь уже записано пустое!!! as rate

Ужас просто.

Не понял про ужас, где ошибка?

Как минимум где-то в логике. Потому что просто так само по себе знаечение переменной не может меняться между соседними строками скрипта. Если конечно они у вас соседние
15 июн 09, 12:44    [7299584]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
MasterZ,

триггеры на вставку у таблицы Rate_TBL есть?
Может, там вставляемое значение @Res на что-нибудь заменяется?
15 июн 09, 12:49    [7299613]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
MasterZ,

триггеры на вставку у таблицы Rate_TBL есть?
Может, там вставляемое значение @Res на что-нибудь заменяется?
Вставьте
SELECT QUOTENAME(@Res)[@Res]
перед INSERTом. Что получится?
15 июн 09, 12:51    [7299623]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
Glory,
конечно соседние вот весь скрипт и так тоже возвращает пустое значение.

CREATE procedure [dbo].[spGetRate] 

	(
		@codCurrency varchar(3),
		@d datetime = null
	)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Res float
	DECLARE @Res1 float
	
	DECLARE @D1 date
	if @d is null
		set @D1 = getdate()
	else
		set @D1 = @d
			
	If @codCurrency = 'RUR' Or @codCurrency = 'RUB'
	begin
		set @res = 1
		select  @res as rate
		return
	end     
	set @Res = (SELECT top (1) Rate FROM Rate_TBL AS R WHERE DateRate=@D1 and CodeCurrency=@codCurrency)

	if not(@res  is null)
	begin
		select @res as rate
		 		
	end
	else
	begin
		exec dbo.spDefaultRateFromWWW @codCurrency, @D1, @Res OUTPUT
		set @Res1 = @Res ;
		insert into	Rate_TBL (CodeCurrency,DateRate, Rate) values (@codCurrency, @d1 , @Res );   
		select @Res1 as rate;
		--return @res
	end
	--select @res as rate

END
15 июн 09, 12:51    [7299624]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
iljy
Guest
MasterZ,

а вы уверены, что
exec dbo.spDefaultRateFromWWW @codCurrency, @D1, @Res OUTPUT
присваивает @Res непустое значение?
15 июн 09, 13:00    [7299688]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1145
iljy
MasterZ,

а вы уверены, что
exec dbo.spDefaultRateFromWWW @codCurrency, @D1, @Res OUTPUT
присваивает @Res непустое значение?


Вот эта строка выполняется и в таблице появляется запись и Rate заполнено правильным числом

insert into	Rate_TBL (CodeCurrency,DateRate, Rate) values (@codCurrency, @d1 , @Res );
15 июн 09, 13:07    [7299761]     Ответить | Цитировать Сообщить модератору
 Re: Не добавляется float  [new]
iljy
Guest
MasterZ,

чудеса бывают, но редко и несмешные. так что давайте скрипт таблицы и примеры данных, заодно и процедуру spDefaultRateFromWWW. и версию сервера не забудьте
15 июн 09, 13:16    [7299825]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить