阅读:1506回复:1
[求助]SDE JAVA--API 开发时遇到的问题。请各位高手帮忙分析一下!
<H2><FONT size=1>目前在用ArcSDE的javaAPI开发。在这过程中遇到了一个奇怪的问题。<BR>出现问题的地方就在下面代码中。在执行完 <FONT color=red>SeRow row = query.fetch(); 后</FONT><FONT color=black>对取得的row中的列的定义做遍历,即colDef = row.getColumnDef(i);int type = colDef.getType(); 而我要查询字段<I>fields</I>中,有一个为“shape”,就是空间列。按照正常的情况来说,空间列的定义 colDef.getType()的值应该是8。而我在运行这段程序的时候, 发现空间列定义得到的类型值却是2(int型)。于是程序就不再运行 <FONT color=blue>case SeColumnDefinition.TYPE_SHAPE:</FONT></FONT><FONT color=black>下面的程序。而跑到case SeColumnDefinition.TYPE_INT32:中去了。</FONT><BR> 另外还有一点,这个问题在我对一些图层查询的时候存在,而在查询另一些图层的时候却是正常的(type=8)。<BR> 还请高手帮忙分析,问题出在了哪里?万分感激!<BR><BR><BR><BR><BR> query = new SeQuery(conn, <I>fields</I>, sqlConstruct);<BR> query.prepareQuery();<BR> query.setSpatialConstraints(SeQuery.SE_OPTIMIZE, false, filters);<BR> query.execute();<BR> <FONT color=red>SeRow row = query.fetch();</FONT><BR> <BR> SeColumnDefinition colDef = new SeColumnDefinition();<BR> while( row != null ) {<BR> int max=row.getNumColumns();<BR> HashMap fieldsValue = new HashMap();<BR> for( int i=0 ; i < max ; i++ ) {<BR> <BR> colDef = row.getColumnDef(i);<BR> int type = colDef.getType();<BR> if ( row.getIndicator((short)i) != SeRow.SE_IS_NULL_VALUE) {<BR> <BR> switch( type ) {<BR> <BR> case SeColumnDefinition.TYPE_INT32:<BR> ..... <BR> break;<BR><BR> <FONT color=blue>case SeColumnDefinition.TYPE_SHAPE:</FONT><BR> 。。。。。</FONT></H2>
|
|
1楼#
发布于:2008-11-24 08:59
继续等待中........
|
|