Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / sqlcode = 100 при успешном вызове оракловой процедуры / 25 сообщений из 28, страница 1 из 2
08.11.2007, 10:56
    #34924165
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Выполняется оракловая процедура, имеющая один входной параметр. В результате ее деуствия в таблицутавляются строки.
DECLARE POpdate PROCEDURE FOR EntryPipelineOpdate (vopdate =>:opdate)
USING SQLCA;
EXECUTE POpdate;

Далее пытаюсь сделать проверку на успешность выполнения и при обращении к SQLCA.SQLCode получаю значение равным 100. Сама процедура выполнилась без ошибок.
...
Рейтинг: 0 / 0
08.11.2007, 11:15
    #34924244
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Ssqlcode 100
Это значит что курсор в вашей процедуре отстрелялся.
Фетч ничего поймал-то ли записи закончились,то-ли не начaлись.
...
Рейтинг: 0 / 0
08.11.2007, 11:18
    #34924262
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
PB Help0 Success.
100 Fetched row not found.
-1 Error ; the statement failed. Use SQLErrText or SQLDBCode to obtain the detail.
...
Рейтинг: 0 / 0
08.11.2007, 11:34
    #34924331
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
KOLCHOZ_POSTEVENTSsqlcode 100
Это значит что курсор в вашей процедуре отстрелялся.
Фетч ничего поймал-то ли записи закончились,то-ли не начaлись.

Процедура не использует курсоры. У нее также отсутствуют параметры типа out.
Процедура отрабатывает успешно.

Поясните, почему 100, а не 0?
...
Рейтинг: 0 / 0
08.11.2007, 11:35
    #34924335
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Марк, спасибо, но это мне известно.
...
Рейтинг: 0 / 0
08.11.2007, 12:16
    #34924561
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
А что я ещё могу добавить?
У меня компилятор не пропускает,то что у вас написано.
Палёная восьмёрка у меня.
Это пропускает,например.
Код: plaintext
1.
2.
3.
4.
string opdate
DECLARE POpdate PROCEDURE FOR EntryPipelineOpdate  :opdate
USING SQLCA;
EXECUTE POpdate;
А если объясните,что это в скобках
Код: plaintext
1.
(vopdate =>:opdate)
ставлю бутылку.
...
Рейтинг: 0 / 0
08.11.2007, 12:32
    #34924637
PB_NEW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
(vopdate =>:opdate) данный ситаксис приведен в хелпе.

А вот так возвращает 0

sql= "begin EntryPipelineOpdate (to_date('" + String(opdate) + "','dd.mm.yyyy')) ; end;"
EXECUTE IMMEDIATE :sql;
...
Рейтинг: 0 / 0
08.11.2007, 12:33
    #34924650
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
(vopdate =>:opdate) данный ситаксис приведен в хелпе для 9
...
Рейтинг: 0 / 0
08.11.2007, 12:38
    #34924681
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
pb_new(vopdate =>:opdate) данный ситаксис приведен в хелпе для 9

Вообще в Oracle используется два метода передачи параметров - позиционный (т.е. без имени параметра) и именованный (так, как приведено выше). А если использовать позиционный без EXECUTE IMMEDIATE ?
...
Рейтинг: 0 / 0
08.11.2007, 13:05
    #34924789
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
А если использовать позиционный без EXECUTE IMMEDIATE ?

100
...
Рейтинг: 0 / 0
08.11.2007, 14:29
    #34925201
Oleg1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Уже даже help процитировали, 100 -- это не ошибка.
Возникает, если update или delete в SP не обработал ни одной строки.
...
Рейтинг: 0 / 0
08.11.2007, 14:36
    #34925227
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Забейте и считайте 0 и 100 успешными кодами для процедур (все равно для процедур код 100 невозможен).
Для функций же 100 - ошибка: лишний fetch результата функции
...
Рейтинг: 0 / 0
08.11.2007, 14:37
    #34925233
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Oleg1Уже даже help процитировали, 100 -- это не ошибка.
Возникает, если update или delete в SP не обработал ни одной строки.
100 возникает даже если тело процедуры пустое.
...
Рейтинг: 0 / 0
08.11.2007, 14:48
    #34925273
pb_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Anatoly MoskovskyЗабейте и считайте 0 и 100 успешными кодами для процедур (все равно для процедур код 100 невозможен).
Для функций же 100 - ошибка: лишний fetch результата функции
ок
...
Рейтинг: 0 / 0
15.11.2007, 14:08
    #34942089
