阿斌
路人甲
路人甲
  • 注册日期2004-12-08
  • 发帖数5
  • QQ
  • 铜币107枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1506回复:1

[求助]SDE JAVA--API 开发时遇到的问题。请各位高手帮忙分析一下!

楼主#
更多 发布于:2008-11-21 17:07
<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>
喜欢0 评分0
阿斌
路人甲
路人甲
  • 注册日期2004-12-08
  • 发帖数5
  • QQ
  • 铜币107枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-11-24 08:59
继续等待中........
举报 回复(0) 喜欢(0)     评分
游客

返回顶部