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

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

FIBPlus (FIB+) - приобретается отдельно.
Каждая из этих библиотек имеет свои достоинства и недостатки, разводить
флейм на тему что рулезнее не стОит. (А кто начнёт - тот какашка)
Но и та и другая билиотека, ушли очень далеко от своего родителя.
Начинать новый проект на основе мёртвой(и достаточно глючной) библиотеки - глупо.
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541258
Фотография alex777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541280
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, fedd уже поправил.
Лучше б грохнул нафик. Там важен только SUSPEND в конце.
Его и хотелось узреть.
А раз он тама есть, то вызывать нужно (при "многострочном" результате)
как
Код: plaintext
SELECT * FROM SP_RECEIPTMOVES(NULL, 1 , 0 );
А не как EXECUTE PROCEDURE.
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541287
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а StoredProc не пробовал использовать?
а отладить саму процедуру пробовал?
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541289
Фотография alex777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как разместить в переменных в С++ то что выбрал select и передать на исполнение следущей процедуре ?
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541296
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 alex777
используй StoredProc, там задашь выходные параметры и передашь типа такого:
Код: plaintext
Result:=ParamByName('E_NREC').Value;
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541297
Фотография alex777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
саму процедуру нельзя отлаживать я не являюсь разработчиком этой базы, но надо дописать к ней кое что чтобы расширить ее возможности
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541298
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть так
Код: plaintext
Result:=StoredProc.ParamByName('E_NREC').Value;
дельфовый код...
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541300
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дописать к базе или клиенту?
и вообще отлаживать, не значит менять, просто проверить работоспособность...
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541304
Фотография alex777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нового клиента написать который будет делать определенные действия
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541312
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорогой VF!
Во первых строках своего письма спешу соощить, что мы тут все живы здоровы, близорукостью не страдаем. Чего и вам желаем. Ибо тот факт, что ты никак не хочешь зметить конструкцию
Код: plaintext
1.
2.
3.
4.
for select ... do
  begin
 ...........
  suspend;
  end
заставляет нас обеспокоиться о твоём драгоценном здоровье. А паче всего о зрении, кое речено классиком буде, есть врата в душу человеческую.

(шутю я так)
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541322
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так и используй StoredProc, что мешает, ну или считывай позаписно из набора данных в Query...
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541323
Фотография alex777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий не выходить по твоему процедура не отрабатывается.
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541331
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты определил, что она не отрабатывается?
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541333
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Мимопроходящий
ну так пусть встаёт на нужную запись и оттуда берёт что надо, а пример с переменной я просто в качестве примера привёл, я не говорю "делай ТАК и только ТАК!!!"...
-------------
ля-ля-ля-ля-ля... а я сошла с ума! какая досада... (с)домомучительница
...
Рейтинг: 0 / 0
как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
    #32541342
Фотография alex777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
25 сообщений из 64, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / как вызвать хп под IB с использованием FreeIBComponent как ей передать параментры (Было: Подскажите новичку)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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