powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / ADO
11 сообщений из 11, страница 1 из 1
ADO
    #37285168
define
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нижеприведенный код успешно выполняет хранимую процедуру, которая в MS SQL возвращает строки, а в 1С не возвращает, RecordSet пустой. Почему такое может быть? Параметры не причем - ибо даже вызов процедуры без параметров (все параметры опциональные) должен возвращать результат, а он не возвращает.

Код: plaintext
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.
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Соединение;
Command.CommandTimeout =  60 ;
Command.CommandText = НазваниеХП;
Command.CommandType =  4 ; // ХП

RecordSet = Новый COMОбъект("ADODB.RecordSet");

Command.Parameters.Append(Command.CreateParameter(, ТипПараметра,  1 , Размер, Параметр));

RecordSet = Command.Execute();

Для Каждого Field Из RecordSet.Fields Цикл
	РезультатЗапроса.Колонки.Добавить(СокрЛП(Field.Name));
КонецЦикла;

Если Число(RecordSet.State) <>  0  Тогда
	Пока RecordSet.EOF =  0  Цикл
		
		СтрокаТЗ = РезультатЗапроса.Добавить();
		Для НомерПоля =  0  По Recordset.Fields.Count- 1  Цикл
			СтрокаТЗ[НомерПоля] = RecordSet.Fields(НомерПоля).Value;
		КонецЦикла;
		
		RecordSet.MoveNext();
		
	КонецЦикла;
	
	RecordSet.Close();
КонецЕсли;

...
Рейтинг: 0 / 0
ADO
    #37285266
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
define,
А у вас соединения с БД уже выполнено или нет?
...
Рейтинг: 0 / 0
ADO
    #37285283
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defineПочему такое может быть?

set nocount on в хп вставь, или nextrecordset вызови нужное число раз
...
Рейтинг: 0 / 0
ADO
    #37285295
define
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, соединение установлено, в ХП set nocount on присутствует.
Приведу текст ХП-обертки на всякий случай:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
ALTER  PROCEDURE [dbo].[DMT_Get_Documents]
		@DocTypeID 	int		= - 1 ,
		@fState 	int		=  0 ,
		@repIDD 	nvarchar( 50 )=Null,
		@BeginDate 	datetime= Null,
		@EndDate 	datetime= Null,
		@DocIDD 	nvarchar( 50 )=Null

AS

Set Nocount On

Declare @Result Integer

Exec @Result = DMT_Get_DocumentsEx
		@DocTypeID,
		@fState,
		@repIDD,
		@BeginDate,
		@EndDate,
		@DocIDD,
		 0 

Return @Result
...
Рейтинг: 0 / 0
ADO
    #37285375
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defineГоспода, соединение установлено, в ХП set nocount on присутствует.
Приведу текст ХП-обертки на всякий случай:

Exec @Result = DMT_Get_DocumentsEx


А в DMT_Get_DocumentsEx set nocount on присутствует ?.

Посмотри в qa, например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create procedure proc1
as
  --set nocount on
  select  1 
go
create procedure proc2
as set nocount on
  declare @_ int
  exec @_ = proc1
go

exec proc1

drop procedure proc1
drop procedure proc2
go

qa(1 row(s) affected)
...
Рейтинг: 0 / 0
ADO
    #37285384
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZrenByПосмотри в qa, например


Не смотри, я ошибся.
...
Рейтинг: 0 / 0
ADO
    #37285425
define
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В DMT_Get_DocumentsEx "Set nocount on" также присутствует. Что за беда-то такая...
...
Рейтинг: 0 / 0
ADO
    #37285444
VladimirKr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZrenBy... или nextrecordset вызови нужное число раз
+1
set nocount on подавляет далеко не все сообщения, которые в ADO могут порождать пустые Recordsetы.
...
Рейтинг: 0 / 0
ADO
    #37286308
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
define
Код: plaintext
1.
//RecordSet = Новый COMОбъект("ADODB.RecordSet"); // закоментарь
...
Рейтинг: 0 / 0
ADO
    #37286313
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще не прав. Для 1С нужно создать, правильно
...
Рейтинг: 0 / 0
ADO
    #37286323
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defineВ DMT_Get_DocumentsEx "Set nocount on" также присутствует. Что за беда-то такая...
убери еще значения по умолчанию в описании параметров ХП, на SQL Сервере.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]