arcSDE插入空間數(shù)據(jù)時出現(xiàn)錯誤SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST的原因和解決辦法
Posted on 2007-04-02 23:05 Kevin Meng 閱讀(1858) 評論(1) 編輯 收藏Error Description : SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST.
com.esri.sde.sdk.client
at com.esri.sde.sdk.client.j.a(Unknown Source)
at com.esri.sde.sdk.client.j.a (Unknown Source)
at com.esri.sde.sdk.client
at com.suzhou.service.sde.SDEOpera
at com.suzhou.struts.action
at org.springframework.web.struts
at org.apache.struts.action
at org.apache.struts.action
at org.apache.struts.action
at org.apache.struts.action
at javax.servlet.http.HttpServlet
at javax.servlet.http.HttpServlet
at org.apache.catalina.core
at org.apache.catalina.core
at com.suzhou.util.SetCharacterEnc
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.valves
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.coyote.tomcat5
at org.apache.coyote.http11
at org.apache.coyote.http11
at org.apache.tomcat.util.net
at org.apache.tomcat.util.threads
at java.lang.Thread.run(Thread.java:619)
插入點的java代碼如下:
String server = "menglikunm";
int instance = 5151;
String database = "ora";
String user = "suzhou";
String password = "suzhou";
public Long addPointObject(long x, long y, String tabname) throws Exception {
SeLayer insertLayer = null;
SeConnection conn = null;
Long intsertRowID = null;
try {
conn = new SeConnection(server, instance, database, user, password);
Vector layerList = conn.getLayers();
for (int index = 0; index < layerList.size(); index++) {
SeLayer layer = (SeLayer) layerList.elementAt(index);
System.out.println(layer.getName());
if ( layer.getName().equalsIgnoreCase(tabname)) {
insertLayer = layer;
break;
}
}
} catch (SeException e) {
// e.printStackTrace();
throw e;
}
// 開始插入數(shù)據(jù)
if (insertLayer == null) {
throw new Exception("找不到空間表:" + tabname);
}
try {
conn.startTransaction();
String[] cols = new String[1];
//cols[0] = insertLayer.getSpatialColumn();
cols[0]="SHAPE";
System.out.println(cols[0]);
SeInsert insert = new SeInsert(conn);
System.out.println(insertLayer.getName());
insert.intoTable(insertLayer.getName(), cols);//運行到這里時出現(xiàn)錯誤!
insert.setWriteMode(true);
SeCoordinateReference coordref = (SeCoordinateReference) insertLayer
.getCoordRef();
SeShape shape = new SeShape(coordref);
int numPts = 1;
SDEPoint[] ptArray = new SDEPoint[numPts];
ptArray[0] = new SDEPoint(x, y);
shape.generatePoint(numPts, ptArray);
SeRow row = insert.getRowToSet();
row.setShape(0, shape);
insert.execute();
intsertRowID = new Long(insert.lastInsertedRowId().longValue());
insert.close();
conn.commitTransaction();
conn.close();
} catch (Exception ex) {
ex.printStackTrace ();
try {
conn.rollbackTransaction();
conn.close();
} catch (Exception ex2) {
}
throw ex;
}
return intsertRowID;
}
很多時候,這些問題都要你自己來發(fā)現(xiàn)和解決,不能太相信ESRI的技術(shù)支持,他們大部分時候都不能給你什么幫助:)