欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏SuperMap应用与开发SO开发 → 正文
属性条件查询集
07-10-26 10:01:02 作者: 出处:

功能简介:

    示范SuperMap Objects 的SQL查询功能(主要是使用soDatasetVector对象的Query方法)和高亮显示选中的对象。soSelection是一个临时记录集,它提供了把其它记录转入为临时记录集的FromRecordset方法,高亮显示这个临时记录集;同时提供了把临时记录集转出为一个新的记录集的方法ToRecordset,实现了记录集与选择记录集之间的动态交换

数据来源:..\Data\World目录下的World.sdb和World.sdd两个文件

    所用SuperMap Objects 组件、对象的主要属性和方法:

控 件 及 对 象 属  性 方  法
SuperWorkspace   OpenDatasource
SuperMap Selection   
soRecordset   GetFieldInfos,GetFieldValue
soDatasetVector   Query,GetGeometry
soDgnLinks   ConvertToString
soDataSource   RecordsetToDataset

功能实现:

  • 配置SQL条件窗口,进行模糊查询
    frmSQLExpression.Show vbModal, Me                                      '显示配置SQL条件窗口

    Set objDtVector = Form1.SuperMap1.Layers.Item(cmbLayerName.Text).Dataset
    Set objRecordset = objDtVector.Query(Trim$(txtExpression.Text), False, ,  _ 
                       "order by " & cmbSortfield.Text & " ASC")           '不取空间数据,升序排列
      Set objRecordset = objDtVector.Query(Trim$(txtExpression.Text), False, , _ 
                       "order by " & cmbSortfield.Text & " Desc")          '不取空间数据,降序排列
    Set objRecordset = objDtVector.Query(Trim$(txtExpression.Text), True)  '要取空间数据
    Set objDs = Form1.SuperWorkspace1.Datasources.Item(cmbDSName.Text)        '保存为数据集
    objDs.IsAvailableDatasetName(txtDtName.Text)                           '检查数据集名是否合法
    objDt = objDs.RecordsetToDataset(objRecordset, Trim$(txtDtName.Text))  '生成数据集
    Form1.SuperMap1.Layers.AddDataset objDt, True                          '加入数据集
  • 显示查询结果窗口:
    Load frmDataSetStru

    Set frmDataSetStru.objRecordset = objRecordset
    Set frmDataSetStru.objDt = objDtVector
    frmDataSetStru.Show , Form1
  • 使选中的记录高亮显示
    Form1.SuperMap1.Selection.FromRecordset objRecordset                   '高亮显示查询到的数据集

  • 单独显示查询结果:
For i = 2 To SuperMap1.Layers.Count    '隐藏其它图层
     SuperMap1.Layers(i).Visible = False
Next


(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号