Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку) / 25 сообщений из 64, страница 1 из 3
31.05.2004, 15:35:02
    #32541204
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Подскажите новичку как вызвать хп под IB с использованием FREEIB как ей передать параментры и получить от нее значения
...
Рейтинг: 0 / 0
31.05.2004, 15:38:33
    #32541209
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
select * from some_stored_proc(param1, param2)
...
Рейтинг: 0 / 0
31.05.2004, 15:40:13
    #32541215
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Кто такой FREEIB ?
...
Рейтинг: 0 / 0
31.05.2004, 15:45:46
    #32541226
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
кажется, в вопросе спутались UDF и SP
...
Рейтинг: 0 / 0
31.05.2004, 15:46:24
    #32541229
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
freeit применяется, насколько я помню, для функций, а не для хранимых процедур
...
Рейтинг: 0 / 0
31.05.2004, 15:46:47
    #32541232
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Мимопроходяий ->FreeIBComponent
wadman -> подробней пожалуйста у меня куча возвращаемых значений как мне их разместить в C++ в переменных для последующего использования
...
Рейтинг: 0 / 0
31.05.2004, 15:48:16
    #32541238
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Какие переменные? С select-ом умеем работать или нет?
Если нет, то к доктору.
...
Рейтинг: 0 / 0
31.05.2004, 15:50:14
    #32541244
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Main->FIBQuery->SQL->Text = "execute procedure SP_RECEIPTMOVES(NULL,1,0)";
Main->FIBTransaction->Active = true;
Main->FIBQuery->ExecQuery();

что добавить, процедура не отрабатывается
...
Рейтинг: 0 / 0
31.05.2004, 15:56:24
    #32541251
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
а текст процедуры нельзя увидеть?
...
Рейтинг: 0 / 0
31.05.2004, 15:58:03
    #32541256
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
FreeIBComponent - на свалку!
Оно свой век отжило и почило в бозе.
На основе FIBC были созданы 2 конкурирующие библиотеки:
InterBase eXpress (IBX) - входит в Delphi;

FIBPlus (FIB+) - приобретается отдельно.
Каждая из этих библиотек имеет свои достоинства и недостатки, разводить
флейм на тему что рулезнее не стОит. (А кто начнёт - тот какашка)
Но и та и другая билиотека, ушли очень далеко от своего родителя.
Начинать новый проект на основе мёртвой(и достаточно глючной) библиотеки - глупо.
...
Рейтинг: 0 / 0
31.05.2004, 15:58:30
    #32541258
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Код: 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.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
ALTER PROCEDURE SP_RECEIPTMOVES (MAINDOC_REF INTEGER,
SHOW_REMNS SMALLINT,
TAX_PRICE SMALLINT)
RETURNS (RID INTEGER,
REC_TYPE SMALLINT,
REC_ORDER INTEGER,
GOODS_REF INTEGER,
GOODS_ABBR VARCHAR( 36 ) CHARACTER SET WIN1251,
GOODS_NAME VARCHAR( 50 ) CHARACTER SET WIN1251,
TAX_RATE INTEGER,
MUNITS_REF INTEGER,
MUNITS_NAME VARCHAR( 20 ) CHARACTER SET WIN1251,
QUANT DOUBLE PRECISION,
COST DOUBLE PRECISION,
SUM_COST DOUBLE PRECISION,
SUM_WOTAX DOUBLE PRECISION,
BCOST DOUBLE PRECISION,
BSUM_COST DOUBLE PRECISION,
BSUM_WOTAX DOUBLE PRECISION,
BTAX DOUBLE PRECISION,
BREMN_QUANT DOUBLE PRECISION,
BREMN_SUM_COST DOUBLE PRECISION,
BREMN_MUNITS_NAME VARCHAR( 20 ) CHARACTER SET WIN1251,
ACOST DOUBLE PRECISION,
ASUM DOUBLE PRECISION,
BCOST2 DOUBLE PRECISION,
BSUM2 DOUBLE PRECISION,
ASTR VARCHAR( 25 ) CHARACTER SET WIN1251)
AS 

  declare variable SYS_FLAG smallint;
  declare variable RATE_CFN double precision;
  declare variable L_SYS_FLAG smallint;
  declare variable BQUANT double precision;
  declare variable BMUNITS_REF integer;
  declare variable ACTIVE_FLAG smallint;
  declare variable DOC_TYPE smallint;
  declare variable PRID integer;
  declare variable CLOSE_DATE date;
  declare variable CLOSE_STAMP integer;
  declare variable DATE_STAMP integer;
  declare variable QUEUE_STAMP integer;
  declare variable DUMMY double precision;
  declare variable DIST_CFN double precision;
  declare variable DIST_EXPENSES double precision;
  declare variable SUM_BSUM_COST double precision;
  declare variable EXCL_TAX smallint;
