Subject Question on UDF's
Author Robert Tulloch
Hi:

Any insight appreciated.

Installed FB 2.5 on win 10.

Using IB_SQL.exe for access.

GDB is from an old IB 6.02 which works flawlessly on XP

I have several of my UDF libs in udf dir

When I open w IB_SQL. exe and look at UDF's all I get showing are 6 from ib_sql and shows error "Unexpected boolean value".

1. the ib_udf which is the source of these errors came with FB 2.5

2. There are other udf's in ib_udf (according to Chapter 15 External Functions and listing below) which are not reporting errors.Why?

3. The ib_udf.sql shows many UDF's commented out which are reporting errors as below: Why?

/*****************************************
 *
 *    a b s
 *
 *****************************************
 *
 * Functional description:
 *     Returns the absolute value of a
 *     number.
 *
 *****************************************
DECLARE EXTERNAL FUNCTION abs
    DOUBLE PRECISION
    RETURNS DOUBLE PRECISION BY VALUE
    ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf'; */

4. My UDF's don't show up in ib_sql dialog under UDF's. Why not?
    I know they are working since procedures using my UDF's reported errors until I copied my libs in the UDF directory and are included below.

All this is very confusing.

Below is RDB$FUNCTIONS. They are all here Highlighted one are returning the boolean error


