![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Значение генератора [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)