使用COM对象说明
COM对象设计都会提供了三个基本操作给开发人员使用,分别为:获取属性值,设置属性值(只读属性除外),调用方法。Oracle数据库在Windows的平台下提供了操作COM对象的接口,属于C语言外部例程模式。
工作原理如下图:
图1 操作COM对象工作原理
在使用该功能之前,需明白如下内容:
1) 创建COM对象操作函数。
SQL>CONNECT SYSTEM/chanet@oradb
SQL>CREATE USER chanet identified by chanet;
SQL>GRANT CREATE LIBRARY TO chanet;
SQL>CONNECT chanet/chanet@oradb;
SQL>@D:\oracle\ora92\com\comwrap.sql;
2)配置监听器。
在listener.ora文件里,添加如下内容,并重启监听器。
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = off
PASSWORDS_LINTENER = (oracle)
3) PL/SQL数据类型与对应的COM对象类型
表1-1数据类型比较
PL/SQL数据类型 COM API 数据类型
VARCHAR2 BSTR
BOOLEAN BOOL
BINARY_INTEGER BYTE,INT,LONG
DOUBLE PRECISION DOUBLE,FLOAT,CURRENCY
DATE DATE
4) 函数说明。
表1-2函数说明
名称 功能描述
CreateObject 创建对象
DestroyObject 关闭对象
GetLastError 获取错误信息
GetProperty 获取属性值
SetProperty 设置属性值
InitArg 为Invoke函数初始化参数
InitOutArg 为GetArg初始化输出参数
GetArg 获取输出参数
SetArg 为Invoke函数设置参数
Invoke 调用COM对象的函数或过程
5) 操作Excel示例
本节介绍如何操作COM对象(以Excel对象为例),将数据库里的表记录通过PL/SQL语句输出成Excel文件。通过对象浏览器可以查看Excel对象提供的属性和方法。(如:在Excel菜单,工具 -> 宏 -> 打开Visual Basic编辑器,在编辑器里,视图 -> 对象浏览器)。
使用Excel对象一般针对单元格进行操作(如,设置第一个单元格字体大小的代码为:Range("A1").Font.Size = 20)。对应的COM外部例程操作的步骤为:
1、获取程序句柄;
2、获取工作簿句柄;
3、获取工作表句柄;
4、获取Range区句柄;
5、获取Font类句柄;
6、设置Size属性。