firebird数据库的问题
如果客户端需要同时编辑主表和从表,即实际上在同一个事务中对主表和从表进行插入,可能就需要在插入数据到从表前知道主表的主键值也即从表的外键值。如果主表的主键是让系统自动赋值的,那么在这个事务中你是无法获得该主键值的,你也就无法插入相应的数据到从表。解决这种情况的一种方法就是使用选择式存储过程和生成器。首先,给主表的主键创建生成器后,不要使用触发器调用生成器让系统自动赋值,而是改用存储过程调用生成器,让该存储过程返回生成器的值,例如:
CREATE PROCEDURE GetmasterID
RETURNS (ID INTEGER)
AS
BEGIN
ID = GEN_ID(MasterID, 1);
SUSPEND;
END
这样,当客户端需要给主表的主键赋一个唯一值时,就调用该存储过程取得生成器的值:Select * from GetmasterID;
请问在存储过程里怎样获得生成器的值?怎么将Select * from GetmasterID得到的值赋给一个变量?