powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DECLARE PROCEDURE ???
10 сообщений из 10, страница 1 из 1
DECLARE PROCEDURE ???
    #32652340
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем нужен полный синтаксис, для того чтоб перебрать все записи из процедуры в курсоре

Код: plaintext
1.
DECLARE cur1 PROCEDURE FOR p_test


а дальше ....

Кому не лень пожалуйста напишите.
Заранее спасибо!
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652472
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, всем лень???
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652545
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIGITALPROЧто, всем лень???
Нет, вообще то не лень, а некогда... Да и вопрос не совсем внятен и понятен.
DIGITALPROчтоб перебрать все записи из процедуры в курсоре
Во первых, зачем это деать на клиенте?
Во вторых, зачем курсор? Если уж деаете на клиенте, то используйте DataStore.

А синтаксис вызова процедуры...
RTFM
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE string_procedure_alias PROCEDURE FOR 
database_procedure_name @param_1 = :variable_1, ... @param_n = :variable_n;

EXECUTE string_procedure_alias;

if sqlca.SQLCode = - 1  then
    // обработка ошибки
    ROLLBACK;
else
    COMMIT;
end if
---
С уважением, IKAR

ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652553
Louder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не лень. Скорее всего никто не пробовал это делать.
Лучше сделай Datastore на основе ХП.
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652695
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как уже правильно писал коллега Ikar:
Код: plaintext
1.
2.
3.
4.
DECLARE string_procedure_alias PROCEDURE FOR 
database_procedure_name @param_1 = :variable_1, ... @param_n = :variable_n;

EXECUTE string_procedure_alias;

А дальше:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if sqlca.SQLCode = - 1  then
    // обработка ошибки
    ROLLBACK;
else
    //В цикле (вот только условие не помню)
      FETCH string_procedure_alias
      INTO :var1,...,:varn;
    CLOSE string_procedure_alias;
    COMMIT;
end if

Хотя, правильнее, наверное, создать datastore на основе процедуры и работать с ним - оно проще будет.

Сергей
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652765
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начнем с начала:

1. Есть БД
2. В ней есть процедура p_test
3. Есть проект на РВ 9 ...
4. В этом проекте есть TreeView

5. Данные из процедуры надо запихать в дерево

Как и через что это сделать?
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652829
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор5. Данные из процедуры надо запихать в дерево
Как и через что это сделать?

Создать DW Object в котором dataSource будет ваша StoredProcedure, а далее
примерно так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
//Var
  DataStore        l_ds
  Long               ll_row        
  Long               ll_rowCount  
  TreeViewItem   tvi
//endVar

//Создать DataStore
l_ds = Create DataStore
//Подкл. dataObject
l_ds.dataobject = "dd_tree_level_grid"
//Подкл. объект транзакции
l_ds.setTransObject( SQLCA )
//Выбрать данные
ll_rowCount = l_ds.retrieve(...) //аргументы подставте сами
//Фиксировать транзакцию
commit;
//Инициализировать общие для всех элементов дерева параметры
tvi.PictureIndex =  1 
tvi.SelecttedPictureIndex =  2 
//В цикле строим дерево
For ll_row =  1  to ll_rowCount
     //Сформировать элемент дерева
     tvi.label = l_ds.getIatemString(ll_row, "label") 
     tvi.data = l_ds.getIatemNumber(ll_row, "lD")   
    //Добавить в конец дерева новый элемент
    tv_1.insertItemLast(handleParent, tvi)
Next
//Уничтожить DataStore
Destroy l_ds
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652839
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
Код: plaintext
1.
Ermak
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32652902
Alexander Kolotinets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerssКак уже правильно писал коллега Ikar:
Код: plaintext
1.
2.
3.
4.
DECLARE string_procedure_alias PROCEDURE FOR 
database_procedure_name @param_1 = :variable_1, ... @param_n = :variable_n;

EXECUTE string_procedure_alias;

А дальше:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if sqlca.SQLCode = - 1  then
    // обработка ошибки
    ROLLBACK;
else
    //В цикле (вот только условие не помню)
      FETCH string_procedure_alias
      INTO :var1,...,:varn;
    CLOSE string_procedure_alias;
    COMMIT;
end if

Хотя, правильнее, наверное, создать datastore на основе процедуры и работать с ним - оно проще будет.

условие sqlca.sqlcode = 100 - выбирать больше нечего

Сергей
...
Рейтинг: 0 / 0
DECLARE PROCEDURE ???
    #32653056
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем БОЛЬШОЕ СПАСИБО!

ТЕМА ЗАРЫТА
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DECLARE PROCEDURE ???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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