Геннадич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
...
Рейтинг: 0 / 0
19.11.2007, 15:23
    #34949199
DRod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Скорее всего это из-за того, что процедура ничего не возвращает. Попробуйте сделать в процедуре return(...). Тогда будет sqlcode = 0.
...
Рейтинг: 0 / 0
19.11.2007, 16:02
    #34949347
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
DRodСкорее всего это из-за того, что процедура ничего не возвращает. Попробуйте сделать в процедуре return(...). Тогда будет sqlcode = 0.

В процедуре может быть только "голый" RETURN, т.е. БЕЗ возвращаемого значения :)
...
Рейтинг: 0 / 0
19.11.2007, 19:15
    #34950088
ytrewq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Добавьте в качестве возвращаемых параметров Код возвращаемой ошибки и Текст ошибки. Заполнение этих полей должно быть в процедуре. Иначе смысла выполнения процедуры нет. У Вас может произойти на сервере все что угодно, Вы же ничего не контролируете.
Мы используем такие 2 параметра как стандарт при вызове любой процедуры.
С уважением, ytrewq.
...
Рейтинг: 0 / 0
19.11.2007, 19:35
    #34950122
Oleg1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
ytrewqДобавьте в качестве возвращаемых параметров Код возвращаемой ошибки и Текст ошибки. Заполнение этих полей должно быть в процедуре. Иначе смысла выполнения процедуры нет. У Вас может произойти на сервере все что угодно, Вы же ничего не контролируете.Это как это?! Процедура или выполняется, или нет.

ytrewqМы используем такие 2 параметра как стандарт при вызове любой процедуры.
С уважением, ytrewq.В большистве случаев это излишество.
...
Рейтинг: 0 / 0
20.11.2007, 10:03
    #34950780
ytrewq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Может быть, и так.
Однако, выполняя на сервере что-либо, желательно иметь подробную информацию, завершилось ли оно так, как надо. Все-таки по отношению к клиенту сервер - это внешнее приложение и не лишне проконтролировать, что там все действия завершились благополучно.
С уважением, ytrewq.
...
Рейтинг: 0 / 0
20.11.2007, 10:31
    #34950885
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
ytrewqМожет быть, и так.
Однако, выполняя на сервере что-либо, желательно иметь подробную информацию, завершилось ли оно так, как надо. Все-таки по отношению к клиенту сервер - это внешнее приложение и не лишне проконтролировать, что там все действия завершились благополучно.
С уважением, ytrewq.

Если действия процедуры вызвали ошибку и она не обработана внутри, ошибка распространяется во внешнюю среду. Если мы хотим трактовать некоторые действия как ошибку, мы можем генерить пользовательское исключение. Так что контроль работы процедуры происходит в любом случае.

Другое дело, что кому как нравится - обрабатывать ошибку сразу на сервере или на клиенте...
...
Рейтинг: 0 / 0
20.11.2007, 10:36
    #34950907
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Правильно, код и должен быть 100 при нормальной работе процедуры
Она же не возвращает никаких данных, а 100 и означает, что исполнено, но не возвращено никаких данных
Как вариант - обернуть процедуру в функцию
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
20.11.2007, 10:38
    #34950922
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
Да, и еще
Судя по-постам, забывается одна простая вещь
Oracle != MS SQL
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
20.11.2007, 17:14
    #34952856
DRod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
tru55 DRodСкорее всего это из-за того, что процедура ничего не возвращает. Попробуйте сделать в процедуре return(...). Тогда будет sqlcode = 0.

В процедуре может быть только "голый" RETURN, т.е. БЕЗ возвращаемого значения :)

Пардон! Извиняюсь. Я имел в виду, что процедура ничегно не возвращает, т.е. пустой "ResultSet". Верните какой-нибудь результат и sqlcode будет равен нулю.
...
Рейтинг: 0 / 0
21.11.2007, 08:41
    #34953946
qwaszx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sqlcode = 100 при успешном вызове оракловой процедуры
spas2001Правильно, код и должен быть 100 при нормальной работе процедуры

а как же этот случай
pb_newА вот так возвращает 0

sql= "begin EntryPipelineOpdate (to_date('" + String(opdate) + "','dd.mm.yyyy')) ; end;"
EXECUTE IMMEDIATE :sql;
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / sqlcode = 100 при успешном вызове оракловой процедуры / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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