Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Помогите ламеру, плиз! sp_executesql

9 views
Skip to first unread message

Soloshenko Dmitriy

unread,
Oct 19, 2006, 2:34:10 AM10/19/06
to
Уже неделю бьюсь над процедурой. Последний вариант делает следующее:
PRINT @SQLQuery;

EXECUTE sp_executesql @SQLQuery;

В окне Output имеем:
SELECT TimeMessage, Nick, ToNick, Chanel, TextMessage FROM vChat WHERE
(TimeMessage >= @DateFirst) AND (TimeMessage <= @DateLast) AND (CharId =
@CharID)
Must declare the scalar variable "@DateFirst".

Хотя в коде процедуры имеются такие стороки:

ALTER PROCEDURE dbo.pChat

(

/*Начальная и конечная дата*/

@DateFirst SmallDateTime = NULL,

@DateLast SmallDateTime = NULL,

.....

)

/*Расчет временного интервала*/

DECLARE @TimeMin SmallDateTime;

DECLARE @TimeMax SmallDateTime;

SELECT @TimeMin= MIN(TimeMessage), @TimeMax = MAX(TimeMessage) FROM vChat;


IF (@DateFirst IS NOT NULL) SELECT @DateFirst = @TimeMin;

Не дайте умереть!


Dmitry Novikov

unread,
Oct 19, 2006, 3:53:35 AM10/19/06
to
Всем привет!

"Soloshenko Dmitriy" сообщил/сообщила в новостях следующее:


> Уже неделю бьюсь над процедурой. Последний вариант делает следующее:
> PRINT @SQLQuery;
>
> EXECUTE sp_executesql @SQLQuery;

Здесь надо так:

EXECUTE sp_executesql @SQLQuery, N'@DateFirst SmallDateTime, @DateLast SmallDateTime, @CharID int', @DateFirst, @DateLast, @CharID

Как-то так, если не опечатался нигде.

> В окне Output имеем:
> SELECT TimeMessage, Nick, ToNick, Chanel, TextMessage FROM vChat WHERE
> (TimeMessage >= @DateFirst) AND (TimeMessage <= @DateLast) AND (CharId =
> @CharID)
> Must declare the scalar variable "@DateFirst".

Внимательнее читай описание sp_executesql в BOL. Там написано, как с параметрами работать.


> Не дайте умереть!

Как можно-с...


С наилучшими пожеланиями, Дмитрий.
dim_nУБРАТЬrnivcРУССКИЕkisБУКВЫru


0 new messages