Получение значений

Bot_1
Дата: 05.12.2007 09:10:34
Здравствуйте!

Раньше работал с базами InterBase и проблем не возникало, а сейчас нужда заставила с SQL.
В базе SQL создал две процедуры

Первая

CREATE PROCEDURE dbo.POL_OUT(
@STAFF_ID int,
@DATE1 datetime,
@DATE2 datetime,
@DATE_OUT varchar(10) out,
@TIME_OUT datetime out,
@ZNACH_TIME varchar(15) out)
as

SET NOCOUNT ON

exec dbo.POL_time_person @STAFF_ID, @DATE1, @DATE2, @DATE_OUT out, @TIME_OUT out, @ZNACH_TIME out

SET NOCOUNT OFF
GO 

Вторая

CREATE proc dbo.POL_TIME_PERSON(
@STAFF_ID int,
@DATE1 datetime,
@DATE2 datetime,
@DATE_OUT varchar(10) OUT,
@TIME_OUT datetime OUT,
@ZNACH_TIME varchar(15) OUT)
as

SET NOCOUNT ON

select  @DATE_OUT=convert(varchar(10),EV_DATE,104), @TIME_OUT=min(EV_TIME)
		from dbo.EVENTS
		where STAFF=@STAFF_ID and EV_CODE=102 and EV_DATE between @DATE1 and @DATE2
		group by EV_DATE
		order by EV_DATE

	if @TIME_OUT<'08:00:00'
		select @ZNACH_TIME='Без опозданий'
	else
		select @ZNACH_TIME=convert(varchar(10),(@TIME_OUT-8),108)
--return @DATE_OUT
--select @ZNACH_TIME='hjnhuig'
return
SET NOCOUNT OFF
GO

и через ADOStoredProc пытаюсь получить значение из первой процедуры, которая вызывает вторую.

ADOStoredProc1.Close;
ADOStoredProc1.Parameters.Refresh;
ADOStoredProc1.Parameters.Items[0].Value:=1;
ADOStoredProc1.Parameters.Items[1].Value:=984;
ADOStoredProc1.Parameters.Items[2].Value:=DateTimePicker1.Date;
ADOStoredProc1.Parameters.Items[3].Value:=DateTimePicker2.Date;
ADOStoredProc1.Parameters.Items[4].Value:='12';
ADOStoredProc1.Parameters.Items[5].Value:=Date;
ADOStoredProc1.Parameters.Items[6].Value:='12';
ADOStoredProc1.ExecProc;

Но ничего не получается. Говорит, что не может вернуть данные или что dataset закрыт.

Помогите пожайлуста, перечитал и книжки и форумы, делаю вроде как написано, но ничего не получается
RENaissance
Дата: 05.12.2007 09:18:55
Точное сообщение об ошибке приведите.

Posted via ActualForum NNTP Server 1.4

Bot_1
Дата: 05.12.2007 09:25:09
Cannot perfom this operation on a closed dataset
eNose
Дата: 05.12.2007 09:25:56
так сделай ему open.
Bot_1
Дата: 05.12.2007 09:29:07
Если сделать ему Open, то выходит другая ошибка

CommandText does not return a resault set

Кроме того, если я правильно понял, то Open используется для обычного select, а если в процедуре происходят какие-либо преобразования, то надо делать ExecProc
RENaissance
Дата: 05.12.2007 09:29:32
eNose

так сделай ему open.

Какой Open, если его хранимка не возвращает набор данных?!

Posted via ActualForum NNTP Server 1.4

RENaissance
Дата: 05.12.2007 09:31:20
Bot_1

Cannot perfom this operation on a closed dataset

Ищите место в коде (событии), в котором у Вас идет попытка работать с закрытым набором данных.

Posted via ActualForum NNTP Server 1.4

Johnmen
Дата: 05.12.2007 09:31:38
Bot_1
Раньше работал с базами InterBase и проблем не возникало, а сейчас нужда заставила с SQL.

По-твоему InterBase не SQL сервер?
Bot_1
Дата: 05.12.2007 09:34:19
Johnmen
По-твоему InterBase не SQL сервер?


Да, но там несколько отличается синтаксис и там у меня проблем не возникало.
Bot_1
Дата: 05.12.2007 09:35:26
RENaissance
Какой Open, если его хранимка не возвращает набор данных?!
Posted via ActualForum NNTP Server 1.4


А что значит не возвращает набор данных? Разве параметры с out не должны содержать набор выходных данных?