![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Необязательный параметр хранимой процедуры [D6, IB6.x]
Виталя © (2003-10-31 10:35:00)
Можно ли сделать для хранимой процедуры какой-то параметр "необязательным", чтобы он по умолчанию передавался как NULL, если да то как ?
Виталя (2003-11-01 17:42:00) [1]
> Alexandr © (01.11.03 13:09) [10]
Ну в итоге я естественно так и сделала ...(еще вчера)
Alexandr (2003-11-01 13:09:00) [2]
надо не изменять количество параметров в процедуре, а создавать еще одну процедуру - копию и над ней уже изголяться.
И постепенно все приложения перейдут на новую процедуру - тогда старую стереть.
Иначе гемор
Sandman25 (2003-10-31 13:08:00) [3]
[8] Виталя © (31.10.03 13:00)
Нет, не с IB.
Если бы работал с ним, ответил бы на самый первый пост.
Виталя (2003-10-31 13:00:00) [4]
> Sandman25 © (31.10.03 12:09) [6]
> У нас такое иногда используется - в новой версии хранимой
> процедуры добавляется параметр. У тех клиентов, которым
> ставим только хранимую (без апгрейда экзешника), все продолжает
> работать как ни в чем не бывало.
Так значит это все же возможно или вы работаете не с [D6, IB6.x]?
(мне именно для таких целей и надо)
handra (2003-10-31 12:52:00) [5]
[5] Zacho © (31.10.03 12:06)
> handra © (31.10.03 12:00) [4]
И какое отношение это имеет к IB6.x ?
сорьки перепутал
Sandman25 (2003-10-31 12:09:00) [6]
>а нафига?
У нас такое иногда используется - в новой версии хранимой процедуры добавляется параметр. У тех клиентов, которым ставим только хранимую (без апгрейда экзешника), все продолжает работать как ни в чем не бывало.
Но в последнее время мы от этого отказались.
Zacho (2003-10-31 12:06:00) [7]
> handra © (31.10.03 12:00) [4]
И какое отношение это имеет к IB6.x ?
handra (2003-10-31 12:00:00) [8]
Выдержка из BOL:
C. Use a simple procedure with wildcard parameters
This stored procedure returns only the specified authors (first and last names supplied), their titles, and their publishers from a four-table join. This stored procedure pattern matches the parameters passed or, if not supplied, uses the preset defaults.
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = "au_info2" AND type = "P")
DROP PROCEDURE au_info2
GO
USE pubs
GO
CREATE PROCEDURE au_info2
@lastname varchar(30) = "D%",
@firstname varchar(18) = "%"
AS
SELECT au_lname, au_fname, title, pub_name
FROM authors a INNER JOIN titleauthor ta
ON a.au_id = ta.au_id INNER JOIN titles t
ON t.title_id = ta.title_id INNER JOIN publishers p
ON t.pub_id = p.pub_id
WHERE au_fname LIKE @firstname
AND au_lname LIKE @lastname
GO
Alexandr (2003-10-31 11:01:00) [9]
а нафига?
Виталя (2003-10-31 10:46:00) [10]
Да я это имела в виду, жаль.
Zacho (2003-10-31 10:37:00) [11]
Если ты имеешь в виду: сделать так, чтобы при вызове ХП какой-либо параметр можно было не указывать, то - нельзя.