技术开发 频道

Oracle中使用PL/SQL操作COM对象

    使用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属性。

0
相关文章