Yup über eine TQuery oder ein TDataset. Die
BDE unterstützt leider keine Skripte, aber
ADO...
Ich würde vielleicht auch einfach die StoredProcedure so umschreiben, das sie genau eine Tabelle liefert (eine Zeile, eine Spalte). Dann geht's auf jeden Fall mit einer TQuery, auch unter der
BDE.
SQL-Code:
Create procedure generator_id ( @IdGenerator varchar(20))
as
begin
declare @ID integer
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION SP_GEN_ID
select @ID = CurrentValue from Generators where IdGenerator =@IdGenerator
IF @@ERROR <> 0 GOTO LBL_ERROR
update Generators set CurrentValue =CurrentValue + 1 where IdGenerator=@IdGenerator
IF @@ERROR <> 0 GOTO LBL_ERROR
COMMIT TRANSACTION SP_GEN_ID
select @ID as NewID -- Statt return @ID
return (0) -- fehlte sowieso
LBL_ERROR:
ROLLBACK TRANSACTION SP_GEN_ID
select 0 as NewID -- Statt return 0
return (1)
end