Главная > Работа с базами данных на языке C#
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

4.2.3. Параметризованные запросы к БД

На практике часто возникает потребность получить информацию из БД по некоторому заданному значению «входных» данных (параметру) запроса. Такие запросы называются параметризированными, а соответствующие процедуры создаются с параметрами.

Например, для получения записи в таблице «Туристы» по заданной фамилии создадим следующую процедуру:

create proc proc_p1 @Фамилия nvarchar(50)
as
select *
from Туристы
where Фамилия=@Фамилия

После знака @ указывается название параметра и его тип. Таким образом, для параметра с именем Фамилия был выбран тип nvarchar c количеством символов 50, поскольку в самой таблице для поля «Фамилия» установлен этот тип. Попытка запустить процедуру командой exec proc_p1 приводит к появлению сообщения об отсутствующем параметре.

Процедуру необходимо запускать следующим образом:

exec proc_p1 'Андреева'

В результате выводится запись, соответствующая фамилии «Андреева» (рис. 68).

Рис. 68. Запуск процедуры proc_p1

Очевидно, что если в качестве параметра указать строку, отсутствующую в таблице, результатом выполнения процедуры будет пустая строка.

В таблице 14 приводятся примеры хранимых процедур с параметрами.

Таблица 14. Хранимые процедуры с параметрами

Продолжение таблицы 14.

Окончание таблицы 14.

Процедуры с выходными параметрами позволяют возвращать значения, получаемые в результате обработки SQL-конструкции при подаче определенного параметра. Представим, что нам нужно получать фамилию туриста по его коду (полю «Код туриста»). Создадим следующую процедуру:

create proc proc_po1
@TouristID int,
@LastName nvarchar(60) output
as
select @LastName = Фамилия from Туристы where [Код туриста] = @TouristID

Оператор output указывает на то, что выходным параметром здесь будет @LastName. Запустим эту процедуру для получения фамилии туриста, значение поля «Код туриста» которого равно «4»:

declare @LastName nvarchar(60)
exec proc_po1 '4',
@LastName output
select @LastName

Оператор declare нужен для объявления поля, в которое будет выводиться значение. Получаем фамилию туриста (рис. 69):

Рис. 69. Результат запуска процедуры proc_po1

Рис. 70. Выполнение процедуры proc_po1. Применение псевдонима

Для задания названия столбца можно применить псевдоним:

declare @LastName nvarchar(60)
exec proc_po1 '4',
@LastName output
select @LastName as 'Фамилия туриста'

Теперь столбец имеет заголовок (рис. 70).

В таблице 15 приводятся примеры хранимых процедур с входными и выходными параметрами.

Таблица 15. Хранимые процедуры с входными и выходными параметрами

Продолжение таблицы 15

Окончание таблицы 15

Для удаления хранимой процедуры используется оператор drop:

drop proc proc1

Здесь proc1 - название процедуры (см. табл. 13 под № 1).

 

1
Оглавление
email@scask.ru