powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Выполнение оракловой функции в 1С
13 сообщений из 13, страница 1 из 1
Выполнение оракловой функции в 1С
    #35732555
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть оракловая функция, которая создает запись в таблице и возвращает id этой новой записи. Как выглядит код 1С, который позволит запустить эту функцию, и результат её выполнения сохранит в переменную? Другими словами, нужен пример кода использования оракловых функции в 1С.

Вопрос конечно очень простой, но когда я увидел код в 1С .... там всё по-русски . Вобщем расчитываю на вашу помощь.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35732638
Reder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonFX,

Тебе никто не запрещает писать в англиской нотации. Если Оракл доступен через ADO, то делается легко.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35732668
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonFXЕсть оракловая функция, которая создает запись в таблице и возвращает id этой новой записи. Как выглядит код 1С, который позволит запустить эту функцию, и результат её выполнения сохранит в переменную? Другими словами, нужен пример кода использования оракловых функции в 1С.

Вопрос конечно очень простой, но когда я увидел код в 1С .... там всё по-русски . Вобщем расчитываю на вашу помощь.

Через ADODB и его объекты.. Примерно так. Пример - из MS SQL, но это не принципиально - какая ConnectionString будет, к той базе и подключится. Ну. возможно, детали кода в строке str другие будут.

Con = СоздатьОбъект("ADODB.Connection");
Con.ConnectionString = ConnectionString;
Con.Open();
cmd = СоздатьОбъект("ADODB.Command");
cmd.ActiveConnection=con;
str="declare
|@d_start varchar(10),
|@d_end varchar(10)
|set @d_start='"
+форматДат(НачДата)+
"'
|set @d_end='"
+форматДат(КонДата+1)+
"'
|exec __t_proc1 @d_start,@d_end;
|";
cmd.CommandText=str;cmd.execute();
Rcs = СоздатьОбъект("ADODB.RecordSet");

rcs.open("select Дата,Склад, cast( Списание as char(30)) AS Списание,cast( Оприходование as char(30)) AS Оприходование from ___t1",con);
пока (rcs.EOF()=0) цикл
тб.НоваяСтрока();
тб.День=(rcs.fields(0).Value());
тб.Склад=rcs.fields(1).Value();
тб.Списано=число(rcs.fields(2).Value());
тб.Оприходовано=число(rcs.fields(3).Value());
rcs.MoveNext();
КонецЦикла;
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35732721
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pail
Не очень понятно.

Вот к примеру, в Delphi делается так

qrServices.SQL.Text :=
'begin' +
' :ID := myfunc(:param1, :param2); ' +
'end;';
qrServices.ParamByName(param1).AsInteger := 1;
qrServices.ParamByName(param2).AsInteger := 2;
qrServices.ExecSQL;
Result := qrServices.ParamByName('ID').AsInteger;


Как тоже самое повторить в 1С?
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35732765
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каким кодом здесь дельфи?
1. Кто сказал, что в 1С можно пользоваться родными дельфийскими объектами ? COM и только COM.
Например, ADODB.
2. Принципы программирования COM (упрощено)
- синтаксис - от вызывающего контекста. Имена методов и свойств - из вызываемого.


Документации и помощи в разделах этого сайта - сколько угодно.
На этом откланиваюсь.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35732927
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Умиляют ваши ответы:
Один написал что это делается очень легко, но было бы полезнее на конкретном примере показать как это "легко" выглядит.
Второй не совсем понял суть вопроса, тоже намекает что это легко и отправляет меня на дальнейшие поиски. В которых я уже нахожусь второй день. Поэтому то я и решил задать вопрос здесь.

Не ожидал что на такой простой вопрос тяжело будет ответить. Всего-то надо запустить оракловую функцию и сохранить в переменную результат её выполнения. Пример кода будет строчек 5-10, не больше.

Я конечно же мог сделать автономную транзакцию в своей оракловой функции и тогда бы у наших (не очень квалифицированных) 1С программистов не возникло сложностей, сделав так - select MyOraFunc(param1,param2) from dual. Но к сожалению автономные транзакции использовать нельзя, поэтому приходится искать, как в коде 1С реализовывается запуск оракловых функций.

