打印本文 打印本文 关闭窗口 关闭窗口
如何创建InterBaseUDF
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2281  更新时间:2009/4/22 23:21:51  文章录入:mintao  责任编辑:mintao
                RETURNS CSTRING (80)

                ENTRY_POINT "fn_substr" MODULE_NAME "funclib";

为了将函数加入到函数库中,在NT上使用Borland C++,我们应该让lib模块有有一个本地的拷贝:

 implib mygds32.lib \interbas\bin\gds32.dll

然后连接必要的选项生成我们新的库funclib.dll。

 

bcc32 -v -a4 -DWIN32 -tWM -tWCD -efunclib.dll udf.c mygds32.lib

为了在本地使用DLL,它必须在BIN目录下(或你环境变的路径中)。如果要在远程使用,它必须在能运行InterBase服务的用户的环境变量路径之中,默认情况下,它在系统账户的PATH中。

[使用UDF]:

一但编译,连接,定义之后,一个UDF就可以在SQL 语句中使用了。

它们可以做如下使用:定义计算后字段做为表定义的一部分,在view定义中中做为列表达式或在存储过程和触发器中做为SELECT, INSERT, UPDATE, DELETE操作的一部分。

例如,使用计算结果做为字段:

        CREATE TABLE name ( FIRST_NAME VARCHAR(20), LAST_NAME VARCHAR(20),

                FULL_NAME_UPPER COMPUTED BY

                (upper(FIRST_NAME) | " " | upper(LAST_NAME)));

在view中做为一个列表达式:

        CREATE VIEW upper_names (FIRST_NAME, LAST_NAME) AS

                SELECT upper(n.first_name), upper(n.last_name) FROM name n;

在选择操作中:

        SELECT substr(n.FIRST_NAME, 2, 4) FROM name n WHERE

                upper(n.LAST_NAME) = 'MOORE';

在插入操作中:

        INSERT INTO name (FIRST_NAME, LAST_NAME)

                VALUES (rtrim(:new_fname), rtrim(:new_lname));

在更新操作中:

        UPDATE name SET LAST_NAME = rtrim(:new_lname) WHERE

                upper(n.LAST_NAME) = 'JONES';

在删除操作中:

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口