由于系统业务提交量大,我用触发器调用存储过程,便于日后的维护
问:我如何在DELPHI中得到触发器的raiserroe的返回值
{触发器例}
CREATE Trigger TUStockSchedule on StockSchedule
for Update
as
Declare @PreMoney money,
@IsActive Int,
@ClientDataID int,
@iserror char
Select @PreMoney = PreMoney, @IsActive = IsActive ,@ClientDataID= ClientDataID FRom StockSchedule
if (@IsActive = 0)
begin
exec wangjie @PreMoney, @IsActive,@ClientDataID
if @@error <> 0
begin
raiserror ('错误返回串',16,1)
rollback transaction
end
end;
{存储过程}
CREATE Procedure wangjie
@PreMoney money,
@IsActive Int,
@ClientDataID int
as
if @Isactive = 0
begin
update FinanceTotal set FinanceTotal.Payed = @PreMoney + FinanceTotal.Payed
where FinanceTotal.ClientDataID = @ClientDataID
end
GO
问:我如何在DELPHI中得到触发器的raiserroe的返回值
{触发器例}
CREATE Trigger TUStockSchedule on StockSchedule
for Update
as
Declare @PreMoney money,
@IsActive Int,
@ClientDataID int,
@iserror char
Select @PreMoney = PreMoney, @IsActive = IsActive ,@ClientDataID= ClientDataID FRom StockSchedule
if (@IsActive = 0)
begin
exec wangjie @PreMoney, @IsActive,@ClientDataID
if @@error <> 0
begin
raiserror ('错误返回串',16,1)
rollback transaction
end
end;
{存储过程}
CREATE Procedure wangjie
@PreMoney money,
@IsActive Int,
@ClientDataID int
as
if @Isactive = 0
begin
update FinanceTotal set FinanceTotal.Payed = @PreMoney + FinanceTotal.Payed
where FinanceTotal.ClientDataID = @ClientDataID
end
GO
在Delphi中要用try except on e:Exception do begin end
http://borland.mblogger.cn/xiaocuo_zrf
吧
格式就是 maltel(迈拓) 的做法。
try
ADOCommand1.Execute;
except
on E: Exception do
SHowmessage(E.Message);
end; try
SQLDataSet1.Open;
except
on E: Exception do
SHowmessage(E.Message);
end;这两种都成功的现实了错误信息。