Иллюстрированный самоучитель по VB.NET

       

Вызов хранимой процедуры


Вызов хранимой процедуры

В следующем примере используется хранимая процедура с именем getalbumname. Процедура вызывается с одним параметром и выбирает из базы данных albums запись альбома с заданным именем:

create procedure getalbumbyname

@albumname varchar(255) As

select *from albums where albumname = @albumname

Выборка данных с использованием хранимой процедуры организована аналогично простому запросу к базе данных Northwind:

Dim dbCmd As SqlCommand = New SqlCommand(

"execute getalbumbyname 'Operation Mindcrime'")

Try

mySQLConn =New SqlConnection(

"user id=sa:password=password;" & _

"database=albums;server=i-ri3")

mySQLConn.Open()

dbCmd.Connection = mySQLConn

dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult)

' И т.д.

End Try

Как видите, программа почти не изменилась, разве что команда SQL, использовавшаяся для создания объекта Sql Command, превратилась в команду вызова хранимой процедуры getalbumbyname, которой в качестве параметра передается имя интересующего нас альбома. Конечно, после вызова ExecuteReader цикл перебора записей не нужен, поскольку мы точно знаем, что хранимая процедура возвращает всего одну запись.

Вместо того чтобы передавать параметр хранимой процедуры в строке вызова, можно воспользоваться коллекцией Parameters объекта SQLCommand. Мы решили, что вариант с непосредственной передачей параметров в команде SQL проще. Конечно, это возможно лишь в том случае, если значение параметра известно во время написания программы, в противном случае приходится использовать коллекцию Parameters.



Содержание раздела