[UDF系列]如何编写InterBase UDF 之一
来源:互联网 发布:mac os sierra10.12.6 编辑:程序博客网 时间:2024/05/22 05:08
如何编写InterBase UDF
(作者:Gregory Deatz - Hoagland, Longo, Moran, Dunst & Doukas)
warton 译
译者叙:
由于InterBase性能方面表现突出,并且它是开源和跨平台的,有很多使用Delphi,C++Builder的程序员开始采用它做为其后数据库平台。但是InterBase的中文资料简直太少了。昨日,一网友在CSDN上提到InterBase的UDF(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.”之上:
exports
Modulo;
8.现在编译工程,你将得到一个可工作的动态链接库。
9.现在,我必须做的是将这个DLL复制到InterBase可以找到的UDF目录下,它可能是:
c:/Program Files/Borland/InterBase/UDF
10.如何使用UDF….按如下的操作。使用ISQL连接到一个己存在的新的数据库
11.写上如下的代码:
declare external function f_Modulo
integer, integer
returns
integer by value
entry_point 'Modulo' module_name 'dll name minus ".dll"';
12提交你的改变。
13.现在测试它…
select f_Modulo(3, 2) from rdb$database
吆…这简直太简单了,不是吗?
但是关于字符串和日期型怎么处理呢?
(由于时间问题,今天就翻译到这,我还要编程序,不好意思J:),明天见!!)
- [UDF系列]如何编写InterBase UDF 之一
- [UDF系列]如何编写InterBase UDF
- [UDF系列]如何编写InterBase UDF 之二
- [UDF系列]如何编写InterBase UDF 之三
- [UDF系列]如何编写InterBase UDF 之三
- [UDF系列]如何创建InterBase UDF
- MySQL:如何编写UDF
- MySQL:如何编写UDF
- udf 编写
- Write Udf For Interbase/Firebird
- hive中如何自定义编写UDF函数
- Interbase/Firebird Date&Time Function For UDF
- Hives UDF 编写入门
- hive UDF编写
- pig的udf编写
- Hive编写UDF函数
- hive的udf的编写
- hive中UDF的编写
- 开源的IDS(入侵检测系统)-- Snort
- 开源的PKI项目 IDX-PKI
- 开源的Stunnel--通用SSL加密程序
- 在Java2环境中应用IP地址封装对象
- MySQL索引分析和优化
- [UDF系列]如何编写InterBase UDF 之一
- [UDF系列]如何编写InterBase UDF 之二
- [UDF系列]如何编写InterBase UDF 之三
- [UDF系列]如何创建InterBase UDF
- 传递和返回数据到一个Delphi编写的UDF
- 用C++Builder 6编写VCL控件
- Borland C++ Mobile Edition为手机开发保驾护航!
- [C++Builder/Delphi初学者指南] 用C++Builder、Delphi转换数据表
- 优秀的开源C++库:ACE及其安装使用