Write Udf For Interbase/Firebird

DECLARE EXTERNAL FUNCTION IBPASSWD
CSTRING(8) CHARACTER SET WIN1252
RETURNS CSTRING(16) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBPasswd' MODULE_NAME 'pibudf.dll';



DECLARE EXTERNAL FUNCTION IBENCODEBASE64
CSTRING(256) CHARACTER SET WIN1252
RETURNS CSTRING(384) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBEncodeBase64' MODULE_NAME 'pibudf.dll';


DECLARE EXTERNAL FUNCTION IBDECODEBASE64
CSTRING(384) CHARACTER SET WIN1252
RETURNS CSTRING(256) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBDecodeBase64' MODULE_NAME 'pibudf.dll';


DECLARE EXTERNAL FUNCTION IBDES56
CSTRING(16) CHARACTER SET WIN1252,
CSTRING(8) CHARACTER SET WIN1252,SMALLINT
RETURNS CSTRING(16) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBdes56' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMD5
CSTRING(32176) CHARACTER SET WIN1252
RETURNS CSTRING(32) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBmd5' MODULE_NAME 'pibudf.dll';


DECLARE EXTERNAL FUNCTION IBMD5FILE
CSTRING(255) CHARACTER SET WIN1252
RETURNS CSTRING(32) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBmd5File' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBINTTOBIT
INTEGER,SMALLINT
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBIntToBit' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBBITTOINT
SMALLINT
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBBitToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBINTTOBITQTY
INTEGER
RETURNS  SMALLINT BY VALUE
ENTRY_POINT 'IBIntToBitQty' MODULE_NAME 'pibudf.dll';


DECLARE EXTERNAL FUNCTION IBSTRDATEIDE
TIMESTAMP,
INTEGER,SMALLINT /*'yyyymmdd-'+3*/
RETURNS CSTRING(12) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrDateIDE' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSDATEIDTOIDE
CSTRING(12) CHARACTER SET WIN1252,SMALLINT
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBStrDateIDToIDE' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRYEARIDE
TIMESTAMP,
INTEGER,SMALLINT /*'yyyy-'+3*/
RETURNS CSTRING(8) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrYearIDE' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSYEARIDTOIDE
CSTRING(8) CHARACTER SET WIN1252,SMALLINT
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBStrYearIDToIDE' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRINTSTR
CSTRING(3) CHARACTER SET WIN1252,INTEGER,SMALLINT
RETURNS CSTRING(6) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrIntStr' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRINT
CSTRING(6) CHARACTER SET WIN1252,SMALLINT,SMALLINT
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBStrInt' MODULE_NAME 'pibudf.dll';
                         
DECLARE EXTERNAL FUNCTION IBSQUADNAME
TIMESTAMP,
SMALLINT,SMALLINT
RETURNS CSTRING(1) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBsquadName' MODULE_NAME 'pibudf.dll';



/*Date*******************************************/

DECLARE EXTERNAL FUNCTION IBYEARTOINT
TIMESTAMP
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBYearToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBYEARDAYTOINT
TIMESTAMP
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBYearDayToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHDAYTOINT
TIMESTAMP
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBMonthDayToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHTOINT
TIMESTAMP
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBMonthToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHBETWEENTOINT
TIMESTAMP, TIMESTAMP
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBMonthBetweenToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBDAYBETWEENTOINT
TIMESTAMP, TIMESTAMP
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBDayBetweenToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHLASTDDAYTOINT
TIMESTAMP
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'IBMonthLastDayToInt' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBDAYINC
TIMESTAMP,SMALLINT
RETURNS DATE
ENTRY_POINT 'IBDayInc' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBDAYDEC
TIMESTAMP,SMALLINT
RETURNS DATE
ENTRY_POINT 'IBDayDec' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHINC
TIMESTAMP,SMALLINT
RETURNS DATE
ENTRY_POINT 'IBMonthInc' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHDEC
TIMESTAMP,SMALLINT
RETURNS DATE
ENTRY_POINT 'IBMonthDec' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHFIRSTTDAY
TIMESTAMP
RETURNS DATE
ENTRY_POINT 'IBMonthFirstDay' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBMONTHLASTDAY
TIMESTAMP
RETURNS DATE
ENTRY_POINT 'IBMonthLastDay' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBDAYTIMEBETWEENTOSTR
TIMESTAMP, TIMESTAMP
RETURNS CSTRING(16) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBDayTimeBetweenToStr' MODULE_NAME 'pibudf.dll';



