Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Перестала работать PROCEDURE / 7 сообщений из 7, страница 1 из 1
19.09.2008, 11:16
    #35548391
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
Приложение на ПБ 9.0.3 и есть сервер ASF 9.0.2

История: Проект достался мне по наследству. Для ускорения формирования отчета решил заменить обработку при открытии окна в приложении на процедуру.

Схематично было так:
INSERT INTO tabl1(...)
SELECT ... ; (с подзапросами, tabl1-постояная таблица )

delete tabl1 ... ;
update tabl1 ... ;

В общем, ничего сложного.
Вместо запросов написал процедуру sp_kolprihrash(...) и на событии open окна отчета w_user вызываю ее:

DECLARE sp_kolu PROCEDURE FOR sp_kolprihrash @datbeg = :datbeg, @datend = :datend, @typ = :ss1 ;
EXECUTE sp_kolu;
if SQLCA.sqlcode = -1 then
MessageBox("Stored Procedure Error 75457", SQLCA.sqlerrtext)
end if
CLOSE sp_kolu; (надо ли здесь закрывать ?)

dw_1.SetTransObject(sqlca)
dw_1.Retrieve()

Пока разрабатывал и пару дней работало нормально, потом перестало (и на сервере и локально на ПК). Пока проверял "почему перестало работать" (Возвращает SQLCA.sqlcode=100), почему-то заработало (Возвращает также SQLCA.sqlcode=100), но на след.день опять перестало и больше не хочет. В процедуру вход выполняется, в начальной ее части что-то мелкое нормально отрабатывает, но запрос INSERT INTO tabl1(...) SELECT ... ; (с подзапросами) ничего не бросает в tabl1. Условия запроса (аргументы) (смотрел в отладчике ASA) передаются в процедуру.
Сегодня на локальной базе опять написал этот запрос по частям (прибавляя поля в INSERT … SELECT … , при этом FROM и WHERE – не изменял) – все заработало. При этом на серверной базе ничего не менял и не заходил при этой правке. Но и там на вновь скрученном приложении все заработало. Получается глюк где-то в Билдере появляется.

Все заработало , но надолго ли ?
В чем причина, может кто подскажет ? Или я что-то не так делаю ?
...
Рейтинг: 0 / 0
19.09.2008, 11:46
    #35548501
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
ВасВас пишет:

> DECLARE sp_kolu PROCEDURE FOR sp_kolprihrash @datbeg = :datbeg, @datend
> = :datend, @typ = :ss1 ;
> EXECUTE sp_kolu;

А зачем так извращаться? Вызывай через RPC.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.09.2008, 12:01
    #35548545
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
Это как ? "Вызывай через RPC"
Извините, но пока нет опыта.
...
Рейтинг: 0 / 0
19.09.2008, 12:11
    #35548587
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
ВасВасЭто как ? "Вызывай через RPC"
Извините, но пока нет опыта.

Это через Call ? А как с клиента вызвать ?
...
Рейтинг: 0 / 0
19.09.2008, 12:18
    #35548616
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
Это как ? "Вызывай через RPC"
Извините, но пока нет опыта.

Нашел в справке Билдера: Это то, что надо ?

Example 1 This declaration of the GIVE_RAISE_PROC stored procedure is declared in the User Object painter for a transaction object (the declaration appears on one line):

FUNCTION double GIVE_RAISE(ref double SALARY) RPCFUNC ALIAS FOR "GIVE_RAISE_PROC"
This code calls the function in a script:
double val = 20000
double rv
rv = SQLCA.give_raise(val)

Example 2 This declaration for the stored procedure SPM8 does not need an ALIAS FOR phrase, because the PowerBuilder and DBMS names are the same:
FUNCTION integer SPM8(integer value) RPCFUNC
This code calls the SPM8 stored procedure:
int myresult
myresult = SQLCA.spm8(myresult)
IF SQLCA.sqlcode <> 0 THEN
messagebox("Error", SQLCA.sqlerrtext)
END IF
...
Рейтинг: 0 / 0
19.09.2008, 14:09
    #35549019
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
А вот так работает :

select sp_kolprihrash(:i_orderkey.datbeg, :i_orderkey.datend, :ss1) into :rc from dummy;

результаты потом беру из итоговой таблицы
...
Рейтинг: 0 / 0
19.09.2008, 14:11
    #35549025
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестала работать PROCEDURE
Извините, вначале неправильно указал на чем работаю
Приложение - ПБ 9.0.3
сервер ASA 9.0.2
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Перестала работать PROCEDURE / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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