用mo生成shp文件时,往shp中增加记录时速度很慢 ( 积分: 50 )

  • 主题发起人 主题发起人 SeaGod1
  • 开始时间 开始时间
S

SeaGod1

Unregistered / Unconfirmed
GUEST, unregistred user!
while not UDM.cdsMaster.Eofdo

begin

FrmSchedule.ProgressBar.Position := i;
Lon := UDM.cdsMaster.FieldByName('LONGTITUDE').AsFloat;
Lat := UDM.cdsMaster.FieldByName('LATITUDE').AsFloat;
PoliceMan := UDM.cdsMaster.FieldByName('NAME').AsString;
HandSet := UDM.cdsMaster.FieldByName('LOGIN_NAME').AsString;
DeptName := UDM.cdsMaster.FieldByName('GROUPID').AsString;

X:=0;
Y:=0;
C:=114.0;
L:=Lon;
B:=Lat;
SgMidServ := TsgMidServ.Create(NIL);
SgMidServ.sgGPSCvtBL2XY(B,L,C,1,Y,X);
Pt.X := X;
Pt.Y := Y;

Recs:=IMoMapLayer(MainForm.MostMap.layers.item('警员位置')).Records;
Recs.AddNew;
Recs.fields.item('shape').value:=pt;
Recs.fields.item('NAME').value:=PoliceMan;
Recs.fields.item('LOGIN_NAME').value:=HandSet;
Recs.fields.item('GROUPID').value:=DeptName;
Recs.fields.item('X').value:=X;
Recs.fields.item('Y').value:=Y;
Recs.update;
Recs.stopediting;

UDM.cdsMaster.Next;
i := i+1;
end;

UDM.cdsMaster.Close;



主要是这段代码很慢:

Recs.AddNew;
Recs.fields.item('shape').value:=pt;
Recs.fields.item('NAME').value:=PoliceMan;
Recs.fields.item('LOGIN_NAME').value:=HandSet;
Recs.fields.item('GROUPID').value:=DeptName;
Recs.fields.item('X').value:=X;
Recs.fields.item('Y').value:=Y;
Recs.update;
Recs.stopediting;

哪个兄弟有没有好的建议?
 
后退
顶部