[UDF系列]如何编写InterBase UDF 之一

原创 2003年06月25日 15:31:00

如何编写InterBase UDF<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

(作者:Gregory Deatz - Hoagland, Longo, Moran, Dunst & Doukas)

warton

 

译者叙:

由于InterBase性能方面表现突出,并且它是开源和跨平台的,有很多使用Delphi,C++Builder的程序员开始采用它做为其后数据库平台。但是InterBase的中文资料简直太少了。昨日,一网友在CSDN上提到InterBaseUDF(user defined functions 用户自定义函数),我顺手一查,网上竟然查不到这方面的中文资料。于是,我今天将一篇如何编写和使用InterBase UDF的文章翻译给大家,希望使用Interbase,C++Builder,Delphi的朋友能喜欢!

-----warton 2003.01.21

   

什么是UDF

 

    UDF—-( user defined functions)用户定义函数,是InterBase中采用任何一种语言编写(一般用C/C++,也可以用其它语言如pascal)并编译成共享库的函数。在windows平台下,共享库一般指动态链接库(DLL)

 

为什么编写UDF?

 

       毕竟存储过程自身可以实现相当多的功能。那为什么还要用UDF呢?

       然而,事实是InterBase并没有提供相当丰富的内置函数。一些普通的函数、字符串操作、日期操作等相关的函数据都没有提供。

    于是这样的事发生了,像Delphi,C这样的编程语言可以提供执行速度特别快的模块算法、日期变量处理、浮点数格式化、及字符中操作程序。

       编写UDF是个狂简单的任务,这可以说是从所周知了。然而,没经验的编写者可能对编写DLL/共享库感觉太难和不安

 

使用Delphi编写Windows平台的UDF

      

首先启动一个Delphi工程

    1.启动车个delphi dll工程(一个特殊类型的工程,当你选择“File”,“New)

为你的函数生成一个新的单元

    2.选择”File”,”New”…UNIT

       3.聪明的你最好现在保存所有文件把你的工程保存到一个你认为合适的地方。

生成一个模块程序

    4.在新生成的单元文件:

       5. 在接口段定义你的函数:

function Modulo(var i, j: Integer): Integer; cdecl; export;

6.实现这个函数:

function Modulo(var i, j: Integer): Integer;

begin

  if (j = 0) then

    result := -1 // just check the boundary condition, and

                 // return a reasonably uninteresting answer.

  else

    result := i mod j;

end;

 7.在新生成的工程源代码中,直接将下面的代码写到”begin end.”之上:

Modulo;

8.现在编译工程,你将得到一个可工作的动态链接库。

9.现在,我必须做的是将这个DLL复制到InterBase可以找到的UDF目录下,它可能是:

c:/Program Files/Borland/InterBase/UDF

10.如何使用UDF….按如下的操作。使用ISQL连接到一个己存在的新的数据库

11.写上如下的代码:

12提交你的改变。

13.现在测试它

select f_Modulo(3, 2) from rdb$database

 

   这简直太简单了,不是吗?

但是关于字符串和日期型怎么处理呢?

   

       (由于时间问题,今天就翻译到这,我还要编程序,不好意思J:),明天见!!)

[UDF系列]如何编写InterBase UDF 之二

(接上一篇)如何编写InterBase UDFwarton译怎么编写字符串和日期型处理函数的UDF呢? 下面编写一个“Left“函数    内存分配问题:              如果你使用IB(I...
  • warton
  • warton
  • 2003年06月25日 15:32
  • 1061

[UDF系列]如何编写InterBase UDF 之三

(接上一篇)如何编写InterBase UDFwarton译(前面讲了在windows下编写UDF)编写Linux/Unix平台的UDF(译者注:原用大量篇幅讲述了linux下的SO(shared o...
  • warton
  • warton
  • 2003年06月25日 15:33
  • 1236

[UDF系列]如何编写InterBase UDF

译者叙: 由于InterBase性能方面表现突出,并且它是开源和跨平台的,有很多使用Delphi,C++Builder的程序员开始采用它做为其后数据库平台。但是InterBase的中文资料简直太少了...
  • SeekMyself
  • SeekMyself
  • 2013年02月25日 13:09
  • 1407

[UDF系列]如何创建InterBase UDF

[UDF系列之五]:如何创建InterBase UDFby Paul McGee (c) Borland Internation Inc.Warton译[概述]:用户定义函数(UDF)是一种采用编译语...
  • warton
  • warton
  • 2003年06月25日 15:32
  • 1273

用Java编写的第一个UDF

准备: 1.在Hive中以创建t_emp表,并且put数据如下: 2.在Eclipse 中搭建UDF编写环境,导入Hive相关包 实现: 1.编写一个UDF类,继承UDF package co...
  • qq_26624661
  • qq_26624661
  • 2017年09月04日 21:34
  • 364

Hive UDF自定义函数编写小例子

感谢段海涛老师~ 先写一个java类,定义函数逻辑(静态代码块模拟字典) package club.drguo.hive; import java.util.HashMap; import org...
  • Dr_Guo
  • Dr_Guo
  • 2016年03月26日 22:03
  • 1894

udf打jar包

1. 编译 javac -cp /opt/hadoop/hadoop-core-1.1.1.jar:/opt/hadoop/hive/lib/hive-exec-0.10.0.jar  ToWeek....
  • godspeedlaile9
  • godspeedlaile9
  • 2013年12月09日 16:18
  • 979

使用eclipse编写UDF函数

使用eclipse编写UDF函数
  • woqiang68
  • woqiang68
  • 2017年06月08日 13:03
  • 266

传递和返回数据到一个编写的UDF

  • zgqtxwd
  • zgqtxwd
  • 2008年04月27日 19:13
  • 142

十八、Hive 中UDF编程

 依据课程中讲解的如何自定义 UDF,进行案例编写,进行总结步骤,并完成额外需求,具体说明如下: 1) 依据课程讲解 UDF 编程案例,完成练习,总结开发 UDF 步骤,代码贴图, 给予注...
  • zipo
  • zipo
  • 2017年02月23日 19:58
  • 295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[UDF系列]如何编写InterBase UDF 之一
举报原因:
原因补充:

(最多只允许输入30个字)