powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как получить курсор из MS SQL
4 сообщений из 4, страница 1 из 1
Как получить курсор из MS SQL
    #35758789
asphalt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1C версия 7.7 файл серверная.
Есть MS SQL с которым обмениваюсь информации через ADO.
И вот потребовалось получить с MS SQL выборку.
ХП запускаю, проблем нет... а куда курсор попадает? Как с ним работать?
...
Рейтинг: 0 / 0
Как получить курсор из MS SQL
    #35758899
testeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
hlcConnStr = "DRIVER={SQL Server};SERVER="+SQLServerIP+";uid="+SQLLogin+";pwd="+SQLPassword+";NETWORK=dbmssocn;LANGUAGE=Russian;"+";ADDRESS="+SQLServerIP;
           
	cnn= СоздатьОбъект("ADODB.Connection");	
	cnn.ConnectionString = hlcConnStr;  
	Попытка
		cnn.Open();      
	Исключение		                                               		
		Предупреждение("Немає зв'язку з сервером " + НазваСервера+"!");
		Возврат;
	КонецПопытки;
   
	rst = СоздатьОбъект("ADODB.Recordset");

	Попытка 		
		rst = cnn.Execute("exec [тут пишем процедуру с параметрами]");
	Исключение	
		cnn.Close();
		Предупреждение(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	Пока rst.EOF <> - 1  Цикл 	
	 	ТаблШапки.НоваяСтрока();                                               
	 	ТаблШапки.coden = rst.Fields("coden").Value;   
		ТаблШапки.daten = rst.Fields("daten").Value;   
		ТаблШапки.namep = rst.Fields("namep").Value;   
		ТаблШапки.suma = rst.Fields("suma").Value;		
	 	rst.MoveNext();
	КонецЦикла;
    
	rst = rst.NextRecordset;                            
	
	Пока rst.EOF <> - 1  Цикл	 	
	 	ТаблНакл.НоваяСтрока();                                               
	 	ТаблНакл.codetovar = rst.Fields("codetovar").Value;   
	 	ТаблНакл.nametovar = rst.Fields("nametovar").Value;   
	 	ТаблНакл.kol = rst.Fields("kol").Value;   
	 	ТаблНакл.cena = rst.Fields("cena").Value;   	 	
	 	rst.MoveNext();
	КонецЦикла;
	
	rst.Close(); 
	cnn.Close();
Процедура возвращает 2 таблицы с сервера!
ТаблНакл и ТаблШапки - ТаблицаЗначений
...
Рейтинг: 0 / 0
Как получить курсор из MS SQL
    #35758986
AiratV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так:

ADOПроцедура = Новый COMОбъект( "ADODB.Command" );
ADOРезультат = Новый COMОбъект( "ADODB.Recordset" );

ADOПроцедура.ActiveConnection = мADOСоединение;
ADOПроцедура.CommandTimeout = 5000;
ADOПроцедура.Prepared = "True";
ADOПроцедура.CommandText = "EXEC [ процедура ] ";

Попытка
ADOРезультат = ADOПроцедура.Execute();
Исключение
Сообщить( "Невожможно выполнить запрос:" + Символы.ПС + ADOПроцедура.CommandText, СтатусСообщения.Важное );
Возврат NULL;
КонецПопытки;

А потом обход ADOРезультат
...
Рейтинг: 0 / 0
Как получить курсор из MS SQL
    #35759225
asphalt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
testeron
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
   
	rst = СоздатьОбъект("ADODB.Recordset");

	Попытка 		
		rst = cnn.Execute("exec [тут пишем процедуру с параметрами]");
	Исключение	
		cnn.Close();
		Предупреждение(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	Пока rst.EOF <> - 1  Цикл 	
	 	ТаблШапки.НоваяСтрока();                                               
	 	ТаблШапки.coden = rst.Fields("coden").Value;   
		ТаблШапки.daten = rst.Fields("daten").Value;   
		ТаблШапки.namep = rst.Fields("namep").Value;   
		ТаблШапки.suma = rst.Fields("suma").Value;		
	 	rst.MoveNext();
	КонецЦикла;
   


Спасибо, все получилось!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как получить курсор из MS SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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