Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DECLARE PROCEDURE ??? / 10 сообщений из 10, страница 1 из 1
17.08.2004, 11:27
    #32652340
DIGITALPRO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Вообщем нужен полный синтаксис, для того чтоб перебрать все записи из процедуры в курсоре

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


а дальше ....

Кому не лень пожалуйста напишите.
Заранее спасибо!
...
Рейтинг: 0 / 0
17.08.2004, 12:15
    #32652472
DIGITALPRO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Что, всем лень???
...
Рейтинг: 0 / 0
17.08.2004, 12:33
    #32652545
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
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
17.08.2004, 12:35
    #32652553
Louder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Не лень. Скорее всего никто не пробовал это делать.
Лучше сделай Datastore на основе ХП.
...
Рейтинг: 0 / 0
17.08.2004, 13:13
    #32652695
gerss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Как уже правильно писал коллега 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
17.08.2004, 13:37
    #32652765
DIGITALPRO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Начнем с начала:

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

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

Как и через что это сделать?
...
Рейтинг: 0 / 0
17.08.2004, 14:05
    #32652829
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
автор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
17.08.2004, 14:07
    #32652839
DIGITALPRO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Спасибо
Код: plaintext
1.
Ermak
...
Рейтинг: 0 / 0
17.08.2004, 14:27
    #32652902
Alexander Kolotinets
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
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
17.08.2004, 15:13
    #32653056
DIGITALPRO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DECLARE PROCEDURE ???
Всем БОЛЬШОЕ СПАСИБО!

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


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