Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Возврат значения из хранимой процедуры (Access & SQL)  [new]
NickBell
Member

Откуда: Tbilisi
Сообщений: 2843
В SQL создана хранимая процедура. Я хочу получить значение @patient_count в Access, только не нашла как это можно сделать.

ALTER PROCEDURE [dbo].[proc_count_patients_visit]
	@date_1 Date,
	@date_2 Date,
	@patient_count int output
AS
SET NOCOUNT ON; 

select @patient_count = Count(id_patient_history)	
FROM patients_history 
WHERE momartvis_tarigi Between @date_1 And @date_2
return @patient_count
GO


Dim t As Integer
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_count_patients_visit")
qdf.SQL = "EXEC proc_count_patients_visit @date_1='" & Format(Me.date_1, "yyyymmdd") & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
qdf.ReturnsRecords = True

t = "@patient_count" ?????
20 мар 17, 20:11    [20315478]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
guest_rusimport
Guest
NickBell,
посмотрите этот топик http://www.sql.ru/forum/206930/vozvrat-znacheniya-iz-hranimoy-procedury
20 мар 17, 20:34    [20315535]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
NickBell
Member

Откуда: Tbilisi
Сообщений: 2843
Нет, с Ado не пошло.
Что с Dao не нашла примеров.
20 мар 17, 22:20    [20315747]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
guest_rusimport
Guest
NickBell,
http://www.sql.ru/forum/439323/dao-vozvrat-znacheniya-iz-hp-v-msa97-kak
20 мар 17, 22:32    [20315772]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
guest_rusimport
Guest
[quot NickBell]
попробуйте так
Dim rst AS DAO.Recordset
Dim t As Integer
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_count_patients_visit")
qdf.SQL = "EXEC proc_count_patients_visit @date_1='" & Format(Me.date_1, "yyyymmdd") & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
qdf.ReturnsRecords = True
set rst = qdf.OpenRecordset(dbOpenSnapshot)
t=rst.Fields(0)
20 мар 17, 22:47    [20315791]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
NickBell
Member

Откуда: Tbilisi
Сообщений: 2843
guest_rusimport,

Да, такой пример для Дао подошел. Большое спасибо за помощь.
21 мар 17, 00:17    [20315910]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
NickBell
Member

Откуда: Tbilisi
Сообщений: 2843
NickBell
guest_rusimport,

Да, такой пример для Дао подошел. Большое спасибо за помощь.


В хранимой процедуре для SQL заменила следующим образом:
ALTER PROCEDURE [dbo].[proc_count_patients_visit]
	@date_1 Date,
	@date_2 Date
AS
SET NOCOUNT ON; 

select Count(id_patient_history) AS RETURN_VALUE
FROM patients_history 
WHERE momartvis_tarigi Between @date_1 And @date_2

---------------
Private Sub cmd_count_visit_Click()
Dim rst As DAO.Recordset
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_count_patients_visit")
qdf.SQL = "EXEC proc_count_patients_visit @date_1='" & Format(Me.date_1, "yyyymmdd") & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
Me.count_visit = rst.Fields(0)
End Sub
21 мар 17, 08:55    [20316148]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
vladK
Member

Откуда: Харьков
Сообщений: 816
Заменять процедуру не всегда есть возможность, поэтому для DAO делается так:
1)процедура остается как есть, она что то возвращает посредством RETURN
2)скрипт вызова процедуры, т.е. то что передается в свойство QueryDef.SQL переписывается так:
SET NOCOUNT ON;
DECLARE @retVal int;
EXEC [dbo].[proc_count_patients_visit] @d1, @d2, @pOut
SELECT @retVal;
10 апр 17, 11:30    [20384296]     Ответить | Цитировать Сообщить модератору
 Re: Возврат значения из хранимой процедуры (Access & SQL)  [new]
vladK
Member

Откуда: Харьков
Сообщений: 816
Поправка (это как раз и ключевой момент), третья строка д.б.:
EXEC @retVal = [dbo].[proc_count_patients_visit] @d1, @d2, @pOut
10 апр 17, 11:34    [20384316]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить