对象支持¶
对象的运行时环境¶
ACCI为对象提供了一个运行时环境,该环境提供了一组方法来管理客户端如何使用神通对象。这些方法为执行这些任务提供了必要的功能:
- 连接到神通数据库服务器以访问其对象功能
- 分配客户端对象缓存并调优其参数
- 检索错误和警告消息
- 控制访问数据库中的对象的事务
- 通过SQL关联地访问对象
- 描述参数或结果为神通的PL/SQL过程或函数
访问数据库中对象的接口¶
使用ACCI的应用程序可以通过几种类型的接口访问数据库中的对象,比如SQL SELECT、INSERT和UPDATE语句,以及通过遍历相应的引用来访问客户端对象缓存中的对象的c++指针和引用。
ACCI通过使用SQL SELECT、INSERT和UPDATE语句提供了一组方法来支持对象操作。这些SQL语句就像访问关系表一样使用一组一致的步骤来访问神通对象。ACCI提供了使用SQL语句访问对象的方法:
- 将对象类型实例和引用绑定为SQL语句和PL/SQL存储过程的输入和输出变量
- 执行包含对象类型实例和引用的SQL语句
- 获取对象类型的实例和引用
- 以对象的形式从结果集中检索列值
- 描述神通对象类型的选择列表项
ACCI为对象导航提供了一个无缝接口,使您能够像操作临时c++对象一样操作数据库对象。您可以取消对对象引用的重载箭头(->)操作符的引用,以透明地将对象从数据库物化到应用程序空间。
与C(ACI)的互操作¶
ACCI应用程序可以通过调用ACCI类实例上的getACIxxx()方法来检索底层的ACI句柄和描述符。这些句柄可用于调用ACI函数。
请注意,应用程序必须意识到,如果ACI句柄上的任何属性发生了更改,相应的ACCI实例可能会反映这一点,也可能不会。
如果应用程序将ACI功能用于任何与对象相关的功能,则不支持ACCI和ACI之间的互操作性。
元数据类¶
在ACCI中,每个神通数据类型都由一个c++类表示。该类通过重载操作符和方法公开数据类型的行为和特征。例如,神通数据类型BLOB由Blob类表示。ACCI提供了一个metadata类,使您能够检索描述数据库对象的元数据,包括对象类型。
类型转换¶
ACCI支持在神通数据库中进行对象处理:
- 消除了编写与模式对象对应的主机语言变量的需求,提高了应用程序开发人员的工作效率
- 使用SQL作为数据定义语言,同时提供了将SQL创建的神通数据库模式对象自动映射到宿主语言变量的能力;这使得神通能够支持一致的、企业级的用户数据模型
- 在模式更改时重新生成所包含的头文件,促进了对象类型的模式演化,从而允许神通应用程序支持模式演化
- 执行操作对象数据和模式信息的SQL语句
- 在SQL语句中传递对象引用和实例作为输入变量
- 将对象引用和实例声明为变量,以接收SQL语句的输出
- 从数据库中获取对象引用和实例
- 描述返回对象实例和引用的SQL语句的属性
- 用对象参数或结果描述PL/SQL过程或函数
- 扩展提交和回滚调用以同步对象和关系功能