Recordset.AddNew results in an AXF_STATUS of 'geometry modified' instead of 'created.'
上次发布: January 1, 2015ArcPad
漏洞 ID 编号
NIM075530
已提交
November 17, 2011
上次修改时间
June 5, 2024
适用范围
ArcPad
找到的版本
10.0
修正版本
10.2.2
状态
Fixed
此漏洞已得到修复。 有关详细信息,请参阅“版本修复”和“其他信息”(如果适用)。
解决办法
Use the DataSource object and SQL statements to programmatically add data.The following example programmatically adds a pole to the Riverside sample’s 'Poles' layer. This code references the Poles layer in the Riverside_mdb.axf file from the installed sample data.<a href="file:C:/Users/Public/Documents/ArcPad/Samples/Riverside" target="_blank">C:\Users\Public\Documents\ArcPad\Samples\Riverside</a>Dim objLayer, objDS, X, YSet objLayer = Map.Layers("Poles")Set objDS = objLayer.DataSourceX=Map.PointerXY=Map.PointerYDim strSQLstrSQL = "INSERT INTO [POLES] (POLEID,SHAPE_X,SHAPE_Y, AXF_TIMESTAMP, AXF_STATUS) VALUES (100011" & "," & X & "," & Y & "," & "GETDATE(),1)"objDS.Execute strSQLMap.Refresh(True)Set objLayer = NothingSet objDS = Nothing------------------------------------------------------------------------------When adding new polylines or polygons, users may need to just use RecordSet.AddNew, but before check-in of the AXF data, open it in ArcPad Studio, search for the newly added records then set the value of AXF_STATUS to 'created'. This workaround is based on the assumption that user only creates new records in the field, i.e, no geometry modification is performed at the same time The other workaround - use Map.AddFeature -- can also add new records to the current editable layer in the map and the value of the AXF_Status field is correct in AXF file