'ABS',0,'','','ib_udf','IB_UDF_abs',0,NULL
'ACOS',0,'','','ib_udf','IB_UDF_acos',0,NULL
'ASCII_CHAR',0,'','','ib_udf','IB_UDF_ascii_char',0,NULL
'ASCII_VAL',0,'','','ib_udf','IB_UDF_ascii_val',0,NULL
'ASIN',0,'','','ib_udf','IB_UDF_asin',0,NULL
'ATAN',0,'','','ib_udf','IB_UDF_atan',0,NULL
'ATAN2',0,'','','ib_udf','IB_UDF_atan2',0,NULL
'BIN_AND',0,'','','ib_udf','IB_UDF_bin_and',0,NULL
'BIN_OR',0,'','','ib_udf','IB_UDF_bin_or',0,NULL
'BIN_XOR',0,'','','ib_udf','IB_UDF_bin_xor',0,NULL
'CEILING',0,'','','ib_udf','IB_UDF_ceiling',0,NULL
'COS',0,'','','ib_udf','IB_UDF_cos',0,NULL
'COSH',0,'','','ib_udf','IB_UDF_cosh',0,NULL
'COT',0,'','','ib_udf','IB_UDF_cot',0,NULL
'DIV',0,'','','ib_udf','IB_UDF_div',0,NULL
'FLOOR',0,'','','ib_udf','IB_UDF_floor',0,NULL
'LN',0,'','','ib_udf','IB_UDF_ln',0,NULL
'LOG',0,'','','ib_udf','IB_UDF_log',0,NULL
'LOG10',0,'','','ib_udf','IB_UDF_log10',0,NULL
'LOWER',0,'','','ib_udf','IB_UDF_lower',0,NULL
'LTRIM',0,'','','ib_udf','IB_UDF_ltrim',0,NULL
'MOD',0,'','','ib_udf','IB_UDF_mod',0,NULL
'PI',0,'','','ib_udf','IB_UDF_pi',0,NULL
'RAND',0,'','','ib_udf','IB_UDF_rand',0,NULL
'RTRIM',0,'','','ib_udf','IB_UDF_rtrim',0,NULL
'SIGN',0,'','','ib_udf','IB_UDF_sign',0,NULL
'SIN',0,'','','ib_udf','IB_UDF_sin',0,NULL
'SINH',0,'','','ib_udf','IB_UDF_sinh',0,NULL
'SQRT',0,'','','ib_udf','IB_UDF_sqrt',0,NULL
'SUBSTR',0,'','','ib_udf','IB_UDF_substr',0,NULL
'STRLEN',0,'','','ib_udf','IB_UDF_strlen',0,NULL
'TAN',0,'','','ib_udf','IB_UDF_tan',0,NULL
'TANH',0,'','','ib_udf','IB_UDF_tanh',0,NULL
'CLEARIBLOG',0,'','','ltudf','fn_ClearIbLog',0,NULL
'DELETEIBBACKUP',0,'','','ltudf','fn_DeleteIbBackup',0,NULL
'COPYIBDATABASE',0,'','','ltudf','fn_CopyIbDatabase',0,NULL
'PROPERCASESTRING',0,'','','strudf','fn_ProperCaseString',0,NULL
'F_ABS',0,'','','FreeAdhocUDF','doubleabs',0,NULL
'F_ADDDAY',0,'','','FreeAdhocUDF','addday',0,NULL
'F_ADDHOUR',0,'','','FreeAdhocUDF','addhour',0,NULL
'F_ADDMINUTE',0,'','','FreeAdhocUDF','addminute',0,NULL
'F_ADDMONTH',0,'','','FreeAdhocUDF','addmonth',0,NULL
'F_ADDSECOND',0,'','','FreeAdhocUDF','addsecond',0,NULL
'F_ADDWEEK',0,'','','FreeAdhocUDF','addweek',0,NULL
'F_ADDYEAR',0,'','','FreeAdhocUDF','addyear',0,NULL
'F_AGEINDAYS',0,'','','FreeAdhocUDF','ageindays',0,NULL
'F_AGEINDAYSTHRESHOLD',0,'','','FreeAdhocUDF','ageindaysthreshold',0,NULL
'F_AGEINHOURS',0,'','','FreeAdhocUDF','ageinhours',0,NULL
'F_AGEINHOURSTHRESHOLD',0,'','','FreeAdhocUDF','ageinhoursthreshold',0,NULL
'F_AGEINMINUTES',0,'','','FreeAdhocUDF','ageinminutes',0,NULL
'F_AGEINMINUTESTHRESHOLD',0,'','','FreeAdhocUDF','ageinminutes threshold',0,NULL
'F_AGEINMONTHS',0,'','','FreeAdhocUDF','ageinmonths',0,NULL
'F_AGEINMONTHSTHRESHOLD',0,'','','FreeAdhocUDF','ageinmonthsthreshold',0,NULL
'F_AGEINSECONDS',0,'','','FreeAdhocUDF','ageinseconds',0,NULL
'F_AGEINSECONDSTHRESHOLD',0,'','','FreeAdhocUDF','ageinsecondsthreshold',0,NULL
'F_AGEINWEEKS',0,'','','FreeAdhocUDF','ageinweeks',0,NULL
'F_AGEINWEEKSTHRESHOLD',0,'','','FreeAdhocUDF','ageinweeksthreshold',0,NULL
'F_AGEINYEARS',0,'','','FreeAdhocUDF','ageinyears',0,NULL
'F_AGEINYEARSTHRESHOLD',0,'','','FreeAdhocUDF','ageinyearsthreshold',0,NULL
'F_ANSILOWERCASE',0,'','','FreeAdhocUDF','lower',0,NULL
'F_ANSIUPPERCASE',0,'','','FreeAdhocUDF','upper',0,NULL
'F_BIGLEFT',0,'','','FreeAdhocUDF','left',0,NULL
'F_BIGLRTRIM',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_BIGLTRIM',0,'','','FreeAdhocUDF','ltrim',0,NULL
'F_BIGMID',0,'','','FreeAdhocUDF','mid',0,NULL
'F_BIGREPLACE',0,'','','FreeAdhocUDF','replace',0,NULL
'F_BIGREPLACESTRING',0,'','','FreeAdhocUDF','replacestring',0,NULL
'F_BIGRIGHT',0,'','','FreeAdhocUDF','right',0,NULL
'F_BIGRTRIM',0,'','','FreeAdhocUDF','rtrim',0,NULL
'F_BIGSTRINGLENGTH',0,'','','FreeAdhocUDF','stringlength',0,NULL
'F_BIGSTRIPSTRING',0,'','','FreeAdhocUDF','stripstring',0,NULL
'F_BIGSTRIPSTRINGHOLD',0,'','','FreeAdhocUDF','stripstringhold',0,NULL
'F_BIGSUBSTR',0,'','','FreeAdhocUDF','substr',0,NULL
'F_BLOB2EXCEL',0,'','','FreeAdhocUDF','excelblob',0,NULL
'F_BLOBASPCHAR',0,'','','FreeAdhocUDF','blobaspchar',0,NULL
'F_BLOBCAT',0,'','','FreeAdhocUDF','blobcat',3,NULL
'F_BLOBCATSTR',0,'','','FreeAdhocUDF','blobcatstr',3,NULL
'F_BLOBLEFT',0,'','','FreeAdhocUDF','blobleft',0,NULL
'F_BLOBMID',0,'','','FreeAdhocUDF','blobmid',0,NULL
'F_BLOBREPLACESTRING',0,'','','FreeAdhocUDF','blobreplacestring',6,NULL
'F_BLOBRIGHT',0,'','','FreeAdhocUDF','blobright',0,NULL
'F_BLOBSIZE',0,'','','FreeAdhocUDF','blobsize',0,NULL
'F_CDOWLONG',0,'','','FreeAdhocUDF','cdowlong',0,NULL
'F_CDOWLONGLANG',0,'','','FreeAdhocUDF','cdowlonglang',0,NULL
'F_CDOWSHORT',0,'','','FreeAdhocUDF','cdowshort',0,NULL
'F_CDOWSHORTLANG',0,'','','FreeAdhocUDF','cdowshortlang',0,NULL
'F_CHARACTER',0,'','','FreeAdhocUDF','character',0,NULL
'F_CHR',0,'','','FreeAdhocUDF','character',0,NULL
'F_CMONTHLONG',0,'','','FreeAdhocUDF','cmonthlong',0,NULL
'F_CMONTHLONGLANG',0,'','','FreeAdhocUDF','cmonthlonglang',0,NULL
'F_CMONTHSHORT',0,'','','FreeAdhocUDF','cmonthshort',0,NULL
'F_CMONTHSHORTLANG',0,'','','FreeAdhocUDF','cmonthshortlang',0,NULL
'F_COLLATEBR',0,'','','FreeAdhocUDF','collatebr',0,NULL
'F_CONVERTFROM33',0,'','','FreeAdhocUDF','convertfrom33',0,NULL
'F_CONVERTFROMBASE',0,'','','FreeAdhocUDF','convertfrombase',0,NULL
'F_CONVERTTO33',0,'','','FreeAdhocUDF','convertto33',0,NULL
'F_CONVERTTOBASE',0,'','','FreeAdhocUDF','converttobase',0,NULL
'F_CONVERTTODOLLAR',0,'','','FreeAdhocUDF','converttodollar',0,NULL
'F_COPY',0,'','','FreeAdhocUDF','mid1',0,NULL
'F_CRLF',0,'','','FreeAdhocUDF','crlf',0,NULL
'F_DAYOFMONTH',0,'','','FreeAdhocUDF','dayofmonth',0,NULL
'F_DAYOFWEEK',0,'','','FreeAdhocUDF','dayofweek',0,NULL
'F_DAYOFYEAR',0,'','','FreeAdhocUDF','dayofyear',0,NULL
'F_DAYSBETWEEN',0,'','','FreeAdhocUDF','daysbetween',0,NULL
'F_DAYSOFMONTH',0,'','','FreeAdhocUDF','daysofmonth',0,NULL
'F_DEGTORAD',0,'','','FreeAdhocUDF','degtorad',0,NULL
'F_DIGITS',0,'','','FreeAdhocUDF','digits',0,NULL
'F_DOLLARVAL',0,'','','FreeAdhocUDF','dollarval',0,NULL
'F_DOUBLEABS',0,'','','FreeAdhocUDF','doubleabs',0,NULL
'F_DTIME',0,'','','FreeAdhocUDF','dtime',0,NULL
'F_ENCODEDATE',0,'','','FreeAdhocUDF','encodedate',0,NULL
'F_ENCODETIME',0,'','','FreeAdhocUDF','encodetime',0,NULL
'F_ENCODETIMESTAMP',0,'','','FreeAdhocUDF','encodetimestamp',0,NULL
'F_ENCRYPTMD5',0,'','','FreeAdhocUDF','encryptmd5',0,NULL
'F_EQUALDATE',0,'','','FreeAdhocUDF','equaldate',0,NULL
'F_EQUALDATETIME',0,'','','FreeAdhocUDF','equaldatetime',0,NULL
'F_EQUALFLOAT',0,'','','FreeAdhocUDF','equalfloat',0,NULL
'F_EQUALINTEGER',0,'','','FreeAdhocUDF','equalinteger',0,NULL
'F_EQUALSTRING',0,'','','FreeAdhocUDF','equalstring',0,NULL
'F_EUROVAL',0,'','','FreeAdhocUDF','euroval',0,NULL
'F_FACT',0,'','','FreeAdhocUDF','fact',0,NULL
'F_FACTORIAL',0,'','','FreeAdhocUDF','fact',0,NULL
'F_FINDNTHWORD',0,'','','FreeAdhocUDF','findnthword',0,NULL
'F_FINDWORD',0,'','','FreeAdhocUDF','findword',0,NULL
'F_FINDWORDINDEX',0,'','','FreeAdhocUDF','findwordindex',0,NULL
'F_FIXEDPOINT',0,'','','FreeAdhocUDF','fixedpoint',0,NULL
'F_FIXEDPOINTLANG',0,'','','FreeAdhocUDF','fixedpointlang',0,NULL
'F_GENERATESNDXINDEX',0,'','','FreeAdhocUDF','soundex',0,NULL
'F_GFORMATD',0,'','','FreeAdhocUDF','gformatd',0,NULL
'F_GSOUNDEX',0,'','','FreeAdhocUDF','gsoundex',0,NULL
'F_HEXTOINT',0,'','','FreeAdhocUDF','hextoint',0,NULL
'F_HOLDSTRING',0,'','','FreeAdhocUDF','stripstringhold',0,NULL
'F_HOUR',0,'','','FreeAdhocUDF','hour',0,NULL
'F_HOURSBETWEEN',0,'','','FreeAdhocUDF','hoursbetween',0,NULL
'F_IF',0,'','','FreeAdhocUDF','aif',0,NULL
'F_INTEGERABS',0,'','','FreeAdhocUDF','integerabs',0,NULL
'F_INTTOHEX',0,'','','FreeAdhocUDF','inttohex',0,NULL
'F_ISDIVISIBLEBY',0,'','','FreeAdhocUDF','isdivisibleby',0,NULL
'F_ISLEAPYEAR',0,'','','FreeAdhocUDF','isleapyear',0,NULL
'F_LASTDAY',0,'','','FreeAdhocUDF','lastday',0,NULL
'F_LEFT',0,'','','FreeAdhocUDF','left',0,NULL
'F_LEFT4',0,'','','FreeAdhocUDF','left',0,NULL
'F_LEFT8',0,'','','FreeAdhocUDF','left',0,NULL
'F_LF',0,'','','FreeAdhocUDF','lf',0,NULL
'F_LINEWRAP',0,'','','FreeAdhocUDF','linewrap',0,NULL
'F_LOWER',0,'','','FreeAdhocUDF','lower',0,NULL
'F_LRTRIM',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_LRTRIM4',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_LRTRIM8',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_LTRIM',0,'','','FreeAdhocUDF','ltrim',0,NULL
'F_LTRIM4',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_LTRIM8',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_MAX',0,'','','FreeAdhocUDF','maxnum',0,NULL
'F_MAXDATE',0,'','','FreeAdhocUDF','maxdate',0,NULL
'F_MAXNUM',0,'','','FreeAdhocUDF','maxnum',0,NULL
'F_MID',0,'','','FreeAdhocUDF','mid',0,NULL
'F_MID4',0,'','','FreeAdhocUDF','mid',0,NULL
'F_MID8',0,'','','FreeAdhocUDF','mid',0,NULL
'F_MIN',0,'','','FreeAdhocUDF','minnum',0,NULL
'F_MINDATE',0,'','','FreeAdhocUDF','mindate',0,NULL
'F_MINNUM',0,'','','FreeAdhocUDF','minnum',0,NULL
'F_MINUTE',0,'','','FreeAdhocUDF','minute',0,NULL
'F_MINUTESBETWEEN',0,'','','FreeAdhocUDF','minutesbetween',0,NULL
'F_MODULO',0,'','','FreeAdhocUDF','modulo',0,NULL
'F_MONTH',0,'','','FreeAdhocUDF','month',0,NULL
'F_MONTHSBETWEEN',0,'','','FreeAdhocUDF','monthsbetween',0,NULL
'F_OSTERDATUM',0,'','','FreeAdhocUDF','osterdatum',0,NULL
'F_PADLEFT',0,'','','FreeAdhocUDF','padleft',0,NULL
'F_PADRIGHT',0,'','','FreeAdhocUDF','padright',0,NULL
'F_PROPERCASE',0,'','','FreeAdhocUDF','propercase',0,NULL
'F_PROZENTE',0,'','','FreeAdhocUDF','prozente',0,NULL
'F_QUARTER',0,'','','FreeAdhocUDF','quarter',0,NULL
'F_RADTODEG',0,'','','FreeAdhocUDF','radtodeg',0,NULL
'F_REPLACE',0,'','','FreeAdhocUDF','replace',0,NULL
'F_REPLACE4',0,'','','FreeAdhocUDF','replace',0,NULL
'F_REPLACE8',0,'','','FreeAdhocUDF','replace',0,NULL
'F_REPLACESTRING',0,'','','FreeAdhocUDF','replacestring',0,NULL
'F_REPLACESTRING4',0,'','','FreeAdhocUDF','replacestring',0,NULL
'F_REPLACESTRING8',0,'','','FreeAdhocUDF','replacestring',0,NULL
'F_RIGHT',0,'','','FreeAdhocUDF','right',0,NULL
'F_RIGHT4',0,'','','FreeAdhocUDF','right',0,NULL
'F_RIGHT8',0,'','','FreeAdhocUDF','right',0,NULL
'F_ROUND',0,'','','FreeAdhocUDF','round',0,NULL
'F_ROUNDFLOAT',0,'','','FreeAdhocUDF','roundfloat',0,NULL
'F_RTRIM',0,'','','FreeAdhocUDF','rtrim',0,NULL
'F_RTRIM4',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_RTRIM8',0,'','','FreeAdhocUDF','lrtrim',0,NULL
'F_SECOND',0,'','','FreeAdhocUDF','second',0,NULL
'F_SECONDSBETWEEN',0,'','','FreeAdhocUDF','secondsbetween',0,NULL
'F_SOUNDEX',0,'','','FreeAdhocUDF','soundex',0,NULL
'F_SPACE',0,'','','FreeAdhocUDF','space',0,NULL
'F_STR2EXCEL',0,'','','FreeAdhocUDF','excelstring',0,NULL
'F_STRBLOB',0,'','','FreeAdhocUDF','strblob',2,NULL
'F_STRCOPY',0,'','','FreeAdhocUDF','strcopy',0,NULL
'F_STRINGLENGTH',0,'','','FreeAdhocUDF','stringlength',0,NULL
'F_STRINGLENGTH4',0,'','','FreeAdhocUDF','stringlength',0,NULL
'F_STRINGLENGTH8',0,'','','FreeAdhocUDF','stringlength',0,NULL
'F_STRINGLISTITEM',0,'','','FreeAdhocUDF','stringlistitem',0,NULL
'F_STRIPDATE',0,'','','FreeAdhocUDF','stripdate',0,NULL
'F_STRIPSTRING',0,'','','FreeAdhocUDF','stripstring',0,NULL
'F_STRIPSTRING4',0,'','','FreeAdhocUDF','stripstring',0,NULL
'F_STRIPSTRING8',0,'','','FreeAdhocUDF','stripstring',0,NULL
'F_STRIPSTRINGHOLD',0,'','','FreeAdhocUDF','stripstringhold',0,NULL
'F_STRIPSTRINGHOLD4',0,'','','FreeAdhocUDF','stripstringhold',0,NULL
'F_STRIPSTRINGHOLD8',0,'','','FreeAdhocUDF','stripstringhold',0,NULL
'F_STRIPTIME',0,'','','FreeAdhocUDF','striptime',0,NULL
'F_STROFCHAR',0,'','','FreeAdhocUDF','strofchar',0,NULL
'F_STRRM',0,'','','FreeAdhocUDF','strrm',0,NULL
'F_STRTOTIME',0,'','','FreeAdhocUDF','strtotime',0,NULL
'F_SUBSTR',0,'','','FreeAdhocUDF','substr',0,NULL
'F_SUBSTR4',0,'','','FreeAdhocUDF','substr',0,NULL
'F_SUBSTR8',0,'','','FreeAdhocUDF','substr',0,NULL
'F_TELEFONNR',0,'','','FreeAdhocUDF','telefonnr',0,NULL
'F_TRUNCATE',0,'','','FreeAdhocUDF','truncate',0,NULL
'F_UPPER',0,'','','FreeAdhocUDF','upper',0,NULL
'F_VERSION',0,'','','FreeAdhocUDF','version',0,NULL
'F_WEEK',0,'','','FreeAdhocUDF','week',0,NULL
'F_WEEKOFYEAR',0,'','','FreeAdhocUDF','weekofyear',0,NULL
'F_WEEKSBETWEEN',0,'','','FreeAdhocUDF','weeksbetween',0,NULL
'F_WOY',0,'','','FreeAdhocUDF','woy',0,NULL
'F_YEAR',0,'','','FreeAdhocUDF','year',0,NULL
'F_YEAROFYEAR',0,'','','FreeAdhocUDF','yearofyear',0,NULL
'F_YEARSBETWEEN',0,'','','FreeAdhocUDF','yearsbetween',0,NULL
'F_ZAHLRUNDEN',0,'','','FreeAdhocUDF','zahlrunden',0,NULL
'F_ZEITDIFFERENZ',0,'','','FreeAdhocUDF','zeitdifferenz',0,NULL






Virus-free. www.avast.com