arcSDE插入空間數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST的原因和解決辦法
Posted on 2007-04-02 23:05 Kevin Meng 閱讀(1858) 評(píng)論(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)
插入點(diǎn)的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;
}
// 開(kāi)始插入數(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);//運(yùn)行到這里時(shí)出現(xiàn)錯(cuò)誤!
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;
}
很多時(shí)候,這些問(wèn)題都要你自己來(lái)發(fā)現(xiàn)和解決,不能太相信ESRI的技術(shù)支持,他們大部分時(shí)候都不能給你什么幫助:)