`
javahigh1
  • 浏览: 1276846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

FDO——新的GetSchemaNames和GetClassNames命令

阅读更多

FDO 3.4之前,使用FdoIDescribeSchema会返回DataStore中所有要素模式和要素类的信息。如果DataStore中包含了大量的要素类,执行FdoIDescribeSchema命令将是一个非常耗时的过程,对RDBMS类型的FDO Prvoder来说尤为如此。在许多情况下,用户只想得到某些要素模式和要素类的名称,这时他们需要一种更加高效的方法。

FDO 3.4引入了两个新的命令FdoIGetSchemaNamesFdoIGetClassNames来解决这个问题。命令FdoIGetSchemaNames可以返回DataStore中所有要素模式的名称,命令FdoIGetClassNames可以返回指定要素模式中所有要素类的名称。

以下示例代码展示了如何获得DataStore的第一个要素模式中所有要素类的名称。

// 创建FdoIGetSchemaNames命令

FdoPtr<FdoIGetSchemaNames> getSchemaNamesCmd = (FdoIGetSchemaNames*)

connection->CreateCommand(FdoCommandType_GetSchemaNames);

// 执行FdoIGetSchemaNames命令,获得Data Store中所有要素模式的名称

FdoPtr<FdoStringCollection> schemaNames = getSchemaNamesCmd->Execute();

// 创建FdoIGetClassNames命令

FdoPtr<FdoIGetClassNames> getClassNamesCmd = (FdoIGetClassNames*)

connection->CreateCommand(FdoCommandType_GetClassNames);

FdoString* schemaName = (FdoString*)schemaNames->GetItem(0)->GetString();

getClassNamesCmd->SetSchemaName(schemaName);

//执行FdoIGetSchemaNames命令,获得DataStore的第一个要素模式中所有要素类的名称

FdoPtr<FdoStringCollection> classNames = getClassNamesCmd->Execute();

但是,如果想使用FdoIDescribeSchema返回指定要素类的定义,我们还必须扩展该命令。所以,FDO 3.4扩展了命令FdoIDescribeSchema,增加了方法GetClassNamesSetClassNames

class FdoIDescribeSchema : public FdoICommand

{

public:

virtual FdoString* GetSchemaName();

virtual void SetSchemaName(FdoString* value);

// FDO 3.4中新增的方法

virtual FdoStringCollection* GetClassNames();

virtual void SetClassNames(FdoStringCollection* value);

......

};

如果为该命令设置了需要返回的要素模式名称和要素类名称,则只返回指定要素类的定义;如果没有指定要素模式名称,在调用方法SetClassNames时必须使用合格名称(Qualified Name,即由要素模型名称和要素类名称组成的名称);如果要素类名称不是合格名称,那么返回所有匹配要素类的定义。

但是,遗憾的是:并非所有FDO Provider支持对命令FdoIDescribeSchema的扩展。因为多数文件类型的FDO Provider并不会受益于这个扩展,所以目前主要是RDBMS类型的FDO Provider支持这种扩展。例如:在使用FDO SQLite Provider时,即使调用SetClassNames设置了需要返回的要素类,仍然会返回所有的要素类定义。

分享到:
评论

相关推荐

    公司内部资料非常好的C#调用FDO开发教程

    FDO允许用户无缝的直接访问多种空间/非空间的数据库和文件格式,而不需进行数据转换,也不会丢失数据,因此可以提高生产效率和节省时间。 FDO具有以下特点: * 对地理空间要素数据提供了一致的访问接口 * 平台无关...

    FDO技术在地理信息系统中的应用

    FDO技术作为一种新兴的数据访问标准,为解决GIS数据的互操作性和共享问题提供了新的思路。本文旨在探讨FDO技术的基本概念、发展历程及其在GIS领域的具体应用。 #### 二、问题的提出 ##### 2.1 系统平台问题 当前...

    FDO 基础知识总结

    FDO通过Provider对DataStore进行了分类,如SDF、SHP和Raster Providers用于访问文件系统中的数据,而Oracle、MySQL、ArcSDE和SQL Server Providers则用于访问数据库中的数据;WMS和WFS Providers用于访问网络服务上...

    FDO适应度优化算法_FDO适应度优化算法_适应度函数_最优化算法_

    在FDO算法中,适应度函数的选择和设计是关键,因为这将决定算法的收敛速度和找到全局最优解的能力。一个良好的适应度函数应具备以下特性:非负性、对目标函数的线性映射、可比较性以及可归一化。 最优化算法是寻找...

    FDO Provider for SuperMap 用户手册1

    这一章将详细介绍如何在AutoCAD Map3D 2008中使用FDO Provider for SuperMap,包括如何建立数据连接,浏览数据,编辑地图,执行空间查询,以及如何创建和管理新的空间数据集。 总之,FDO Provider for SuperMap是...

    产品介绍_FDO1.01

    FDO Provider for SuperMap 1.0 是一个针对SuperMap数据的扩展数据引擎,它基于FDO(Feature Data Object)技术,使得使用FDO作为空间数据引擎的软件能够无缝地访问和编辑存储在SuperMap数据库中的空间和属性数据。...

    WPE后端-fdo

    2. **Wayland**:WPE后端-FDO利用Wayland作为图形服务器协议,提供安全、高效的窗口管理和显示服务。Wayland取代了传统的X Window System,为现代Linux系统提供了更现代的图形堆栈。 3. **C++**:WPE后端-FDO主要...

    西门子FDO221-CN点型感烟火灾探测器使用说明书.pdf

    西门子FDO221-CN点型感烟火灾探测器使用说明书pdf,西门子FDO221-CN点型感烟火灾探测器使用说明书:FDO221-CN点型感烟火灾探测器采用光学传感器,运用前向散射原理,提高了对火灾产生烟雾粒子的探测能力,从而大大...

    VS2015做的基于C++ 的FDO与access数据库通讯

    FDO是一个开源的中间件,它提供了一种标准化的方式来访问和操作地理空间数据,而Access数据库则是一种常见的关系型数据库管理系统,用于存储和管理结构化数据。 首先,我们要理解FDO的作用。FDO通过提供一套API,...

    Fdo_SuperMap:基于FDO(Feature Data Object)数据访问技术实现的读写SuperMap数据格式的数据引擎

    它使所有使用FDO技术作为空间数据引擎的软件(比如AutoCAD Map3D和AutoCAD Civil3D)都能够无缝访问和编辑存储在SuperMap数据库中的空间数据和属性数据。本项目内包含了该产品的源代码,产品介绍,用户手册,演示...

    fdo-server-command:Freedominion.org系统的服务器管理实用程序命令(脚本)

    3. **性能调优**:`fdo-server-command` 可能提供了调整系统参数、优化资源分配的命令,以提升服务器的响应速度和负载能力。 4. **安全设置**:更新防火墙规则、设置权限、监控入侵尝试,这些都可能是 `fdo-server-...

    matlab代码粒子群算法-FDO:适应性相关优化器-Matlab

    FDO在一组19种经典基准测试函数上进行了测试,并将结果与​​三种著名算法进行比较:PSO,遗传算法(GA)和蜻蜓算法(DA),此外,FDO在IEEE Con​​gress上进行了测试进化计算基准测试功能(CEC-C06,2019竞赛)的...

    autofdo:自动FDO

    您可以使用“sudo apt install llvm-10”之类的命令安装 llvm,也可以从源代码构建最新的 llvm。 要为 gcc 构建 autofdo 工具,不需要安装 llvm。 2. 命令 2.1 为llvm构建autofdo工具 2.1.1 如果从源码构建llvm ...

    ModelSim仿真常用命令以及仿真脚本的编写

    通过熟练掌握ModelSim的仿真命令和脚本编写技巧,设计师可以构建高度自动化、高效率的仿真流程,有效提升数字电路设计的验证速度和质量。无论是简单的逻辑电路还是复杂的系统级芯片设计,合理的脚本化管理都能带来...

    linux系统外接存储管理命令汇编.pdf

    在Linux系统中,外接存储设备的管理是通过一系列命令行工具...熟练掌握这些命令和技巧,对于日常的系统管理和维护至关重要。在实际操作中,还需要根据具体的硬件环境和需求调整命令参数,以实现最佳的存储管理效果。

    fdo-server:Freedominion.org系统的服务器管理实用程序框架存储库

    因此,fdo-server可能是通过Shell脚本实现的一系列服务器管理命令,允许用户通过命令行来控制和配置服务器。 基于以上信息,我们可以推测fdo-server的可能特点和功能: 1. **命令行界面**:fdo-server可能提供一套...

    健身依赖优化器 FDO:健身依赖优化器-matlab开发

    FDO 在一组 19 个经典基准测试函数上进行测试,并将结果与​​三种著名算法进行比较:PSO、遗传算法 (GA) 和蜻蜓算法 (DA),此外,FDO 在 IEEE 大会上进行了测试Evolutionary Computation Benchmark Test Functions...

    notaol:AOL P3 和 FDO 客户端

    Notaol 是 AOL 的通信协议 P3 和显示约定 FDO 的正在进行中的客户端实现。 快速开始 Notaol 是为 Python 3.4 或更高版本编写的。 pip3 install crcmod python3 -m notaol.rpc 使用 telnet 连接到端口 5000 上的 ...

    关于西门子消防产品介绍.pptx

    Cerberus ECO FS18 系统组件包括 FDCL181、FDO181、FDCI181-2、FDM181、FDO181、FDT181、FDHM181、FT1810、FC18、FC1820、FC1840、FC1860 等。 Cerberus ECO FS18 系统的开发目标是实现西门子楼宇科技中国业务...

    Autodesk Map 3D 2007 和 ESRI ArcSDE 基础

    5. **建立新的几何要素**:通过FDO API,可以直接在ArcSDE数据库中创建新的要素,如道路、建筑等。 6. **长事务处理和版本管理**:Autodesk Map 3D 2007支持复杂的事务处理和版本控制,确保数据的一致性和完整性。 ...

Global site tag (gtag.js) - Google Analytics