powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Хранимые процедуры
15 сообщений из 15, страница 1 из 1
Хранимые процедуры
    #32263153
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветсвую All!

Не подскажите, где можно почитать, посмотреть примерчики про subj, чтоб научится писать...

Заранее благодарен!
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263186
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DB2 SQL Reference.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263254
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо....

А есть примеры, как от начала до конца создать процедуру?
как ее компилировать и т.д.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263280
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тебе для начала.
Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
CREATE PROCEDURE YEIS.Otchet01 (IN StDate date, IN EnDate date, IN TempCom1 VARCHAR( 50 ), IN TempCom2 VARCHAR( 50 ), IN WhichQuery VARCHAR( 6 ))
 ------------------------------------------------------------
 
 --Правила по использованию переменных показаны в комментариях перед каждым из селектов
 
 ------------------------------------------------------------- 
 
            DYNAMIC RESULT SETS  1        
            LANGUAGE SQL          
            SPECIFIC YEIS.Otchet01
            NOT DETERMINISTIC    
            MODIFIES SQL DATA   
            CALLED ON NULL INPUT 
 ------------------------------------------------------------------------
 
 -- SQL Stored Procedure 
 
 ------------------------------------------------------------------------
 
P1: BEGIN 
 -----------------------------------------------------------------------
 
 --вспомогательные переменные
 

 -----------------------------------------------------------------------
 
 -- Declare cursors
 
DECLARE GNK1 CURSOR WITH RETURN FOR  
 -----------------------------------------------------------------------------------
 
 --1)Сведения по экспортным и импортным контрактам на товары, работы, услуги
 
 --Входные данные: StDate,EnDate
 
 -----------------------------------------------------------------------------------
 
SELECT TT.SmallName AS  "Наименование предприятия" ,
            TK.FirmTIN AS  "ИНН предприятия" , 
            TT.OKPO AS  "ОКПО" , 
            TA.Account AS  "Код банковского счета" ,
            TK.KntID AS  "ИДН контракта" , 
            TK.KntType AS  "Код по ГТД (экс/имп)"  , 
            TD.GdsKod AS  "Код ТНВЭД" , 
            CAST (TD.InvCost AS FLOAT) AS  "Фактурная стоимость" , 
            TK.CurrKod AS  "Код валюты" , 
            CAST (TK.CurrRate_r AS FLOAT) AS  "Курс валюты" , 
            TDel.DlvTrm AS  "Цифровой код условий поставки" ,
            TAgr.AgrmSubject AS  "Предмет соглашения" ,
            TPay.PmDate AS  "Дата поступления средств" ,
            CAST (TPay.PmSum AS FLOAT) AS  "Сумма поступивших средств" 
FROM ((((((YEIS.Kontracts TK
            LEFT OUTER JOIN YEIS.TINList TT ON TK.FirmTIN=TT.TIN) 
            LEFT OUTER JOIN YEIS.Accounts TA ON TT.TIN=TA.TIN) 
            LEFT OUTER JOIN YEIS.Deliver TD ON TK.KntID=TD.KntID) 
            LEFT OUTER JOIN YEIS.DelTerms TDel ON TK.KntID=TDel.KntID) 
            LEFT OUTER JOIN YEIS.Oplata TOp ON TK.KntID=TOp.KntID)
            LEFT OUTER JOIN YEIS.Agrmnts TAgr ON TK.KntID=TAgr.KntID)
            LEFT OUTER JOIN YEIS.PaymFact TPay ON TK.KntID=TPay.KntID
WHERE TD.DlvDate BETWEEN StDate AND EnDate
ORDER BY TK.KntType ASC; 
CASE WHICHQUERY
WHEN 'GNK1'
THEN 
OPEN GNK1;
END CASE;

END P1

Чтобы скомпилить, закинь его в SPB, если у тебя DB2 UDB, или в Run SQL Script - если DB2/400. Чтобы компилить в SPB на тачке должен стоять VC++ Compiler. Поставишь его, затем в SPB укажешь - где он находится. И всё - дальше debug.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263351
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятненько, спасибо...

а еще вопросик, а если нужна процедура на Java, тогда как?
и как потом юзать процедуры?

Явно последний вопрос... :)
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263367
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Jav'e есть SQLJ - удобная штука. А юзать вот так:
call yeis.otchet01('2000-01-01','2020-01-01','01','2003','GNK1')
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263392
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
риман, дык тут всего один запрос ... любитель процедур блин
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263449
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В Jav'e есть SQLJ - удобная штука.
а как ее юзать?

> А юзать вот так:
> call yeis.otchet01('2000-01-01','2020-01-01','01','2003','GNK1')
посылать вместо select *... ?
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263524
Lefan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у мня есть такой запрос, курсы доллара...
имею таблицу курс доллара dollar
а так же строю VIEW dollar2, в котором все записи кроме максимальной даты...
а потом строю запрос
Код: plaintext
1.
select * from dollar a, dollar b
where a.iddollar=b.iddollar

и потом получаю разницу в курсе....
Код: plaintext
1.
2.
3.
...
int kurs = es.rs.getFloat( 3 ) - es.rs.getFloat( 6 );
... 

что эффективнее, оставить так иль написать процедуру?
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263542
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To NewYear. Ну что я всю процедуру, которая ровнехонько 31K в компайле занимает сюда выложу что ли? Человек просил пример - вот он ему пример.
To Lefan. Всё спрашивай у NewYear'a я у него учился, можешь посмотреть старые топики - он там всё подробно объясняет, даже про динамический сикуль...
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263550
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати NewYear у меня эта процедура скоро перерастет 32К. Так вот, как можно сделать две процедуры под одним логическим именем? Нужно это потому что в проге зашито имя проц-ры, соответственно второе не укажешь, и больше 32К не сделаешь. Как тут быть?
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263621
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только разве руками поковыряться.
напиши прокладку, хотя бы ни C, и оформи ее как процедуру. а из нее уже вызывай все, что душе угодно.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263644
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сэнкс. Мне вот интересно, что такое RTFM. Как я понимаю это типа: "копать, пока не накопаешь...", а как дословно будет?
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263649
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Read The Fucking Manual
...
Рейтинг: 0 / 0
Хранимые процедуры
    #32263657
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мля. Мне тут один программер всё твердил RTFM, RTFM... У, чертила...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Хранимые процедуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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