
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.08.2009, 14:21
|
|||
|---|---|---|---|
|
|||
1С ADO oracle |
|||
|
#18+
Здравствуйте. Кувыркаюсь второй день пытаюсь запустить процедуру из базы oracle, передать ей входной параметр и получить результат значения двух выходных параметров. ___________ В оракловской базе тестовая сохраненная процедура UDO_P_TEST2 (один входной параметр и два выходных) create or replace procedure UDO_P_TEST2(innum in integer, firrez out integer, secrez out integer) is begin firrez:=innum*11; secrez:=innum+firrez; end UDO_P_TEST2; __________ В 1С прописал процедуру. Обратите внимание на строку кода где присваиваются параметры сохраненной процедуры. Если тип переменной и тип параметра указываются символами prm2 = Cmd.CreateParameter("onnum","integer", "out"); выдается ошибка: {D:\DB_1C\1С_шк_пит\1SPPrDemo\ExtForms\4_Соединение с ОРАКЛОМ.ert(81)}: Переменная не определена (adParamOutput) , если тип переменной и тип параметра указываются цифровыми кодами prm2 = Cmd.CreateParameter(1,3, 2); ошибки не выдают но параметры не передаются и не выводятся. Пожалуйста подскажите если можно в чем причина. Помогите пожалуйста. //******************************************* Процедура ОРАКЛ() //________Соединение с базой данных_____________________________________________ DBC2 = CreateObject("ADODB.Connection"); DBC = CreateObject("ADODB.Connection"); ConnectingString="Provider=OraOLEDB.Oracle;Password=parus;User ID=PARUS;Data Source=MLRZ;Persist Security Info=True"; DBC2.ConnectionString = ConnectingString; DBC2.Open(ConnectingString); DBC.ConnectionString = ConnectingString; DBC.ConnectionTimeOut=600; DBC.CursorLocation=3; DBC.Open(ConnectingString); // Формирование и отправка команды Серверу Cmd=CreateObject("ADODB.Command"); Cmd.ActiveConnection=DBC; Cmd.CommandText = "UDO_P_TEST2"; // имя тестовой процедуры Cmd.CommandType = 4; // "adCmdStoredProc" Cmd.NamedParameters = "True"; // по умолчанию False // Объявляем входные параметры //prm1=Cmd.CreateParameter ("innum","integer","in",ЧислоХ); // ЧислоХ – идентификатор поля ввода Тип данных числовой prm1=Cmd.CreateParameter (0,3,1,125); Cmd.Parameters.Append(prm1); //prm2 = Cmd.CreateParameter("onnum","integer", "out"); prm2 = Cmd.CreateParameter(1,3, 2); Cmd.Parameters.Append( prm2 ); //Получение и обработка результатов Cmd.Execute(); //Выполнение и получение набора данных Сообщить(Cmd.Parameters(0).Value); Сообщить(Cmd.Parameters(1).Value); //чтение параметра типа OUTPUT после выполнения. //_______Закрываем соединение с базой данных______________________________ DBC2.Close(); DBC.Close(); КонецПроцедуры С уважением РАН. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.08.2009, 16:02
|
|||
|---|---|---|---|
|
|||
1С ADO oracle |
|||
|
#18+
Ура нашел сам ошибку просто забыл дописать одну строчку после ввода входных параметров // Объявляем входные параметры prm1=Cmd.CreateParameter ("ttt",129,1,CisloX); Cmd.Parameters.Append(prm1); prm1.value=CisloX; // ВОТ этой строчки и не хватало. Теперь параметры вводятся и выводятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=iqo&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 687ms |
| total: | 939ms |

| 0 / 0 |
