none
Запрос RRS feed

  • Вопрос

  • Доброй ночи. Извините что не так, но проблема следующая. Например, есть таблица с данными пусть фрукты. Хочу создать хранимую процедуру с тремя параметрами. Например по столбцу НАЗВАНИЕ, параметр с значением ЯБЛОКО. Извлекаю, получается. Добавляю по столбцу ОПИСАНИЕ второй параметр ЗЕЛЕНОЕ. Извлекаю, получается.  Добавляю по столбцу РАЗМЕР третий параметр БОЛЬШОЕ. Извлекаю, получается. Итак я извлек ЯБЛОКО ЗЕЛЕНОЕ БОЛЬШОЕ. Теперь я хочу получить только ЯБЛОКИ по первому параметру. У меня написана хранимая процедура с тремя входными параметрами. Какие значения должны принимать второй и третий параметры соот-но, чтобы получить все яблоки. Соотв-но тоже самое про двум параметрам, получить все ЯБЛОКИ ЗЕЛЕНЫЕ.

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

    • Перемещено Abolmasov Dmitry 22 апреля 2011 г. 11:36 (От:Настольные ПК)
    6 апреля 2011 г. 19:34

Ответы

  • Передавай не строку DBNull.Value.ToString(). Передавай именно DBNull.Value, как параметр.

    Или передавай пустую строку, как есть. И перепиши процедуру с  (Name = @Name) OR (@Name = N'')


    My blog | My pet project
    • Помечено в качестве ответа ДДВ 7 апреля 2011 г. 13:40
    7 апреля 2011 г. 13:22
    Модератор

Все ответы

  • Передавай в качестве параметра DBNull.Value, а в логику процедуры вшей проверку на null'и и в соответствии с этим возвращай данные.
    7 апреля 2011 г. 4:36
    Модератор
  • Решил проверить с одним параметром вот таким образом

    Хранимая процедура SELECT * FROM Table WHERE Name=@name ( где @name передаю например name=DBNull.Value.ToString() ). Никаких яблок я не получаю.

    7 апреля 2011 г. 11:05
  • NULL != NULL

    напиши WHERE (Name = @Name) OR (@Name IS NULL)


    My blog | My pet project
    7 апреля 2011 г. 12:25
    Модератор
  • У меня текстовое поле. Я ввожу значение все работает, если ничего не ввожу не работае. Моя проблема, я не могу передать значение NULL в процедуру. Сама процедура в SQL Server работает, даже если ввожу значение NULL. Спасибо за понимание.

    7 апреля 2011 г. 13:11
  • Передавай не строку DBNull.Value.ToString(). Передавай именно DBNull.Value, как параметр.

    Или передавай пустую строку, как есть. И перепиши процедуру с  (Name = @Name) OR (@Name = N'')


    My blog | My pet project
    • Помечено в качестве ответа ДДВ 7 апреля 2011 г. 13:40
    7 апреля 2011 г. 13:22
    Модератор
  • Спасибо я понял как передавать параметр. В моем варианте если переписать процедуру так как показано (Name = @Name) OR (@Name = N'')

    То работает и первый вариант - DBNull.Value.ToString()     и второй - если передать пустую строку.

    7 апреля 2011 г. 13:40