Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Работа с Хранимыми процедурами. Возможно ли? (число прочтений - 3098 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Работа с Хранимыми процедурами. Возможно ли?
16. Июня 2006 :: 09:05
Печать  
У меня есть обработка следующего вида:
      
Код
Выбрать все
...
	  Соединение=СоздатьОбъект("ADODB.Connection");
	Соединение.ConnectionTimeOut =60000;
	Соединение.Open(ConnectionString);
	  Cmd = СоздатьОбъект("ADODB.Command");
	Cmd.ActiveConnection = Соединение;

	  Cmd.CommandText = "procudure_name";  //Хранимая процедура
	Cmd.CommandType = ТипКомандыАДО("adCmdStoredProc");
	prm0=Cmd.CreateParameter("asName", КонстантаАДО("advarchar"),ТипПараметраАДО("adParamInput"), 20, "");
	Cmd.Parameters.Append( prm0 );
	prm1=Cmd.CreateParameter("asDate_Zajavka", КонстантаАДО("advarchar"),ТипПараметраАДО("adParamInput"), 20, "");
	Cmd.Parameters.Append( prm1 );
	prm2=Cmd.CreateParameter("asDate_Reg", КонстантаАДО("advarchar"),ТипПараметраАДО("adParamInput"),20 , "");
	Cmd.Parameters.Append( prm2 );
	prm3=Cmd.CreateParameter("asCity", КонстантаАДО("advarchar"),ТипПараметраАДО("adParamInput"),9 , "");
	Cmd.Parameters.Append( prm3 );
	  ...
	  ТЗ.ВыбратьСтроки();
	  Пока ТЗ.ПолучитьСтроку()=1 цикл
		 Cmd.Parameters(0).Value=ТЗ.Имя;
		 Cmd.Parameters(1).Value=ВДату(ТЗ.ДатаДок);
	     Cmd.Parameters(2).Value=ВДату(ТЗ.ДатаРег);
		 ...
	  КонецЦикла

	  Попытка
		Cmd.Execute(); //Выполнение и получение набора данных
	Исключение
		Сообщить("Ошибка!","!");
		Для й=0 по КоличествоПараметров Цикл
			Сообщить(Строка(й))+" = "+СокрЛП(Строка(Cmd.Parameters(й).Value)))
		КонецЦикла;
	КонецПопытки;

	ВозвращаемоеЗначение = Число(Cmd.Parameters(87).Value);
	 


     
КоличествоПараметров - под сотню.
Вопрос. Можно ли как-нибудь, применяя 1с++ упростить работу такого рода? И, воовще, возможна ли работа с хранимыми процедурами?
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с Хранимыми процедурами. Возможно ли?
Ответ #1 - 16. Июня 2006 :: 09:09
Печать  
может ты абстрактно опишешь задачу, а мы те попсоветуем, если это возможно, как с помощью 1С++ можно без ХП обойтись?
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа с Хранимыми процедурами. Возможно ли?
Ответ #2 - 16. Июня 2006 :: 10:15
Печать  
Цитата:
может ты абстрактно опишешь задачу, а мы те попсоветуем, если это возможно, как с помощью 1С++ можно без ХП обойтись?


Проблема примерно такая: есть база в 1С, куда вбиваются доовора. Эти же договора должны вбиваться в ДругуюПрограмму. В целях экономии рабочего персонала была написана обработочка по выгрузке этих договоров и всех сопутствующих реквезитов из 1С в ДрПрограмму. Методика переноса - см (0).
Я, конечно, понимаю, что эти тексты ХП можно скопировать, немного подредактировать, присвоить переменной ТекстЗапроса и потом использовать ВыполнитьИнструкцию(). Но, мне почему-то, кажется, что это как-то криво, да и тексты хранимых процедур слишком большие, вот и хочется использовать именно ХП.
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Работа с Хранимыми процедурами. Возможно ли?
Ответ #3 - 27. Июня 2006 :: 12:50
Печать  
JohnyDeath писал(а) 16. Июня 2006 :: 09:05:
Работа с Хранимыми процедурами. Возможно ли?

Возможно.
Варианты:
(а) ПриНачалеРаботыСистемы создаешь #Процедуру
(б) ПриНачалеРаботыСистемы проверяешь монопольность режима, и если монопольный, то создаешь Процедуру.

Или я неправильно понял вопрос?
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать