在FDO 3.4之前,使用FdoIDescribeSchema会返回DataStore中所有要素模式和要素类的信息。如果DataStore中包含了大量的要素类,执行FdoIDescribeSchema命令将是一个非常耗时的过程,对RDBMS类型的FDO Prvoder来说尤为如此。在许多情况下,用户只想得到某些要素模式和要素类的名称,这时他们需要一种更加高效的方法。
FDO 3.4引入了两个新的命令FdoIGetSchemaNames和FdoIGetClassNames来解决这个问题。命令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,增加了方法GetClassNames和SetClassNames。
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设置了需要返回的要素类,仍然会返回所有的要素类定义。
分享到:
相关推荐
FDO允许用户无缝的直接访问多种空间/非空间的数据库和文件格式,而不需进行数据转换,也不会丢失数据,因此可以提高生产效率和节省时间。 FDO具有以下特点: * 对地理空间要素数据提供了一致的访问接口 * 平台无关...
FDO技术作为一种新兴的数据访问标准,为解决GIS数据的互操作性和共享问题提供了新的思路。本文旨在探讨FDO技术的基本概念、发展历程及其在GIS领域的具体应用。 #### 二、问题的提出 ##### 2.1 系统平台问题 当前...
FDO通过Provider对DataStore进行了分类,如SDF、SHP和Raster Providers用于访问文件系统中的数据,而Oracle、MySQL、ArcSDE和SQL Server Providers则用于访问数据库中的数据;WMS和WFS Providers用于访问网络服务上...
在FDO算法中,适应度函数的选择和设计是关键,因为这将决定算法的收敛速度和找到全局最优解的能力。一个良好的适应度函数应具备以下特性:非负性、对目标函数的线性映射、可比较性以及可归一化。 最优化算法是寻找...
这一章将详细介绍如何在AutoCAD Map3D 2008中使用FDO Provider for SuperMap,包括如何建立数据连接,浏览数据,编辑地图,执行空间查询,以及如何创建和管理新的空间数据集。 总之,FDO Provider for SuperMap是...
FDO Provider for SuperMap 1.0 是一个针对SuperMap数据的扩展数据引擎,它基于FDO(Feature Data Object)技术,使得使用FDO作为空间数据引擎的软件能够无缝地访问和编辑存储在SuperMap数据库中的空间和属性数据。...
2. **Wayland**:WPE后端-FDO利用Wayland作为图形服务器协议,提供安全、高效的窗口管理和显示服务。Wayland取代了传统的X Window System,为现代Linux系统提供了更现代的图形堆栈。 3. **C++**:WPE后端-FDO主要...
西门子FDO221-CN点型感烟火灾探测器使用说明书pdf,西门子FDO221-CN点型感烟火灾探测器使用说明书:FDO221-CN点型感烟火灾探测器采用光学传感器,运用前向散射原理,提高了对火灾产生烟雾粒子的探测能力,从而大大...
FDO是一个开源的中间件,它提供了一种标准化的方式来访问和操作地理空间数据,而Access数据库则是一种常见的关系型数据库管理系统,用于存储和管理结构化数据。 首先,我们要理解FDO的作用。FDO通过提供一套API,...
它使所有使用FDO技术作为空间数据引擎的软件(比如AutoCAD Map3D和AutoCAD Civil3D)都能够无缝访问和编辑存储在SuperMap数据库中的空间数据和属性数据。本项目内包含了该产品的源代码,产品介绍,用户手册,演示...
3. **性能调优**:`fdo-server-command` 可能提供了调整系统参数、优化资源分配的命令,以提升服务器的响应速度和负载能力。 4. **安全设置**:更新防火墙规则、设置权限、监控入侵尝试,这些都可能是 `fdo-server-...
FDO在一组19种经典基准测试函数上进行了测试,并将结果与三种著名算法进行比较:PSO,遗传算法(GA)和蜻蜓算法(DA),此外,FDO在IEEE Congress上进行了测试进化计算基准测试功能(CEC-C06,2019竞赛)的...
您可以使用“sudo apt install llvm-10”之类的命令安装 llvm,也可以从源代码构建最新的 llvm。 要为 gcc 构建 autofdo 工具,不需要安装 llvm。 2. 命令 2.1 为llvm构建autofdo工具 2.1.1 如果从源码构建llvm ...
通过熟练掌握ModelSim的仿真命令和脚本编写技巧,设计师可以构建高度自动化、高效率的仿真流程,有效提升数字电路设计的验证速度和质量。无论是简单的逻辑电路还是复杂的系统级芯片设计,合理的脚本化管理都能带来...
在Linux系统中,外接存储设备的管理是通过一系列命令行工具...熟练掌握这些命令和技巧,对于日常的系统管理和维护至关重要。在实际操作中,还需要根据具体的硬件环境和需求调整命令参数,以实现最佳的存储管理效果。
因此,fdo-server可能是通过Shell脚本实现的一系列服务器管理命令,允许用户通过命令行来控制和配置服务器。 基于以上信息,我们可以推测fdo-server的可能特点和功能: 1. **命令行界面**:fdo-server可能提供一套...
FDO 在一组 19 个经典基准测试函数上进行测试,并将结果与三种著名算法进行比较:PSO、遗传算法 (GA) 和蜻蜓算法 (DA),此外,FDO 在 IEEE 大会上进行了测试Evolutionary Computation Benchmark Test Functions...
Notaol 是 AOL 的通信协议 P3 和显示约定 FDO 的正在进行中的客户端实现。 快速开始 Notaol 是为 Python 3.4 或更高版本编写的。 pip3 install crcmod python3 -m notaol.rpc 使用 telnet 连接到端口 5000 上的 ...
Cerberus ECO FS18 系统组件包括 FDCL181、FDO181、FDCI181-2、FDM181、FDO181、FDT181、FDHM181、FT1810、FC18、FC1820、FC1840、FC1860 等。 Cerberus ECO FS18 系统的开发目标是实现西门子楼宇科技中国业务...
5. **建立新的几何要素**:通过FDO API,可以直接在ArcSDE数据库中创建新的要素,如道路、建筑等。 6. **长事务处理和版本管理**:Autodesk Map 3D 2007支持复杂的事务处理和版本控制,确保数据的一致性和完整性。 ...