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] 下一页 [MySql]如何创建Linux启动盘
|