begin
  if (MAINDOC_REF is null) then Exit;
  select SYS_FLAG,BASECURR_RATE/CURR_RATE,ACTIVE_FLAG,DOC_TYPE,DIST_EXPENSES
     from MainDocs3 where RID=:MAINDOC_REF
     into :SYS_FLAG,:RATE_CFN,:ACTIVE_FLAG,:DOC_TYPE,:DIST_EXPENSES;
  if (SYS_FLAG is null) then Exit;

  select SYS_FLAG from UserParams where USER_NAME = USER into :L_SYS_FLAG;
  if (L_SYS_FLAG is null) then L_SYS_FLAG =  0 ;
  if (L_SYS_FLAG !=  2  and L_SYS_FLAG != SYS_FLAG) then Exit;

  if (ACTIVE_FLAG !=  0  and SHOW_REMNS !=  0 ) then begin
     if (SYS_FLAG =  0 ) then select EXCL_TAX,CLOSED_PRD_0 from DatabaseParams into :EXCL_TAX,:CLOSE_DATE;
     else select EXCL_TAX,CLOSED_PRD_1 from DatabaseParams into :EXCL_TAX,:CLOSE_DATE;
     if (CLOSE_DATE is not null) then
        CLOSE_STAMP = ( ( CLOSE_DATE +  1  - cast('1 JAN 1970' as date) ) -  32768  ) *  65536 ;
     end
  else select EXCL_TAX from DatabaseParams into :EXCL_TAX;

  if( DIST_EXPENSES !=  0  ) then begin
     select sum(BSUM_COST) from Moves3 where MAINDOC_REF = :MAINDOC_REF into :SUM_BSUM_COST;
     if (SUM_BSUM_COST !=  0 ) then DIST_CFN =  1  - :DIST_EXPENSES / SUM_BSUM_COST;
     else DIST_CFN =  0 ;
     end

  for select t1.RID,t1.REC_TYPE,t1.REC_ORDER,t1.GOODS_REF,t2.ABBR,t2.NAME,t2.TAXRATES,
             t1.MUNITS_REF,t3.NAME,t2.MUNITS_REF,t1.BQUANT,t1.BSUM_COST,
             t1.QUEUE_STAMP,t1.DATE_STAMP,t1.ASUM_COST
      from Moves3 t1,Goods t2,MUnits t3
      where t1.MAINDOC_REF = :MAINDOC_REF and t1.GOODS_REF = t2.RID and
         t1.MUNITS_REF = t3.RID
      order by t1.REC_ORDER
      into :RID,:REC_TYPE,:REC_ORDER,:GOODS_REF,:GOODS_ABBR,:GOODS_NAME,:TAX_RATE,
           :MUNITS_REF,:MUNITS_NAME,:BMUNITS_REF,:BQUANT,:BSUM_COST,
           :QUEUE_STAMP,:DATE_STAMP,:ASUM
    do
      begin
      execute procedure sp_ConvertGoodsMUnits :GOODS_REF,:BMUNITS_REF,:BQUANT,
                         :MUNITS_REF returning_values :QUANT;
      if( DIST_EXPENSES !=  0  ) then
         BSUM_COST = BSUM_COST * DIST_CFN;

      BTAX = null;
      select TAX from SBDetail where MOVES_REF = :RID into :BTAX;
      if (EXCL_TAX !=  0 ) then begin
         BSUM_WOTAX = BSUM_COST;
         if (BTAX is not null) then BSUM_COST = BSUM_COST + BTAX;
         else BSUM_COST = BSUM_COST * (  1  + TAX_RATE /  10000  );
         end
      else begin
         if (BTAX is not null) then BSUM_WOTAX = BSUM_COST - BTAX;
         else BSUM_WOTAX = BSUM_COST - BSUM_COST * TAX_RATE / ( 10000  + TAX_RATE);
         end

      SUM_COST  = BSUM_COST / RATE_CFN;
      SUM_WOTAX = BSUM_WOTAX / RATE_CFN;
      if (QUANT !=  0 ) then begin
         if (TAX_PRICE !=  0 ) then  BCOST = BSUM_COST / QUANT;
         else BCOST = BSUM_WOTAX / QUANT;
         COST   = BCOST / RATE_CFN;
         ACOST  = ASUM / QUANT;
         end
      else begin
         if (BSUM_COST =  0 ) then BCOST =  0 ; else BCOST   = null;
         if (SUM_COST =  0 ) then COST =  0 ; else COST   = null;
         if (ASUM =  0 ) then ACOST =  0 ; else ACOST   = null;
         end

      if (ACTIVE_FLAG !=  0  and SHOW_REMNS !=  0 ) then begin
         DATE_STAMP = DATE_STAMP +  1 ;
         if (SHOW_REMNS !=  2 ) then
            execute procedure sp_GetQueueRemns :QUEUE_STAMP,:DATE_STAMP,:CLOSE_STAMP
               returning_values :BREMN_QUANT,:BREMN_SUM_COST,:DUMMY;
         else begin
            execute procedure sp_GetQueueRemnsQ :QUEUE_STAMP,:DATE_STAMP,:CLOSE_STAMP
               returning_values :BREMN_QUANT;
            BREMN_SUM_COST = null;
            end
         select NAME from MUnits where RID = :BMUNITS_REF into :BREMN_MUNITS_NAME;
         end

      BSUM2 = null;
      select BSUM from ReceiptSumsEx where MOVE_REF = :RID into :BSUM2;
      if (BSUM2 is null) then
         BCOST2 = null;
      else
         BCOST2 = BSUM2 / QUANT;

      ASTR = null;
      select ASTR from AStrList where RID = :RID into :ASTR;
      suspend;
      end
