var ADOSetTmp: TADODataSet;
i,j:int64;
begin
ADOQuery1.DisableControls;
ADOSetTmp := nil;
ADOSetTmp := TADODataSet.Create(ADOSetTmp);
ADOSetTmp.CommandText := 'select max(xh) as num from TBA_PZ where mc='''+zw_para0+''' and xh<'+inttostr(ADOQuery1.FieldByName('xh').AsInteger);
ADOSetTmp.Connection := data1.ADOConnection1;
ADOSetTmp.Open;
if ADOSetTmp.FieldByName('num').Value<>null then
begin
j:=ADOQuery1.FieldByName('xh').Value;
i:= ADOSetTmp.FieldByName('num').Value;
ADOQuery1.edit;
ADOQuery1.FieldByName('xh').Value:=i;
ADOQuery1.Prior;
ADOQuery1.edit;
ADOQuery1.FieldByName('xh').Value:=j;
end;
ADOQuery1.EnableControls;
ADOSetTmp.Free;
aDOQuery1.UpdateBatch;
ADOQuery1.Close;
ADOQuery1.open;
实现了将指定行上移,但上移后记录指针又跳到数据的第一行,如果指定行要连续的上移,这样每次都要重选非常麻烦,用什么方法可以实现数据指针上移后又跟踪到原上移行
i,j:int64;
begin
ADOQuery1.DisableControls;
ADOSetTmp := nil;
ADOSetTmp := TADODataSet.Create(ADOSetTmp);
ADOSetTmp.CommandText := 'select max(xh) as num from TBA_PZ where mc='''+zw_para0+''' and xh<'+inttostr(ADOQuery1.FieldByName('xh').AsInteger);
ADOSetTmp.Connection := data1.ADOConnection1;
ADOSetTmp.Open;
if ADOSetTmp.FieldByName('num').Value<>null then
begin
j:=ADOQuery1.FieldByName('xh').Value;
i:= ADOSetTmp.FieldByName('num').Value;
ADOQuery1.edit;
ADOQuery1.FieldByName('xh').Value:=i;
ADOQuery1.Prior;
ADOQuery1.edit;
ADOQuery1.FieldByName('xh').Value:=j;
end;
ADOQuery1.EnableControls;
ADOSetTmp.Free;
aDOQuery1.UpdateBatch;
ADOQuery1.Close;
ADOQuery1.open;
实现了将指定行上移,但上移后记录指针又跳到数据的第一行,如果指定行要连续的上移,这样每次都要重选非常麻烦,用什么方法可以实现数据指针上移后又跟踪到原上移行
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货