Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Значение генератора [D7, IB6.x]


Назаров Евгений ©   (2002-11-14 19:27:00) 

Мужики, как в переменную Num:integer , записать значение генератора gReq как можно проще.
SQL знаю плохо, поэтому не знаю как вытащить значение
gen_id(gReq,0) не записывая его в другую таблицу


Bmouradov   (2002-11-16 13:22:00) [1]

function GetNewId(qry: TIBQuery; Generator: string): integer;
begin
qry.Close;
qry.SQL[0] := "SELECT GEN_ID(" + Generator + ", 1) AS Id";
qry.Open;
try
Result := qry.Fields[0].AsInteger;
finally
qry.Close;
end;
end; //GetNewId


Andriano   (2002-11-16 08:17:00) [2]

Двоеточие после END нельзя ставить. Не забывайте, что не на Delphi пишите.


Назаров Евгений   (2002-11-15 19:26:00) [3]

так в том-то и дело, что я тоже так хотел, но не работает так зараза, говорит не могу найти конец процедуры, я все варианты перепробовал, только мой и заработал


-=Sergeante=-   (2002-11-15 18:47:00) [4]


> Назаров Евгений (14.11.02 20:27)
> получилось, спасибо, только вот понять не могу, почему ";"
> приходится ставить перед n1 и suspend, (подругому не работает)
> ,конечно может быть IBConsole глючит

??? Может всё таки так:
CREATE PROCEDURE GetReq
RETURNS(n1 INTEGER)
AS
BEGIN
n1=GEN_ID(gReq,0);
SUSPEND;
END;


Val   (2002-11-14 20:54:00) [5]


> конечно может быть IBConsole глючит

нет, доку нужно почитать.


Назаров Евгений   (2002-11-14 20:27:00) [6]

получилось, спасибо, только вот понять не могу, почему ";" приходится ставить перед n1 и suspend, (подругому не работает) ,конечно может быть IBConsole глючит

CREATE PROCEDURE GetReq
RETURNS(n1 INTEGER)
AS
BEGIN
;n1=GEN_ID(gReq,0)
;SUSPEND;
END;


Cranium   (2002-11-14 19:54:00) [7]

Примерно такая ХП
CREATE PROCEDURE RETURN_GEN
RETURN(OUT_ID INTEGER) AS
BEGIN
GEN_ID(NUMBE_H1)=:OUT_ID;
SUSPEND;
END


Назаров Евгений   (2002-11-14 19:42:00) [8]

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


Val   (2002-11-14 19:39:00) [9]

предупрежу, запрос в моем предыдущем ответе, скопирован из доки первой попавшейся. лучше проверить.


Назаров Евгений   (2002-11-14 19:39:00) [10]

то есть запрос
select distinct gen_id(CUST_NO_GEN, 0) from RDB$GENERATORS;
возвращает таблицу с одим полем и одной записью ?, если не трудно, напишите пожалуйста как ее получить?


Val   (2002-11-14 19:36:00) [11]

select distinct gen_id(CUST_NO_GEN, 0) from RDB$GENERATORS;

Этот запрос возвращает значение генератора CUST_NO_GEN


Cranium   (2002-11-14 19:36:00) [12]

CREATE TRIGER NUMBE_H;
..................

Num=GEN_ID(NUMBE_H,1)


Наверх

Титульная страница Поиск, карта сайта Написать письмо