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

原创 2003年02月12日 13:36:00

[UDF系列之四]:传递和返回数据到一个Delphi编写的UDF
Warton译
作者: Chris Levesque, Tina Grubbe, Brett Bandy


--------------------------------------------------------------------------------


[译者叙]:

前面我已经翻译了几篇关于编写UDF的文章,虽然一些朋友可能也从中得到了一点帮助,但是可能对UDF的
认识还存在一些问题。今天,我再翻译两文章,这两篇文章都是来自MER System (http://www.mers.com)
的,有兴趣的朋友可以查看原文。

 
[论点]:
        当动态链接库没有为受保护的数据值做特殊的预防时,我们的UDF带有参数值或返回值的数据结果
可能处在一个受保护的异常或错误结果之中。
 
[解决方案]:
        每一个日期值被保存在两个32位的整数类型之中:一个表示日期的signed integer,和一个表示
时间的unsigned integer。使用Delphi代码来定义这个结构(ISC_QUAD)和结构的指针(PISC_QUAD):
type
    {InterBase Date/Time Record}
    ISC_QUAD = record
       isc_quad_high : Integer ;  // Date
       isc_quad_low  : Cardinal ; // Time
       end;
    PISC_QUAD = ^ISC_QUAD;
    为了保护返回值,在函数定义的外部申明一个线程安全的ISC_QUAD变量,使它保存返回值(如果返回值
是一个日期型的数据)。
threadvar
    tempquad : ISC_QUAD;
然后编写你的函数以便结果指向线程变量。
 
 // 定义函数
// This function adds a number of days to an existing date.
 function DayAdd( var Days: Integer; IBDate PISC_QUAD) : PISC_QUAD; cdecl; export;
 
 begin
    tempquad.isc_quad_high := IBDate^.isc_quad_high + Days;
    tempquad.isc_quad_low  := IBDate^.isc_quad_low;
    Result := @tempquad;
 end;
 
  
 
本主来自:MER Systems Inc..  http://www.mers.com

 

使用Python实现Hive的UDF示例

主要分为两个部分,一个部分为Python脚本实现想要实现的功能,另外一个部分为HQL部分,调用Python脚本对数据进行处理。 HQL调用Python实现的UDF其实有一个重定向的过程,把数据表中之...
  • BabyFish13
  • BabyFish13
  • 2016年12月10日 15:49
  • 1744

采用java和python编写hive中的udf

在hive中,用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。用户将自定义的函数加入到用户会话中(交互式的或者通过脚本执行的),它们就会像内置的函数一样使用。 编写UDF的java...
  • u010705209
  • u010705209
  • 2016年10月26日 16:04
  • 988

Hive数据仓库--UDF自定义函数以及其中的坑

一个简单的问题折腾了接近半天的时间,不过最终发现了问题出在哪里了,UDF这个是用户自定义函数,和sum等这种函数类似,主要作用是输入一个值,然后通过适当的处理后返回一个值。UDF倒是很简单的,基本上就...
  • wangyang1354
  • wangyang1354
  • 2016年10月31日 23:22
  • 1659

Datasnap 使用JSON 传递数据的简易方法

在上一篇文章中,使用了 OLE
  • aroc_lo
  • aroc_lo
  • 2014年06月05日 23:45
  • 5083

【Hive自定义UDF函数】 与 【hive字符串函数】

Hive的UDF 整理笔记 Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以。 Hive的UDF开发只需要重构U...
  • baolibin528
  • baolibin528
  • 2015年05月16日 22:37
  • 1244

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

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

Hive入门--3.UDF编写与使用

1. 编写UDF函数a) 继承org.apache.hadoop.hive.ql.exec.UDF类,实现evaluate()evaluate()函数在父类中没有package cn...
  • u014726937
  • u014726937
  • 2016年07月21日 17:46
  • 677

hive udaf 返回复杂类型

package com.hive.customertag; import java.util.ArrayList; import java.util.regex.Matcher; import j...
  • j3smile
  • j3smile
  • 2014年02月17日 16:34
  • 3133

hive入门学习:UDF开发

hive入门学习:UDF开发          hive中提供了很多的内置函数,可以通过show functions来查看提供了哪些函数,可以desc  function extended 函数,...
  • liyaohhh
  • liyaohhh
  • 2016年02月16日 20:54
  • 711

进程间相互传送数据(delphi2010)

发送端: unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Contr...
  • hutao1101175783
  • hutao1101175783
  • 2013年08月04日 02:23
  • 677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:传递和返回数据到一个Delphi编写的UDF
举报原因:
原因补充:

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