Как в коде VB получить значение выходного параметра хранимой процедуры???

Узнай цену своей работы

Формулировка задачи:

делаю клиентское приложение в access 2007 для sql server 2005
обработчик события click:
передаю входные параметры ХП: @b_code, @r_un, @date_z, @srok_v (это всё Input), выходной параметр: @out_msg (output):
CurrentDb.QueryDefs("new_registration").SQL = "use library EXECUTE new_registration @b_code='" & Me.ПолеСоСписком20.Value & "', @r_un='" & [ПолеСоСписком3] & "', @date_z='" & Me.Поле58.Value & "', @srok_v='" & Me.Поле38.Value & "', @out_msg=1 "
выполняю запрос:
DoCmd.OpenQuery ("new_registration")
запрос хорошо отрабатывается, но вот не мзнаю, как в VB получить значение выходного параметра @out_msg (int) !!!
вот сама ХП:
ALTER proc [dbo].[new_registration]
@b_code char(10), @r_un int, @date_z datetime, @srok_v datetime=null, @out_msg int output
as
exec ostatok /*обращаюсь к процедуре подсчета текущего числа экземпляров каждой книги по каждому залу*/
declare @rr char(10)
set @rr=(select library.dbo.readers.rr_id from library.dbo.readers where library.dbo.readers.reader_un=@r_un) /*вычисляю номер зала, за которым закреплен читатель*/
if (select book_ost from library.dbo.book_count where library.dbo.book_count.book_code=@b_code and library.dbo.book_count.rr_id=@rr)>0 /*определяю наличие экземпляров (>=1) выбранной книги в зале*/
and (select library.dbo.readers.Date_vyp from library.dbo.readers where library.dbo.readers.reader_un=@r_un) is NULL /*"валидация" читателя*/
begin
INSERT INTO Registration (book_code, reader_un, date_zakr, srok_vozvr) VALUES (@b_code, @r_un, convert(datetime,@date_z,104), convert(datetime,@srok_v,104)) /*если хотя бы один экземпляр выбранной книги имеется в наличии, осуществляю акт регистрации записи в регистрационном журнале*/
exec ostatok /*обновляю сведения о текущем количестве книг*/
set @out_msg=1
end
else
begin
set @out_msg=0
end
return @out_msg
Помогите, пожалуйста, братцы, сроки меня поджимают уже!!!!

Решение задачи: «Как в коде VB получить значение выходного параметра хранимой процедуры???»

textual
Листинг программы
<font color="blue">Sub</font> Get_DAO_OutputParam()
<font color="blue">Dim</font> q <font color="blue">As</font> DAO.QueryDef
<font color="blue">Dim</font> txt <font color="blue">As</font> <font color="blue">String</font>
<font color="blue">Dim</font> RetVal <font color="blue">As</font> <font color="blue">Long</font>
<font color="blue">Dim</font> OutParam <font color="blue">As</font> <font color="blue">Long</font>
<font color="blue">Dim</font> r <font color="blue">As</font> DAO.Recordset

txt = <font color="teal">"ODBC;DSN=Radio;UID=sa;PWD=;DATABASE=Radio;Network=DBNMPNTW"</font>
<font color="blue">Set</font> q = CurrentDb.CreateQueryDef(<font color="teal">""</font>)
q.Connect = txt

txt = <font color="teal">"declare @Unicum int "</font> & _
<font color="teal">"      declare @RC int "</font> & _
<font color="teal">"EXEC @RC = GetUNum 401, 'р1', 2, @Unicum OUTPUT "</font> & _
<font color="teal">"select @Rc RetVal, @Unicum OutParam"</font>

q.SQL = txt
q.ReturnsRecords = True
<font color="blue">Set</font> r = q.OpenRecordset
OutParam = r!OutParam <font color="#00AA00">'Output parameter</font>
RetVal = r!RetVal <font color="#00AA00">' Return value</font>
r.<font color="blue">Close</font>: <font color="blue">Set</font> r = <font color="blue">Nothing</font>
q.<font color="blue">Close</font>: <font color="blue">Set</font> q = <font color="blue">Nothing</font>

Debug.<font color="blue">Print</font> RetVal, OutParam
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы