COM+异常(200分)

  • 主题发起人 主题发起人 virtualmfc
  • 开始时间 开始时间
V

virtualmfc

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近写的一个COM+程序,中间层的异常不能被try..except捕获,不知为什么,
请各位大侠指教。
代码如下:
procedure TGoodsType.Save(Value: OleVariant);
begin
try
with DataSetdo
begin
Close;
CommandText := 'SELECT * FROM GoodsType WHERE 1=0';
Open;
end;
ClientDataSet.Data := Value;
{下面出现了异常后,不会被except捕获,这是我通过调试COM+看出的}
if ClientDataSet.ApplyUpdates(0) <=0 then
raise Exception.Create('货品类别编码不能重复');
SetComplete;
except
SetAbort;
raise;
end;
end;
 
{下面出现了异常后,不会被except捕获,这是我通过调试COM+看出的}
if ClientDataSet.ApplyUpdates(0) <=0 then
raise Exception.Create('货品类别编码不能重复');
SetComplete;
__________________________________
這樣試試
try
ClientDataSet.ApplyUpdates(0) ;
Except
raise Exception.Create('货品类别编码不能重复');
end ;
SetComplete;
 
if ClientDataSet.ApplyUpdates(0) <=0 then
raise Exception.Create('货品类别编码不能重复');
1.ClientDataSet.ApplyUpdates的返回值為更新過程程中遇到的"錯誤個數".
因此應該改為
if ClientDataSet.ApplyUpdates(0)>0 then
raise Exception.Create('貨品類別編碼不能重復');

 
同意楼上
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
504
import
I
后退
顶部