如何实现SQL Server 7.0数据表之间的相互关联(100分)

  • 主题发起人 主题发起人 wangqj1163
  • 开始时间 开始时间
W

wangqj1163

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi的dbgrid录入SQL Server 7.0数据时,其中有三个数据表,“库存表”、
“进货表”、“出货表”,想做到录入进货、出货的同时修改“库存表”,并且在库存
表中某中货物库存为0时,不能出货。问如何实现?
 
数据库编程中有两种写法:
第一种,是使用SQL Server中的Trigger,即触发器,
让数据库在满足一定条件下自动更新其他数据。
但使用这种方法会影响数据库的使用效率。
第二种,在编码中使用SQL语言实现,例如在delphi中,
想实现进货时修改库存表,可以在进货的Table的
AfterPost或BeforePost事件中用TQuery修改库存表。
写法示范如下:
procedure Form1.Table_jhBeforePost(Sender:TObject);
begin
if Table_jh.State = dsInsert then begin
with Query1 do begin
Active := False;
Sql.Clear;
Sql.Add('Update 库存表 set 产品数量=产品数量+'+
Table_jh.FieldByName('产品数量').AsString+
' where 产品编号='''+Table_jh.FieldByName('产品编号').AsString+'''');
ExecSql;
end;
end;
end;
 
同意第二种方法。注意用事务
 
接受答案了.
 
后退
顶部