Adding functions to an existing section in the file
If sections for your back-end DBMS already exist in PBODB.ini, use
the following procedure to add new functions.
To add functions to an existing section in PBODB.ini:
-
Open PBODB.ini in one of the following ways:
-
Use the File Editor in PowerBuilder. (For instructions,
see the the section called “Using the file editor” in Users Guide.) -
Use any text editor outside PowerBuilder.
-
-
Locate the entry for your back-end DBMS in the DBMS
Driver/DBMS Settings section of PBODB.ini.For example, here is the PBODB.ini entry for SQL
Anywhere:12345678910111213141516171819202122232425262728293031;*********************************************;DBMS Driver/DBMS Settings see comments at end;of file;*********************************************...[SQL Anywhere]PBSyntax='WATCOM50_SYNTAX'PBDateTime='STANDARD_DATETIME'PBFunctions='ASA_FUNCTIONS'PBDefaultValues='autoincrement,current date,current time,current timestamp,timestamp,null,user'PBDefaultCreate='YES'PBDefaultAlter='YES'PBDefaultExpressions='YES'DelimitIdentifier='YES'PBDateTimeInvalidInSearch='NO'PBTimeInvalidInSearch='YES'PBQualifierIsOwner='NO'PBSpecialDataTypes='WATCOM_SPECIALDATATYPES'IdentifierQuoteChar='"'PBSystemOwner='sys,dbo'PBUseProcOwner='YES'SQLSrvrTSName='YES'SQLSrvrTSQuote='YES'SQLSrvrTSDelimit='YES'ForeignKeyDeleteRule='Disallow if Dependent RowsExist (RESTRICT),Delete any Dependent Rows(CASCADE),Set Dependent Columns to NULL(SET NULL)'TableListType='GLOBAL TEMPORARY' -
Find the name of the section in PBODB.ini that contains
function information for your back-end DBMS.To find this section, look for a line similar to the following
in the DBMS Driver/DBMS Settings entry:1PBFunctions='section_name'For example, the following line in the DBMS Driver/DBMS
Settings entry for SQL Anywhere indicates that the name of the
Functions section is ASA_FUNCTIONS:1PBFunctions='ASA_FUNCTIONS' -
Find the Functions section for your back-end DBMS in
PBODB.ini.For example, here is the Functions section for SQL
Anywhere:1234567891011121314151617181920212223242526272829303132333435363738394041424344;*********************************************;Functions;*********************************************[ASA_FUNCTIONS]AggrFuncs=avg(x),avg(distinct x),count(x),count(distinct x),count(*),list(x),list(distinct x),max(x),max(distinct x),min(x),min(distinct x),sum(x),sum(distinct x)Functions=abs(x),acos(x),asin(x),atan(x),atan2(x,y),ceiling(x),cos(x),cot(x),degrees(x),exp(x),floor(x),log(x),log10(x),mod(dividend,divisor),pi(*),power(x,y),radians(x),rand(),rand(x),remainder(dividend,divisor),round(x,y),sign(x),sin(x),sqrt(x),tan(x),"truncate"(x,y),ascii(x),byte_length(x),byte_substr(x,y,z),char(x),char_length(x),charindex(x,y),difference(x,y)insertstr(x,y,z),lcase(x),left(x,y),length(x), locate(x,y,z),lower(x),ltrim(x),patindex('x',y),repeat(x,y),replicate(x,y),right(x,y),rtrim(x),similar(x,y),soundex(x),space(x),str(x,y,z),string(x,...),stuff(w,x,y,z),substr(x,y,z),trim(x),ucase(x),upper(x),date(x),dateformat(x,y),datename(x,y),day(x),dayname(x),days(x),dow(x),hour(x),hours(x),minute(x),minutes(x),minutes(x,y),month(x),monthname(x),months(x),months(x,y),now(*),quarter(x),second(x),seconds(x),seconds(x,y),today(*),weeks(x),weeks(x,y),year(x),years(x),years(x,y),ymd(x,y,z),dateadd(x,y,z),datediff(x,y,z),datename(x,y),datepart(x,y),getdate(),cast(x as y),convert(x,y,z),hextoint(x),inttohex(x),connection_property(x,...),datalength(x),db_id(x),db_name(x),db_property(x),next_connection(x),next_database(x),property(x),property_name(x),property_number(x),property_description(x),argn(x,y,...),coalesce(x,...),estimate(x,y,z),estimate_source(x,y,z),experience_estimate(x,y,z),ifnull(x,y,z),index_estimate(x,y,z),isnull(x,...),number(*),plan(x),traceback(*) -
To add a new function, type a comma followed by the function
name at the end of the appropriate function list, as follows:-
Aggregate functions
Add aggregate functions to the end of the AggrFuncs
list. -
All other functions
Add all other functions to the end of the Functions
list.
Case sensitivity
If the back-end DBMS you are using is case sensitive, be
sure to use the required case when you add the function name.The
following example shows a new function for SQL Anywhere added at
the end of the Functions list:12;*********************************************;Functions12345678910111213;*********************************************[ASA_FUNCTIONS]AggrFuncs=avg(x),avg(distinct x),count(x),count(distinct x),count(*),list(x),list(distinct x),max(x),max(distinct x),min(x),min(distinct x),sum(x),sum(distinct x)Functions=abs(x),acos(x),asin(x),atan(x),atan2(x,y),ceiling(x),cos(x),cot(x),degrees(x),exp(x),floor(x),log(x),log10(x),mod(dividend,divisor),pi(*),power(x,y),radians(x),rand(),rand(x),...number(*),plan(x),traceback(*),newfunction() -
-
Save your changes to PBODB.ini.