ArcSDE SDK获取SDE注册字段名


/**获取本图层关联的字段名和字段别名
*
* @return 字段名和字段别名
*/
public java.util.Map<String, String> getFields()
{
final Command<java.util.Map<String, String>> queryCmd = new Command<java.util.Map<String, String>>(){
@Override
public java.util.Map<String, String> execute(ISession session, SeConnection seConn) throws SeException,IOException {
java.util.Map<String, String> fieldNames = new HashMap<String,String>();

//取得class的ID编号
SeSqlConstruct objIdSeSql = new SeSqlConstruct("SDE.GDB_OBJECTCLASSES");// 构建空间查询表达式
String[] Qcols1= new String[1];
Qcols1[0] ="ID";

StringBuilder sqlSb = new StringBuilder();
sqlSb.append("NAME='").append(lyrName).append("'");
objIdSeSql.setWhere(sqlSb.toString());

final SeQuery query1 = new SeQuery(seConn, Qcols1, objIdSeSql);
query1.prepareQuery();
query1.execute();
SeRow row1 = query1.fetch();
if(row1==null)return fieldNames;
int objId =row1.getInteger(0);
if(objId<=0)return fieldNames;
query1.close();

String[] Qcols= new String[2];
Qcols[0]="FIELDNAME";
Qcols[1]="ALIASNAME";

StringBuilder sb = new StringBuilder();
sb.append("CLASSID=").append(objId);

SeSqlConstruct sqlCons = new SeSqlConstruct("SDE.GDB_FIELDINFO");// 构建空间查询表达式
sqlCons.setWhere(sb.toString());
final SeQuery query2 = new SeQuery(seConn, Qcols, sqlCons);
query2.prepareQuery();
query2.execute();
SeRow row2 = query2.fetch();
while(row2!=null)
{
String name = row2.getString(0);
String alias = row2.getString(1);
fieldNames.put(name, alias);
row2 = query2.fetch();
}
query2.close();
return fieldNames;
}
};
try
{
return this.sdeSession.issue(queryCmd);
}
catch(Exception ex)
{
ex.printStackTrace();
return Collections.emptyMap();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值