Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Программирование

Как отправить запрос из 1с 7.7 в оракл(Супермаг) и потом отобразить результат : Программирование

24.11.2024 16:00


09.03.2015 16:10
подскажите как отправить запрос из 1с 7.7 в оракл(Супермаг) и потом отобразить результат.

Например внешняя обработка, вводим артикул и получаем его название!
понятия сильного в этом не имею. есть строка подключения ("DRIVER={Microsoft ODBC for Oracle};UID=***;PWD=***;SERVER=******")
09.03.2015 18:30
Не проверял, но на мисте пишут примерно такое

Код:
Соединение=Новый COMОбъект ("ADODB.Connection");
Соединение.ConnectionString = "Provider=msdaora;Data Source=tmagic;User Id=sys;Password=nctsys;";
Соединение.ConnectionTimeout = 15;
Соединение.CursorLocation= 3;
Соединение.Open();
ТекстЗапроса = "select *  from magicash5.ecfil002";

НаборЗаписей = Соединение.Execute(ТекстЗапроса);
КвоЗаписей = НаборЗаписей.RecordCount();
Сообщить(КвоЗаписей);
или такое (при работе с параметрами)
Код:
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Новый COMОбъект("ADODB.Connection");
Command.CommandText = "select * from VW_RPT_CFT_PERSON_F_1C where DATE_MOVE >= ?";
par = Command.CreateParameter("DATEN", 133, 3);
Command.Parameters.Append(par); 
par.Value = ДатаН;
Command.NamedParameters = Ложь; // можно не писать, по умолчанию и так ложь
 
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();
09.03.2015 19:09
посмотрите еще по форуму, несколько раз уже задавали вопрос
10.03.2015 12:09
настройки драйвера Microsoft ODBC for Oracle :
Код:
Пуск-Панель Управление - Администрирование - Источники данных - Добавить - Microsoft ODBC for Oracle 
имя - mybase // 
описание - Mybase // 
пользователь - sys// 
сервер: "DSN=mybase;UID=sys;PWD=***;SERVER=192.168.*.***")

Собственно получился такой код, но работает он только в 8.2 и 8.3, а в 7.7 не срабатывает, пишет переменная "Новый COMОбъект" не определена, КАК ЕЕ ОПРЕДЕЛИТЬ ? )



Код:
//*******************************************
   
	  
Соединение=Новый COMОбъект ("ADODB.Connection");
Соединение.ConnectionString = "DRIVER={Microsoft ODBC for Oracle};UID=sys;PWD=***;SERVER=Mybase"; 
Соединение.ConnectionTimeout = 15;
Соединение.CursorLocation= 3;
  Попытка
        Соединение.Open(Соединение.ConnectionString);
        Сообщить("Соединение успешно установлено.");   
      Исключение
          сообщить("Невозможно установить соединение-"+ОписаниеОшибки());
      КонецПопытки;
ТекстЗапроса = "select name, article
				|from supermag.smcard
				|where crd.article = 00022";
				

НаборЗаписей = Соединение.Execute(ТекстЗапроса);
//КвоЗаписей = НаборЗаписей.Recordcount();
//Сообщить(квоЗаписей);

   
 
НаборЗаписей.MoveFirst();
 

     Пока НаборЗаписей.EOF()=0  цикл
     
      
      
        Сообщить("Карточка: " + НаборЗаписей.Fields("article").Value + " " + НаборЗаписей.Fields("name").Value);
		

         НаборЗаписей.MoveNext();

     КонецЦикла;
		

НаборЗаписей.Close();
10.03.2015 12:22
Код:
Соединение=Новый <<?>>COMОбъект ("ADODB.Connection");
{C:\USERS\АДМИНИСТРАТОР\DESKTOP\СОЕДИНЕНИЕ.ERT(6)}: Переменная не определена (COMОбъект)
10.03.2015 12:26
заменил новый "СОМОбъект" на "СоздатьОбъект("ADODB.Connection");" и все зажужжало !!!
23.04.2015 13:11
а кто-нибудь пробовал отправить pl/sql и получить ответ ? )
дело в том, что отправляться отправляется, а вот ответа уже не получает...
23.04.2015 13:20
Как отправляешь и как получаешь ответ?
23.04.2015 13:52
отправляю через
Код:
Provider=MSDAORA;Password=qqq;User ID=supermag;Data Source=mybase;Persist Security Info=True
следующее
Код:
текстзапроса = " |declare
   |i varchar2(20):= '000333';
   |b supermag.smcard.article%type;
   |begin
   |select article into b from supermag.smcard where article = i;
   |DBMS_OUTPUT.put_line(b);
   |end;";

Код:
  ADODB.Recordset: операция не допускается, если объект закрыт
Обычные select запросы улетают нормально.

в Developere запрос отрабатывается и показывает результат во вкладке "Output".
23.04.2015 14:10
А зачем тут PL\SQL-то?
Часовой пояс GMT +3, время: 16:00.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.