/*String*******************************************/

DECLARE EXTERNAL FUNCTION IBSTRUPPER
CSTRING(32176) CHARACTER SET WIN1252
RETURNS CSTRING(32176) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrUpper' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRLOWER
CSTRING(32176) CHARACTER SET WIN1252
RETURNS CSTRING(32176) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrLower' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRLEN
CSTRING(32176) CHARACTER SET WIN1252
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBStrLen' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRPOS
CSTRING(32176) CHARACTER SET WIN1252,
CSTRING(254) CHARACTER SET WIN1252
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IBStrPos' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRCOPY
CSTRING(32176) CHARACTER SET WIN1252,SMALLINT,SMALLINT
RETURNS CSTRING(254) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrCopy' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRDELETE
CSTRING(32176) CHARACTER SET WIN1252,SMALLINT,SMALLINT
RETURNS CSTRING(254) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrDelete' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSTRINSERT
CSTRING(32176) CHARACTER SET WIN1252,
SMALLINT,
CSTRING(254) CHARACTER SET WIN1252
RETURNS CSTRING(510) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrInsert' MODULE_NAME 'pibudf.dll';


DECLARE EXTERNAL FUNCTION IBSTRREPLACE
CSTRING(32176) CHARACTER SET WIN1252,
CSTRING(1) CHARACTER SET WIN1252,
CSTRING(1) CHARACTER SET WIN1252
RETURNS CSTRING(32176) CHARACTER SET WIN1252 FREE_IT
ENTRY_POINT 'IBStrReplace' MODULE_NAME 'pibudf.dll';

/*BLOB*******************************************/

DECLARE EXTERNAL FUNCTION IBGETBLOBSEGMENTCOUNT
  BLOB
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'IBGetBlobSegmentCount' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBGETBLOBMAXSEGMENTLENGTH
  BLOB
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'IBGetBlobMaxSegmentLength' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBGETBLOBSIZE
  BLOB
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'IBGetBlobSize' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBGETBLOBSTRCOPY
  BLOB,INTEGER,INTEGER
  RETURNS CSTRING(32760) CHARACTER SET WIN1252 FREE_IT
  ENTRY_POINT 'IBGetBlobStrCopy' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBGETBLOBSTRLINE
  BLOB,INTEGER
  RETURNS CSTRING(32760) CHARACTER SET WIN1252 FREE_IT
  ENTRY_POINT 'IBGetBlobStrLine' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBGETBLOBSEARCH
  BLOB,CSTRING(254) CHARACTER SET WIN1252
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'IBGetBlobSearch' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSETBLOBSTRCOPY
  CSTRING(32760) CHARACTER SET WIN1252,
  BLOB
  RETURNS PARAMETER 2
  ENTRY_POINT 'IBSetBlobStrCopy' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBGETBLOBLOADFILE
  CSTRING(254) CHARACTER SET WIN1252,
  BLOB
  RETURNS PARAMETER 2
  ENTRY_POINT 'IBGetBlobLoadFile' MODULE_NAME 'pibudf.dll';

DECLARE EXTERNAL FUNCTION IBSETBLOBSAVEFILE
  BLOB,
  CSTRING(254) CHARACTER SET WIN1252 
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'IBSetBlobSaveFile' MODULE_NAME 'pibudf.dll'; 



/*MATHS*******************************************/

DECLARE EXTERNAL FUNCTION IBTRUNC
  DOUBLE PRECISION 
  RETURNS INTEGER BY VALUE
  ENTRY_POINT 'IbTrunc' MODULE_NAME 'pibudf.dll'; 

DECLARE EXTERNAL FUNCTION IBFRAC
  DOUBLE PRECISION
  RETURNS DOUBLE PRECISION BY VALUE
  ENTRY_POINT 'IbFrac' MODULE_NAME 'pibudf.dll'; 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值