|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
Имеется процедура, написанная на PL/SQL, в клиенте FoxPro вызываем эту процедуру Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4.
Однако, когда пришлось добавить в процедуре pl/sql третий параметр и у него тип out Код: plaintext 1. 2. 3. 4. 5.
При отладке обнаружил, что появляется ошибка Oracle, что не все переменные привязаны, то есть третий параметр нужно записывать как переменную привязки. Прочитал в литературе по Oracle, что выходные парметры всегда должны быть bind variables (привязанными), но вот как это реализовать в клиенте foxPro пока не понял. Может кто-нибудь сталкивался с такой проблемой? Подскажите как строчку Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 08:59 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 09:45 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
проходящий., вариант Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 11:40 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
1270.0.1, точно так и работает. спасибо. Я почему-то про оракловский синтаксис думал, с двоеточием ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 12:22 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
Бурляев Вячеслав, странно, но я не могу вернуть исходящий параметр из процедуры в FoxPro. Переменная описана как Local, синтаксис правильный. LOCAL nrn nrn = 0 stroka = [call P_FILELINKS_INSERT(...,?@nrn)] не возвращает числовое ненулевое значение, соответствующий параметр в процедуре описан как Number. Процедура срабатывает, запись в таблицу добавляется. Использую Microsoft ODBC для Oracle v.2.573.6200.00. Oracle 9.2.0.8. Может кто сталкивался с подобным? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 15:28 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
Параметры в процедуре оракла опишите как in out Пример: create or replace procedure del_calk(p_sistem_n in number, p_otv in out varchar2, p_otv1 in out number) is Вызов из фокса: otv=SPACE(200) otv1 = 0 par_e = '{call uzp.del_calk(?m.sistem_n,' par_e = par_e + '?@otv, ?@otv1)}' q_povtor = 0 q_povtor = SQLEXEC(q_connect, par_e) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2010, 20:40 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
Vch1, Спасибо Вам за совет. Поспешил им воспользоваться. Описал исходящий параметр в процедуре как in out number. Но, увы, снова безуспешно. Не возвращает нужный результат. Сама процедура нормально отрабатывает. LOCAL nrn nrn = 0 conn1 = SQLCONNECT(...) IF conn1 > 0 stroka = [call P_FILELINKS_INSERT(1744001,1747001,GET_FILELINKS_NEXTNUMB(1744001, NULL),'Акт','Тест','3.doc',NULL,NULL,?@nrn)] res = SQLEXEC(conn1,stroka) ?nrn ENDIF = SQLDISCONNECT(conn1) 0.00 Такие дела... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 12:22 |
|
Вызов процедуры Oracle из FoxPro
|
|||
---|---|---|---|
#18+
попробуйте использовать Oracle ODBC Driver (входит в состав клиента) - должно получиться ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 12:45 |
|
|
start [/forum/topic.php?fid=41&fpage=88&tid=1584916]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 136ms |
0 / 0 |