关于多层的Master/Detail数据insert问题?(80分)

  • 主题发起人 主题发起人 zc_king
  • 开始时间 开始时间
Z

zc_king

Unregistered / Unconfirmed
GUEST, unregistred user!
Server 环境:
SQL SERVER 2000 + ADO
Client 环境:
SocketConnection + ClientDataSet
主从表如:
select * from tbMaster
id name
================
10260001 aaaaa
11260001 bbbbb
select * from tbDetail
id price
===============
10260001 5.00
10260001 10.00
id 由 10类型 26 部门 0001 流水号 组成
我想在插入数据时从服务器取得id.我以前是做一个临时表再用存储过程把数据insert into到正式的表,但这样做好像挺笨。
请问高手们,是如何怎样处理的?客户端用什么方法?服务器端用什么方法?
因为,大富翁的搜索开不了所以一点头绪也没有。
万分感谢
 
你看这样行吗?
//首先得到ID号,要考虑并发,免得出现重复;
//接着你在AdoQuery1上写
try
AdoQuery.Sql.Add('begin
tran');
Ado.Query1.ExecSql;
Ado.Query1.Clear;
AdoQuery.Sql.Add('insert into tbMaster(id,name) values('+''''+Id+''''+','+''''+InName+'''');
Ado.Query1.ExecSql;
Ado.Query1.Clear;
AdoQuery.Sql.Add('insert into tbDetail
(id,name) values('+''''+Id+''''+','+''''+InID+'''');
Ado.Query1.ExecSql;
Ado.Query1.Clear;
//产生新的ID号,回填到ID表
//最后
AdoQuery1.Sql.Add('commit tran');
except
AdoQuery1.Sql.Add('rollback tran');
end;
 
请看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2137718
应该很清楚
 
多人接受答案了。
 
后退
顶部