Параметры в SQL Server 2008 - PullRequest
1 голос
/ 01 ноября 2011

У меня есть хранимая процедура, которая извлекает данные для отчета.У меня проблема с параметрами.У меня есть пара временных таблиц и некоторые соединения, которые работают, поэтому я опустил их ниже.Проблема заключается в следующей строке:

WHERE
SeminarDivision = @SeminarDivision AND SeminarType = @SeminarType

Когда я добавляю предложение where для использования параметров моего семинара, сохраненный процесс ничего не возвращает, но мне нужно сгенерировать отчет на основе этих двух параметров.Так куда же идут параметры?Кто-нибудь может помочь?

@StartDate DateTime,
@EndDate DateTime,
@SeminarDivision VARCHAR(50),
@SeminarType VARCHAR(50)
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

      ... OMITTED    
SELECT 
    WL.PID,
    CONVERT(varchar(20), upper(substring(FirstName,1,1))+
        LOWER(substring(FirstName,2,19))) AS FirstName,
    CONVERT(varchar(20), upper(substring(LastName,1,1))+
        LOWER(substring(LastName,2,19))) AS LastName,
    S.SeminarDivision,
    S.SeminarType,
    S.StartDate,
    S.SeminarLocation
FROM 
    @tblWaitList WL
    INNER JOIN @tblSeminar S ON WL.SeminarGuid=S.SeminarGuid
WHERE
    SeminarDivision = @SeminarDivision AND SeminarType = @SeminarType
ORDER BY
    LastName,FirstName,StartDate

Ответы [ 3 ]

1 голос
/ 01 ноября 2011

Нет ничего плохого в расположении ваших параметров.

Если данные не возвращаются, это либо потому, что вы не заполнили @tblWaiList или @tblSeminar, либо потому, что записи просто не соответствуют предложению WHERE.

Убедитесь, что ваши параметры имеют значение, которое, как вы думаете, они получают, выполнив print @SeminarDivision и т. Д.

SELECT * FROM @tblSeminar может дать вам подсказку.

1 голос
/ 01 ноября 2011

Вы не правильно настраиваете параметры для вызова.

Попробуйте это в SSMS, измените значения соответственно

EXEC Proc '20110101', '20111101', 'PossibleDivision', 'PossibleType'

Если это не удастся, то покажите нам код "ПУСК"

если это работает, покажите нам, как вы вызываете это из кода клиента

1 голос
/ 01 ноября 2011

Прежде всего, в вашем коде нет ничего плохого, когда вы спрашиваете, куда эти параметры идут, они идут именно туда, куда вы их помещаете.Вопрос в том, являются ли данные, поступающие для SeminarDivision и SeminarType, правильным типом данных?Например, просто в качестве теста скопируйте код в новый запрос кода SQL внутри редактора.Запустите команду без где, если вы получите отличные значения.Теперь измените значение where на

WHERE SeminarDivision = "Possible_Value"

Где возможное значение должно быть возможным ... Если оно возвращает строки, хорошо ... теперь добавьте второе условие, также жестко кодируя значение:

WHERE SeminarDivision = "Possble_Value" AND SeminarType="Possible_Value_2"

Получение каких-либо данных?Возможно ли, что вы хотите OR, а не AND?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...