关于数据记录复制插入的问题?(100)

  • 主题发起人 主题发起人 de410
  • 开始时间 开始时间
D

de410

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表,结构如下:表1ANO ,ANAME, A1 N1 A2 N2 A3 N3 表2主键为ANO,B_NO,ANO ,ANAME, B_NO, B_NAMEA1 N1 001 S1 A1 N1 002 S2 A1 N1 003 S3 A1 N1 004 S4 A1 N1 005 S5 A1 N1 006 S6 A1 N1 007 S7 所用控件adoquery,datasource,dbgriddbgrid1为表1的数据,dbgrid2为表2的数据,当在dbgrid1上选择A1这条记录,点复制按钮btn1时,弹出一个窗口,在其中的edit.text中输入A2,点确定后,语句能在表2中插入如下数据,并实时更新DBGRID2:A2 N1 001 S1 A2 N1 002 S2 A2 N1 003 S3 A2 N1 004 S4 A2 N1 005 S5 A2 N1 006 S6 A2 N1 007 S7 烦请大家给各思路~~~
 
var dt:TDataset; i:Integer;begin dt = dbgrid2.datasource.dataset; for i:=1 to 7 do begin dt.append; dt.fieldbyname('ANO').asstring := edit2.text; dt.fieldbyname('aname').asstring:='N1'; dt.fieldbyname('B_NO').asstring:='00'+Inttostr(I); dt.fieldbyname('B_Name').asstring:='S'+Inttostr(I); dt.post; end;
 
还有如果表2有很多字段的话,是不是每个都要dt.fieldbyname('fildname').asstring可不可以用数组来做?
 
for K:=0 TO dt.fields.count-1 do dt.fields[k].value := 如何赋值呢?
 
是否可以用多维数组?
 
数组的每个元素也都需要赋值的吧?那样在数组赋值的地方,代码有冗余了。毕竟这些数据在赋值的时候是没有规律的,或者说,你还没让我们看到规律,所以只能这么一个一个字段地赋值。
 
也就是一个主从表的关系,主表1是单头,从表2是单身(明细表),我想从主表1中选一个记录,将其对应的从表2种的记录复制后,改变第一个字段值后,再插入从表2中~~
 
没有达到效果~~好像只是把原有的A1改为A2 ,没有插入复制的数据~~
 
期待其他高人可以理解你的想法,可以写出你所需要的代码来。我,已经想不出什么其他花样了。
 
单一记录赋值部分代码示例:var f:TField;begin for i:=0 to query2.fields.count-1 do begin F:= query1.FindField( query2.Fields.fieldName ); if F<>Nil then query2.fields.value := F.Value; end;query2.fieldbyname( 你的那个需要改变值的字段 ).value := 新的值
 
不管怎么说,还是谢谢你了~~
 
后退
顶部