Кстати, и еще привел кусок кода как это делается в Delphi. Я больше чем уверен, что разбирающийся в 1С человек не задумываясь смог бы продемонстрировать тоже самое в 1С диалекте.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35733071
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonFX Я больше чем уверен, что разбирающийся в 1С человек не задумываясь смог бы продемонстрировать тоже самое в 1С диалекте.
Я владею и дельфи, и 1С, и еще десятком языков, и могу использовать их в любых сочетаниях. Если Вы кроме дельфей знаете еще хотя бы один язык ( а также что такое COM) - вы свободно перепишете этот код самостоятельно. Если нет - не надо сваливать на 1С собственное неумение. Хороший повод научиться.
И не надо рассчитывать на то, что на форуме кто-нибудь будет писать код за Вас.
Привести пример существующего кода, имеющего отношение к проблеме - можно. Наваять минутной импровизацией нечто без проверки - тоже можно. Но Разжевать, перед тем как в рот положить - увольте от таких лентяев. Сам ленив.
А "то же самое" на дельфи не получится - объектная модель другая.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35733535
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonFXКстати, и еще привел кусок кода как это делается в Delphi. Я больше чем уверен, что разбирающийся в 1С человек не задумываясь смог бы продемонстрировать тоже самое в 1С диалекте.Очень усильно умиляют люди не умеющие читать. Вам уже написали ВСЕ. А вы не можете воспользоваться прокладкой между креслом и монитором чтобы использовать данный пример.
Думаю что человек Разумный смог бы не задумываясь перевести синтаксис в ДЕСЯТОК языков, если перед его глазами есть пример из этого языка.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35734197
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с
Давай попробуем разобраться что за пример описан сверху. Я его понял так:
1)объявляются переменные d_start и d_end
2)далее в эти переменный заносятся какие-то значения set @d_start='"+форматДат(НачДата) и set @d_end='"+форматДат(КонДата+1)
3)потом запускается процедура с этими параметрами exec __t_proc1 @d_start,@d_end;
4)я предполагаю что результат своей работы эта процедура сохраняет в таблицу t1 ( select ... from ___t1", )
5)и в конце выполняется выборка данных из этой таблицы

Теперь смотрим что писал я в первом посте.

Есть оракловая функция, которая создает запись в таблице и возвращает id этой новой записи. Как выглядит код 1С, который позволит запустить эту функцию, и результат её выполнения сохранит в переменную.
В выше описанном примере я такого не заметил.

В 1С я вообще не разбираюсь и времени особо нет для этого. Но я более чем уверен что показать на примере такой код очень просто. Вместо этого простого кода, я вижу как мне доказывают что я неучь и лентяй (вот только за этим я сюда и пришел).
Поэтому я еще раз прошу помочь показать на примере или скинуть ссылку где описывается как работать с оракловыми процедурами и функциями в 1С.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35734313
Reder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonFX
В 1С я вообще не разбираюсь и времени особо нет для этого. Но я более чем уверен что показать на примере такой код очень просто. Вместо этого простого кода, я вижу как мне доказывают что я неучь и лентяй (вот только за этим я сюда и пришел).
Поэтому я еще раз прошу помочь показать на примере или скинуть ссылку где описывается как работать с оракловыми процедурами и функциями в 1С.
А из 1С там требуется знать только СоздатьОбъект(CreateObject), а дальше уже чисто методы ADODB
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35734636
BestProgrammist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LimonFX,

// Создание нового объекта Command
Command = Новый СОМОбъект("ADODB.Command");

// Организация связи с поставщиком данных для объекта Command
Command.ActiveConnection = Connection;

// Задание хранимой процедуры
Command.CommandText = "Имя вашей хранимой процедуры";

// Применение метода CreateParameter объекта Command для
// создания нового объекта Parameter, который будет
// использован при выполнении хранимой процедуры.
// 3 = integer без знака
// 4 = возвращаемое значение(код завершения процедуры)
ReturnParameter = Command.CreateParameter("Return", 3, 4);

// Добавление в семейство Parameters объекта Command нового параметра
Command.Parameters.Append(ReturnParameter);

// Получение объекта Recordset
Command.Execute();

// ReturnParameter.Value содержит возвращенное значение
Предупреждение("Результат вызова = " + Строка(ReturnParameter.Value), 3);
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35734831
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BestProgrammist
Спасибо. Ща попробую.
...
Рейтинг: 0 / 0
Выполнение оракловой функции в 1С
    #35736576
Хитроглазый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonFX
В 1С я вообще не разбираюсь и времени особо нет для этого.

тут не в 1С дело . вы просто не понимаете и не желаете понимать как клиентские приложения работают с СУБД, тупо требуя кода. а таких тут не любят. примеров, и описаний по ADODB в интернете полно.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Выполнение оракловой функции в 1С
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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