|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的的女儿也叫My。数据
[UDF系列之四]:传送和前往数据到一个Delphi编写的UDF
Warton译
作者:ChrisLevesque,TinaGrubbe,BrettBandy
--------------------------------------------------------------------------------
[译者叙]:
后面我已翻译了几篇关于编写UDF的文章,固然一些伴侣大概也从中失掉了一点匡助,可是大概对UDF的
熟悉还存在一些成绩。明天,我再翻译两文章,这两篇文章都是来自MERSystem(http://www.mers.com)
的,有乐趣的伴侣能够检察原文。
[论点]:
当静态链接库没无为受回护的数据值做特别的防备时,我们的UDF带有参数值或前往值的数据了局
大概处在一个受回护的非常或毛病了局当中。
[办理计划]:
每个日期值被保留在两个32位的整数范例当中:一个暗示日期的signedinteger,和一个暗示
工夫的unsignedinteger。利用Delphi代码来界说这个布局(ISC_QUAD)和布局的指针(PISC_QUAD):
type
{InterBaseDate/TimeRecord}
ISC_QUAD=record
isc_quad_high:Integer;//Date
isc_quad_low:Cardinal;//Time
end;
PISC_QUAD=^ISC_QUAD;
为了回护前往值,在函数界说的内部声名一个线程平安的ISC_QUAD变量,使它保留前往值(假如前往值
是一个日期型的数据)。
threadvar
tempquad:ISC_QUAD;
然后编写你的函数以便了局指向线程变量。
//界说函数
//Thisfunctionaddsanumberofdaystoanexistingdate.
functionDayAdd(varDays:Integer;IBDatePISC_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;
本主来自:MERSystemsInc..http://www.mers.com
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。 |
|