修改多条记录(50分)

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

wyh_yt

Unregistered / Unconfirmed
GUEST, unregistred user!
我在dbgrideh中查询出来多条记录,希望写一个函数修改与之联系的多条记录可怎么写也不对,请各位高手指教
 
你把代码贴出来,帮你看看为什么不对。我没有用过dbgrideh,但相信都一样。
 
用Sql进行更新!当然表中不能少了Key
 
我想开始我说的不够明白,是这样的:我的界面中有两个ADOQuery,一个叫Main,一个叫Detail,Detail所连的表叫xs,在Detail中查询出两条或两条以上的记录,在数据库中还有一个表叫xslr,这个表与xs中的字段是相同的,我希望在Main保存后,修改xslr中与在Detail查询出的记录的主键相同的记录的内容,但是我写的代码只能修改其中的一条,请各位高手帮忙!
 
其实不难,不过不知道你的代码是怎么写的……
一般里面的Query里面的SQL会带参数,数据更改后,改参数值,或者直接调用Requery的方法就OK了
 
代码:
procedure TFrmQxQp_XSTK.MainAfterPost(DataSet: TDataSet);
var
strSQL:string;
S1,S2,S3,S4,S5,S6,S7:Double;
const
cSQL='select 数量,货款,税额,总金额,成本,配件利润,退料标记 from xslr where 业务单号=''%s'' and 配件代码=''%s''';
begin
inherited;
strSQL:=Format(cSQL,[QryBase.FieldByName('原单号').Asstring,QryDetail.FieldByName('配件代码').Asstring]);
if DM_Main.OpenQueryEx(strSQL) then
begin
S1:=DM_Main.QryMain.Fields[0].AsFloat;
S2:=DM_Main.QryMain.Fields[1].AsFloat;
S3:=DM_Main.QryMain.Fields[2].AsFloat;
S4:=DM_Main.QryMain.Fields[3].AsFloat;
S5:=DM_Main.QryMain.Fields[4].AsFloat;
S6:=DM_Main.QryMain.Fields[5].AsFloat;
S7:=DM_Main.QryMain.Fields[6].AsFloat;

with DM_Main.QryMain do
begin
Open;
Edit;
FieldByName('数量').AsFloat:=S1-Detail.FieldByName('数量').AsFloat;
FieldByName('货款').AsFloat:=S2-Detail.FieldByName('货款').AsFloat;
FieldByName('税额').AsFloat:=S3-Detail.FieldByName('税额').AsFloat;
FieldByName('总金额').AsFloat:=S4-Detail.FieldByName('总金额').AsFloat;
FieldByName('成本').AsFloat:=S5-Detail.FieldByName('成本').AsFloat;
FieldByName('配件利润').AsFloat:=S6-Detail.FieldByName('配件利润').AsFloat;
FieldByName('退料标记').AsFloat:=S7+Detail.FieldByName('数量').AsFloat;
Post;
Close;
end;
 
后退
顶部