刚接触三层,碰到了一个问题.想请教下各位朋友.
这是我的表结构
--采购表头
CREATE TABLE INHEAD (
djbh varchar(40) NOT NULL , --入库单号,第一位表示单位编号Dwbm
rq datetime NOT NULL , --入库日期
dwbm varchar(20) not null, --供货单位
bz varchar (120) NULL , --备注
CONSTRAINT PK_INHEAD PRIMARY KEY (djbh),
CONSTRAINT FK_INHEAD_dwbm FOREIGN KEY (dwbm) REFERENCES vendor_wh(fcode),
)
GO
--采购进货明细
create table inhouse
(fid int IDENTITY (1, 1) NOT NULL ,
djbh varchar(40) not null,--单号
fyaoid varchar(20) not null,--药品ID
mount float null,--数量
dj float null,--进价
je float null,--进货金额
CONSTRAINT pk_INHOUSE PRIMARY KEY (fid),
CONSTRAINT fk_INHOUSE_djbh FOREIGN KEY (djbh) REFERENCES INHEAD(djbh) ON DELETE CASCADE,
CONSTRAINT fk_INHOUSE_fyaoid FOREIGN KEY (fyaoid) REFERENCES YAOID(fcode))
go
这是C/S结构保存数据库的代码(一直这样写的)
DM1.adoconn.BeginTrans ;
try
QMaster.UpdateBatch;
QDetail.UpdateBatch;
DM1.adoconn.CommitTrans;
except
QMaster.CancelBatch;
QDetail.CancelBatch;
DM1.adoconn.RollbackTrans;
end;在三层中怎么实现保存主从表呢, 与两层一样事务加批量保存,谢谢了!
这是我的表结构
--采购表头
CREATE TABLE INHEAD (
djbh varchar(40) NOT NULL , --入库单号,第一位表示单位编号Dwbm
rq datetime NOT NULL , --入库日期
dwbm varchar(20) not null, --供货单位
bz varchar (120) NULL , --备注
CONSTRAINT PK_INHEAD PRIMARY KEY (djbh),
CONSTRAINT FK_INHEAD_dwbm FOREIGN KEY (dwbm) REFERENCES vendor_wh(fcode),
)
GO
--采购进货明细
create table inhouse
(fid int IDENTITY (1, 1) NOT NULL ,
djbh varchar(40) not null,--单号
fyaoid varchar(20) not null,--药品ID
mount float null,--数量
dj float null,--进价
je float null,--进货金额
CONSTRAINT pk_INHOUSE PRIMARY KEY (fid),
CONSTRAINT fk_INHOUSE_djbh FOREIGN KEY (djbh) REFERENCES INHEAD(djbh) ON DELETE CASCADE,
CONSTRAINT fk_INHOUSE_fyaoid FOREIGN KEY (fyaoid) REFERENCES YAOID(fcode))
go
这是C/S结构保存数据库的代码(一直这样写的)
DM1.adoconn.BeginTrans ;
try
QMaster.UpdateBatch;
QDetail.UpdateBatch;
DM1.adoconn.CommitTrans;
except
QMaster.CancelBatch;
QDetail.CancelBatch;
DM1.adoconn.RollbackTrans;
end;在三层中怎么实现保存主从表呢, 与两层一样事务加批量保存,谢谢了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货