Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / ADO / 11 сообщений из 11, страница 1 из 1
30.05.2011, 12:23
    #37285168
define
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO
Нижеприведенный код успешно выполняет хранимую процедуру, которая в 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
30.05.2011, 13:04
    #37285266
Dinamo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO
define,
А у вас соединения с БД уже выполнено или нет?
...
Рейтинг: 0 / 0
30.05.2011, 13:11
    #37285283
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO
defineПочему такое может быть?

set nocount on в хп вставь, или nextrecordset вызови нужное число раз
...
Рейтинг: 0 / 0
30.05.2011, 13:19
    #37285295
define
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO
Господа, соединение установлено, в ХП 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
30.05.2011, 13:53
    #37285375
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO
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
30.05.2011, 13:55
    #37285384
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO
ZrenByПосмотри в qa, например


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


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