end
...
Рейтинг: 0 / 0
31.05.2004, 16:07:15
    #32541280
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
О, fedd уже поправил.
Лучше б грохнул нафик. Там важен только SUSPEND в конце.
Его и хотелось узреть.
А раз он тама есть, то вызывать нужно (при "многострочном" результате)
как
Код: plaintext
SELECT * FROM SP_RECEIPTMOVES(NULL, 1 , 0 );
А не как EXECUTE PROCEDURE.
...
Рейтинг: 0 / 0
31.05.2004, 16:10:33
    #32541287
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
а StoredProc не пробовал использовать?
а отладить саму процедуру пробовал?
...
Рейтинг: 0 / 0
31.05.2004, 16:10:58
    #32541289
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
А как разместить в переменных в С++ то что выбрал select и передать на исполнение следущей процедуре ?
...
Рейтинг: 0 / 0
31.05.2004, 16:12:41
    #32541296
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
2 alex777
используй StoredProc, там задашь выходные параметры и передашь типа такого:
Код: plaintext
Result:=ParamByName('E_NREC').Value;
...
Рейтинг: 0 / 0
31.05.2004, 16:13:02
    #32541297
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
саму процедуру нельзя отлаживать я не являюсь разработчиком этой базы, но надо дописать к ней кое что чтобы расширить ее возможности
...
Рейтинг: 0 / 0
31.05.2004, 16:13:43
    #32541298
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
то есть так
Код: plaintext
Result:=StoredProc.ParamByName('E_NREC').Value;
дельфовый код...
...
Рейтинг: 0 / 0
31.05.2004, 16:14:52
    #32541300
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
дописать к базе или клиенту?
и вообще отлаживать, не значит менять, просто проверить работоспособность...
...
Рейтинг: 0 / 0
31.05.2004, 16:15:42
    #32541304
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Нового клиента написать который будет делать определенные действия
...
Рейтинг: 0 / 0
31.05.2004, 16:19:33
    #32541312
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Дорогой VF!
Во первых строках своего письма спешу соощить, что мы тут все живы здоровы, близорукостью не страдаем. Чего и вам желаем. Ибо тот факт, что ты никак не хочешь зметить конструкцию
Код: plaintext
1.
2.
3.
4.
for select ... do
  begin
 ...........
  suspend;
  end
заставляет нас обеспокоиться о твоём драгоценном здоровье. А паче всего о зрении, кое речено классиком буде, есть врата в душу человеческую.

(шутю я так)
...
Рейтинг: 0 / 0
31.05.2004, 16:20:34
    #32541322
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
ну так и используй StoredProc, что мешает, ну или считывай позаписно из набора данных в Query...
...
Рейтинг: 0 / 0
31.05.2004, 16:20:50
    #32541323
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Мимопроходящий не выходить по твоему процедура не отрабатывается.
...
Рейтинг: 0 / 0
31.05.2004, 16:24:20
    #32541331
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
А как ты определил, что она не отрабатывается?
...
Рейтинг: 0 / 0
31.05.2004, 16:24:51
    #32541333
VF
VF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
2 Мимопроходящий
ну так пусть встаёт на нужную запись и оттуда берёт что надо, а пример с переменной я просто в качестве примера привёл, я не говорю "делай ТАК и только ТАК!!!"...
-------------
ля-ля-ля-ля-ля... а я сошла с ума! какая досада... (с)домомучительница
...
Рейтинг: 0 / 0
31.05.2004, 16:26:53
    #32541342
alex777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
INSERT INTO LOG (WHEN_EXECUTED,PROC) VALUES ('NOW','SP_RECEIPTMOVES');
INSERT INTO T_SP_RECEIPTTMOVES (MAIN_DOC_REF,SHOW_REMNS,TAX_PRICE) VALUES (:maindoc_ref,:show_remns,:tax_price);

в таблицах пусто !
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку) / 25 сообщений из 64, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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