Interactive SQL Help
The Interactive SQL capability in the IDE currently supports SELECT statements with a extended syntax for richly formatted results.
Contents |
Interactive SQL Extended Syntax
<Select_Statement // Statement_Qualifiers>
STATEMENT qualifiers
Statement qualifiers follow a double slash '//' comment and are individually seperated by a single slash.
- BREAK - Set Row break options for table
- {NO}CACHE - Enable or disable SQL cache
- CAPTION - Define a table caption
- {NO}CODE - Display executable M code that implements SQL
- COLS - Set global and class attributes for column qualifiers
- {NO}DQMODE - Enable Data-Qwik natural join and Null value translation logic
- {NO}DEBUG - Analyze or Debug a SELECT statement
- MARKUP - Set the markup language to either HTML or TEXT (Default = HTML)
- OUTPUT - Set output device to print results set
- PAGE - Set number of lines per page before issuing form feed and heading reprints
- {NO}PLAN - Display IO access plan score
- ROWS - Set maximum number of rows to output (default = 1,000)
- STYLE - Set table HTML styles (e.g., background-color:#FCFDFE) HTML mode only
- TEMPLATE - Set format and style properties according to a pre-defined template (e.g., REPORT)
- TITLE - Set heading title on top of column headings and enable standard heading format
COLUMN qualifiers ( SQLcolumnExpression {Column_Qualifiers} )
Column qualifiers are enclosed in brackets '{}' adter the column expression. Individual column qualifiers are seperated by commas.
- ALIGN - Set alignment of value in cell to Left, Center, or Right
- {NO}BREAK - Insert line breaks or page break if a column value changes from the last row
- {NO}LENGTH - Set column field length for wrap option or suppress column if '0'
- {NO}FORMAT - Set column format or mask (e.g., decimal-size:2;group-separator:',')
- HEADING - Set column Heading
- MATH - Column mat? ( AVG | COUNT | COUNT-LEAST | COUNT-MOST | LEAST | MAX | MED | MIN | MOST | SUM | UNIQUE )
- MERGE - Merge column with prior column(s)
- NULL - Replace Null value with supplied value
- {NO}REPEAT - Suppress column if value is the same as previous row
- {NO}SPACE - Set whitespace before next column (Text mode only)
- {NO}STYLE - Set HTML style for column (e.g., color:red)
- TITLE - Set column title for hover help (HTML mode only)
- TYPE - Set column data type (TUFN$L)
- {NO}WRAP - Set column overflow wrap option to {NO}WRAP (text mode only) or TRUNCATE
The values of the column qualifiers: ALIGN, FORMAT, LENGTH, HEADING, TITLE and TYPE default from the data dictionary (i.e., Data-Qwik).
Data formats default to masks associated with a column's initial data type (e.g., 'D' = MM/DD/YEAR). The mask is initialized to the runtime variables %MSKE, %MSKD, etc. These can be overridden at either the table level or the individual column level by changing the format property. Formatting can also be defeated completely (Raw data) at the table, class and individual column level.
SQL Syntax Extension
SELECT ColumnList FROM tableList WHERE whereExpression // StatementQualifiers ColumnList :== SQLColumnExpression {ColumnQualifier{,...}} {,...} ColumnQualifier :== QualifierName=Properties{;...} QualifierName :== String format, String style, Number length, String wrap, String merge, String align, String heading, String math, String type, Number space, Boolean repeat, String null, Boolean break Properties :== PropertyName:Value PropertyName :== String PropertyName Value :== Primitive Value
Optional column qualifiers are imbedded directly within SQL SELECT statements. They are declared by enclosing column qualifier expressions in brackets ({}) between SQL column expressions. Qualifier expressions are parsed out of the SQL expression before the SQL expression is processed by the SQL engine or SQL API (e.g., JDBC).
The qualifiers BREAK, FORMAT, LENGTH, REPEAT, SPACE, STYLE, and WRAP can either be prefixed by the string 'no' or assigned a value of 'none'; which will disable the qualifier. (e.g., NOFORMAT and FORMAT = 'none' will disable all formatting for a column and display the raw value from within the results row.)
Example
select class, method, parameters{heading=Format Parameters, style=color:red},des from objectmet
Would override the dictionary default column heading for the column 'parameters' and display the text in Red.
Implementation notes
Default values for STATEMENT expression qualifiers ( preceded by // after SELECT expression)
- BREAK = no
- CACHE = yes (Note: CACHE = no if PLAN = yes)
- CAPTION = Null
- CODE = no
- COLS = no
- DEBUG = no
- OUTPUT = Current browser window
- MARKUP = 'HTML'
- PAGE = no
- PLAN = no
- ROWS = 1000 (Can be extended but may fail if output exceeds 1MB)
- TEMPLATE = Null
- TITLE = Null
- STYLE = Table style properties default to the following values
border-width:1px padding:2px border-spacing: border-style:inset border-color:#788cb3 border-collapse:collapse background-color:#FCFDFE font-family:Verdana font-size:80% alt-row-color:#E0FFD9 currency-minus-color:red
Default values for COLUMN qualifiers ( enclosed in brackets {} after a
column expression )
- LENGTH = Dictionary default for column
- WRAP = yes (Text mode only, ignored for HTML mode unless 'truncate')
- FORMAT = Table and class FORMAT defaults (includes display masks and decimal size)
- ALIGN = Right if column is Currency or Number, Center if Boolean, otherwise Left
- HEADING = Dictionary default from DBTBL1D.RHD
- MATH = Null
- MERGE = No
- TITLE = Dictionary default (composite: DBTBL1D.DI _ DBTBL1D.TYP _ DBTBL1D.DES _ DBTBL1D.TBL)
- TYPE = Dictionary default (List: '$,B,C,D,F,L,M,T,U')
- SPACE = 2 (Text mode only)
- STYLE = Table defaults
- REPEAT = Yes
- NULL = Null
- BREAK = No
Column qualifier detail
- BREAK - Break can be set to an integer between 0 and 10 or the literal 'page'. If multiple columns are set to BREAK, will insert the number of line feeds indicated by the highest column value. Setting the value to 'page' will generate a page feed (form feed, title and heading) when the column value changes. Generally, columns that include the BREAK qualifier should be placed at the beginning of the column list. This qualifier is typically used for key column breaks, or when column values are placed into the page titles.
- FORMAT - This qualifier describes the output mask or formatting rules that are applied to the underlying raw data. For Currency, Date, Number, Logical and Time column classes, the format will default to configuration parameters. Formats can be set for an entire class with the /COLS table qualifier ( e.g., /Currency.format=decimal-size:2 ) or within an individual column ( e.g., DEP.TLD{format="year/mm/dd"} ).
The Number and Currency classes include the following format options:
decimal-size: <default to schema> decimal-seperator: <default to configuration or ".") group-size: <default to 3> group-seperator: <default to configuration or ",")
- The Date class defaults to configuration or "MM/DD/YEAR"
- The Time class defaults to configuration or "12:60 AM"
- The Logical Class dafaults to configuration or "NY"
- The String, Upper and Memo class supports format masks that implement HTML elements. the "URL" mask output the column value as a hyperlink (value=URL), the "IMAGE" mask outputs an image (value=URL) and "HTML " outputs raw HTML (value=HTML markup).
Formatting can be disabled by setting the format qualifier to either noformat or format = none
Notes
a. When entering formats for the Number and Currency class, the syntax must follow the format=property:value; pattern. When entering masks for the other classes, the correct syntax is: format=mask.
b. To disable formatting for the entire table, enter /COLS=.noformat in the table qualifiers. To disable formatting for a specific class enter /COLS=className.noformat in the table qualifiers.
- HEADING - The column heading can be entered in plain text (default) or in HTML markup. To specify HTML, the heading qualifier must be followed by a space and the text html (i.e., {heading html=<img src=http_Reference>}). If the heading is enterd as html markup, all html characters must be propery 'escaped' (e.g., < = <) or the browser may not render the heading correctly.
Individual column headings can be disabled by setting the heading qualifier to noheading or heading = 'none'
- LENGTH - NOLENGTH or LENGTH='0' can be specified to suppress the output of the column. This option can be used in combination with table titles and column breaks to display key columns in headings.
- NULL - Replaced a Null value for the column with a specified value. Since the replacement occurs prior to the execution of the MATH functions, the replacement value will be included in the results.
- MATH - Ignores all null values within all functions (unless changed with NULL qualifier). However, math functions will include values for rows that have output suppressed by the REPEAT qualifier.
- REPEAT - To avoid ambiguity between Null values that result from the REPEAT qualifir and underlying actual Null values, set the Null qualifier if database may contain actual Null values for the column
- STYLE - HTML mode only, can contain any valid HTML Style property
- WRAP - Text mode only. If WRAP is enabled a single character overflow will intrude one character into the space between columns if necessary to avoid a single character overflow. If a SELECT statement contains a column that typically overflows the default display length (e.g., OBJECTMET.PROPERTIES) it may make sense to place that column last in the select expression and set the qualifier to NOWRAP.
Table Titles
In addition to column headings and table captions, a title can be specified for the a table with the /TITLE='Expression' qualifier. A title is typically used to display a report name, directory name, date and time, other optional runtime or table values, and page numbers. Titles are enclosed within the table headings and are displayed at every page break along with column headings. In contrast, captions which outside of the table boundaries and are displayed once at the beginning of the table.
If specified, a title appears within the table boundaries and is contained within a heading group with the individual column headings. The title spans across all of the columns in the table. The title displays the contents of the /TITLE table qualifier, and the directory {company} name (CUVAR.CONAM) along with the system date (%SystemDate) and Current Date (%CurrentDate) and time Current Time (%CurrentTime). If a page break value is specified (/PAGE= 'NumberLines'), the title will also include the current page number.
Variable Insertion in Titles
Through variable insertion, it is also possible to include and format current row (column) data and other runtime values into the title. Including column data into the title when combined with the column properties /break = page and /nolength provides an elegant presentation option for key columns that change infrequently.
The syntax for inserting a column or runtime variable into a title is to prefix the column name or position or variable name with a colon, and enclose it with the greater than and less than symbol, e.g., <:columnReference|variable>. A column reference can be either the column position (e.g., <:1>) or a table.column reference (e.g.,? <:objectmet.class>)
Variable references can include any PSL variable / keyword from within the following list:
Number %ClientVersionID, String %CompanyName, Date %CurrentDate, Time %CurrentTime, Date %EffectiveDate, String %Identifier, Number %ProcessID, String %RoutineName, String %ServerChannelID, String %SessionID, String %SystemCurrency, Date %SystemDate, String %UserClass, String %UserID, String %UserName, String %UserStation, String %VersionID
Data type declarations, formatting and HTML Styles can also be applied to variables by including the Format and Style properties in the variable expression as follows: <:columnReference|variable {Format=ColumnFormat} {Style=ColumnStyle}> For example, the following expression would display a heading with the values for columns dep.cls and dep.grp imbedded and rendered in a red font.
/heading='Account Listing for Class: <:dep.cls style=color:red> and Group <:dep.grp style=color:red>'
Enhanced Wildcard Selection
SQL provides a wildcard character ('*') that can be used to select all of the columns within a table. This capability has been extended to provide filters on the columns that are selected from a table.
- LIST - Selects the columns specified in DBTBL1.DFTHDR or the column that is contained in the DESCRIPTION string (e.g., DES, DESC). The Primary keys of the table are also always included in the selection. This wildcard option is useful for simple list of table table rows that contain a description column.
- "<selectionQuery>" - Selects all the columns specified by the selection query which is applied to the table DBTBL1D. For example: select *"nod in (50,51) and typ = 'D'" from DEP selects all the Date data type columns mapped to nodes 50 and 51 from the DEP table. The selection query is entered in SQL syntax itself, and can include any columns from the DBTBL1D table and any valid SQL where clause syntax.
Sample HTML Results
By default the Interactive SQL interpreter uses HTML to markup the results.
Example #1
Statement
select cls{break=page,nolength}, grp{break=page,nolength}, type{break}, cid, lnm, bal{math=sum;avg, format=decimal-size:2}, balavl, tld from dep order by cls,grp,type,lnm,cid // rows=30/template=report /title=Account Listing for Class: <:dep.cls style=color:red> and Group <:dep.grp style=color:red>
Results
HTML Formatted Interactive SQL results
Sample Text Results
Sample results (there are three examples below, each demonstrating different features of the SELECT browser.
Example #1
Demonstrates the use of MATH functions, headings, format and null value replacement.
Note: The different unique count in columns #5 and #6, due to the replacement of Nulls in column #6. Column #4 is a good example of Unique.
Note: The headings in quotes preserved original upper/lower case, while unquoted values were converted to uppercase. Also, the last heading was split into two lines since it contained the '@' character.
Note: The second column (SUM) was formatted with the Data-Qwik E option, inserting commas into the numbers.
Note: DEP.BAL is defined as three decimal precision in this directory.
Input
SELECT CID{math=unique}, LNM{length=10,wrap=2,math=unique}, bal{math=sum,heading=sum}, bal{math=avg,heading=average}, bal{math=count,heading=count}, bal{math=unique,null=0,heading='Unique Balances'} from dep //rows=10/template=report
Results
Console> %PSL-Runtime: .005691 Seconds Account Report Unique Number Short Name SUM AVERAGE COUNT Balances ------------ ---------- --------------- --------------- --------------- --------------- 6 HOERR,BRUC 10,236.990 10236.990 10236.990 10236.990 7 HOERR,BRUC 17,901.510 17901.510 17901.510 17901.510 8 HOERR,BRUC 210.000 210.000 210.000 210.000 9 HOERR,BRUC 0.000 45 HOERR,BRUC 7,200.000 7200.000 7200.000 7200.000 55 SRIVASTAVA 100,000.000 100000.000 100000.000 100000.000 56 SRIVASTAVA 2,574.000 2574.000 2574.000 2574.000 68 HOERR,BRUC 0.000 71 SANCHEZ,FR 180.000 180.000 180.000 180.000 76 SCHWARTZ,C 12,420.000 12420.000 12420.000 12420.000 ============ ========== =============== =============== =============== =============== 10 4 150,722.500 18840.313 8 9 Complete :> 10 rows processed.
Example #2
Demonstrates the use of the 'break', 'repeat' and /PAGE options.
Note: Even if norepeat is enabled, all columns will print on the first line after a page break.
Input
SELECT class{break},method from objectmet//cache/rows=99/PAGE=10
Output
Console> %PSL-Runtime: .01222 Seconds Class Method ------------ -------------- ByteString ascii extract find justify length piece toPSLExpression translate Class Method ------------ -------------- Cache getRecord isDefined Class isAncestor isClass isDescendant isValid new Class Method ------------ -------------- Date day dayOfMonth dayOfYear daysInMonth daysToEOY isBusDate isLeapYear month Class Method ------------ -------------- Date monthOfYear nextBusDate nextFreqDate prevBusDate toString year Db currVal Class Method ------------ -------------- Db delete fastDelete getOneRow getRecord getSchemaColumn getSchemaTable insert isDefined Class Method ----------- -------------- Db isSchemaColumn isSchemaTable nextKey nextVal prevKey prevVal select selectDbSet Class Method ------------ -------------- Db update DbSet getRecord isEmpty next HTML addAttrib addCol Class Method ------------ -------------- HTML addElement addList addProp addRow addString addTitle IO close Class Method ------------ -------------- IO open read write List add contains count elementAt Class Method ------------ -------------- List position sort Number byte char fnumber random roundCur Class Method ------------ -------------- Number roundDec toString zero Object data exists getClass isPrimitive Class Method ------------ -------------- Object order query PSL actual addSetting addSubrou cachePSLColumn cachePSLTable Class Method ------------ -------------- PSL error getDbLoad getLabelRecord getPSLColumn getPSLTable getSetting hasSetting insertLine Class Method ------------ -------------- PSL isRecord mExpr newVariable openBuffer Complete :> 99 rows processed.
Example #3
Demonstrates the use of the break and wrap options. Also demonstrates the use of the /CODE option to display the M database code.
Note: Column #2 is truncated, while #1 and #3 wrap
Input
SELECT class{break,math=unique}, method,des{length=40,wrap=truncate}, parameters{length=50} from objectmet //code
Output
Console> %PSL-Runtime: .011288 Seconds
Line Executable code ---- -------------------------------------------------------------------------- 1 S vsql(1)="" 2 S vsql(1)=$O(^OBJECT(vsql(1)),1) I vsql(1)="" S vsql=-1 3 S vsql(2)="" 4 S vsql(2)=$O(^OBJECT(vsql(1),1,vsql(2)),1) I vsql(2)="" S vsql=1 5 S vsql(3)=$G(^OBJECT(vsql(1),1,vsql(2))) 6 S vd=$S(vsql(1)=$C(254):"",1:vsql(1))_$C(9)_$S(vsql(2)=$C(254):"",1:vsql(2))_$C(9)_$P(vsql(3),"|",4)_$C(9)_$P(vsql(3),"|",2)</nowiki> Data Key Value -------- --------------------------------- 0 "4" 1 "" 2 "" 3 "" A "" D "T0T0T0T0" F "||MM/DD/YEAR||||" I "OBJECTMET" K "2" P "4" Class Method Description Formal Parameters ------------ -------------- ---------------------------------------- -------------------------------------------------- ByteString ascii ASCII code of byte at specified pos lo?al Number position extract Extract a bytestring local Number start,local Number end find Find the next position of a bytestring local ByteString string,local Number start justify Justify a bytestring local Number fieldLength length String length local ByteString delimiter piece Return bytestring at delimited position local ByteString delimiter,local Number start, local Number end toPSLExpression translate literal value to PSL expressio translate Byte by byte replace local ByteString lookFor,local ByteString replaceBy Cache getRecord Get RecordTABLE object from Cache literal String table,String KeyExpr,literal Boolean classNew isDefined Check if RecordTABLE row exists using Ca literal String table,String KeyExpr Class isAncestor Is Name1 an ancestor of Name2 String ancestorName,String descendantName isClass Does className exist in OBJECT table String className isDescendant Is Name1 a descendant of Name2 String descendantName,String ancestorName isValid Does className exist in OBJECT table Reference instance new Create a new instance of class literal String Class,Object initObj Date day 2 digit day of month dayOfMonth Numeric day of the month dayOfYear Day of the year daysInMonth Number of days in Month daysToEOY Days to the end of the year isBusDate Date is a business date in calendar local String Calendar isLeapYear Leap Year month 2 digit month of year monthOfYear Numeric month of year nextBusDate Next business date for calendar local Number numberDays,local String Calendar nextFreqDate Next frequency date local String frequency,public Number AF,local String control prevBusDate Previous business date for calendar local Number numberDays,local String Calendar toString Convert Date to String local String DateMask year Year (4 digit) Db currVal Return highest key value literal String table,String KeyExpr delete Delete records (SQL format) literal String table,local String where,local String PSQLqualifiers fastDelete Delete multiple records literal String table,String KeyExpr getOneRow Select one row of data from a table String select,String table,String keys,String delim getRecord Retrieve a recordTABLE from the database literal String table,String KeyExpr,literal Boolean ClassNew getSchemaColumn Return a PSL column descriptor local String table, local String column getSchemaTable Return a PSL table descriptor local String table insert Insert a new record (SQL format) String table,String columns,String values,String PSQLqualifiers isDefined Returns whether reference is defined literal String from,literal String where,loca? Number match isSchemaColumn Is table.column a valid column name? local String table, local String column isSchemaTable Is table a valid table name? local String table nextKey Return next key value literal String table,String KeyExpr nextVal Return highest key value + 1 literal String table,String KeyExpr prevKey Return previous key value literal String table,String KeyExpr prevVal Return prior key value literal String table,String KeyExpr select Create a Result set local String select,local String from,local String where,local String orderby,local String groupby,local String PSQLparams selectDbSet Create a set of Records literal String table,local String where,local String orderby update Update records (SQL format) String table,String columns,String where,String PSQLqualifiers DbSet getRecord Return current record literal String table isEmpty Return boolean state of results set next Position cursor to the next row HTML addAttrib Add column attributes String element,String attributes addCol Add Column form resultset to XML documen ResultSet rs,String col addElement Add Element line to XML DTD String element,String attributes addList Add a matching list (columns+values) XML literal String element,literal String columnlist, String valuelist,String delim addProp Add individual column and value to XML String column,String value addRow Add results row with tags String element,ResultSet rs addString Add string to XML format (clsoe or open) String string,literal Boolean close addTitle Add XML title to header String title IO close Close Device open Open IO read Reads a record from device public String ErrorType write Write record local String Record,local String EOL List add Add a value to a list local String expr,local String delimiter,local Boolean allowDuplicate,local Boolean inOrder contains List contains expression String expr,String delimiter,Boolean ignoreCase count Number of elements in list local String delimiter,local Boolean noDuplicates elementAt Return individual element of List local Number position,local String delimiter position Ordinal position in the list local String expr,local String delimiter,local Boolean ignoreCase sort Sort the elements in a list local String delimiter,local Boolean allowDuplicate Number byte return single byte represented by number char return character represented by number fnumber Format (and round) a number ? local String format,local Number decimals random Return pseudo-random number in {0,val-1} roundCur Round an amount to currency local String crcd,local String roundOption,local Number justify roundDec Round an amount to decimal local Number decimal,local String roundOption, local Number justify toString Format a number local Number decimal,local String formatMask zero Zero fill a number local Number length,local Number decimal,local Boolean implied,local Number sign Object data Return object exists / is array exists Return object exists getClass Return object class isPrimitive Class is a primitive class order Next or previous subscript in array local Number direction query Name of next node in array PSL actual actual() array as 'property' Number sub addSetting Add or modify a PSL compiler setting local String section,local String ident,local Primitive value addSubrou Add a subroutine to the module local String Name,local List parameters,local String comment,local Boolean new cachePSLColumn Cache and return a PSL column descriptor PSLColumn cache(), local String qcn, PSLTable tCache() cachePSLTable Cache and return a PSL table descriptor PSLTable cache(), local String table, local Number level error Output a PSL compile-time error String errorText getDbLoad Return Record map header local String subRou,local String var,local Number instPtr getLabelRecord Return a PSL subroutine label record String subrou getPSLColumn Return a PSL column descriptor local String table, local String column, SchemaTable stCache() getPSLTable Return a PSL table descriptor local String table,local Number level getSetting Return a PSL compiler setting (defaults local String section,local String ident hasSetting Does PSL compiler setting exist? local String section,local String ident insertLine Insert a line of code local String PSLCode,local Number line,local Number level isRecord Record class is ancestor of class local String class mExpr Convert a PSL string to an M string local String psl newVariable Generate a new variable name openBuffer Open a new PSL buffer local List parameters,local String comment patch Replace expression with backpatch token local String expression subrouExists Subroutine exists in current module local String name warn Output a PSL compile-time warning local String warning PSLBuffer add Add a line of PSL code to the buffer local String code insert ? insert PSL subroutine into current code local String name, local String resultClass PSLColumn getClass column's dataType as PSL class getCurrentExpr expression to retrieve(0)/set(1) column local PSLIdentifier rec,local Boolean bLeft getCurrentLvn local variable containing column's value local PSLIdentifier rec getCurrentNode Node containing column's value local Boolean bQuoted getOldExpr expr to retrieve(0)/set(1) column.oldVal local PSLIdentifier rec,local Boolean bLeft getOldLvn local variable containing column.oldVal local PSLIdentifier rec getOldNode Node containing column.oldVal local Boolean bQuoted getPurposeNode purpose Id of node containing the column getUpdateCode code to update column value local PSLIdentifier rec,local PSLExpression value, local Number mode PSLExpression fitsLineLength does expression + extra space fit M line local Number extra isArray Expression is an array isLiteral Expression is literal isVariable Expression is a variable toValue Reduce expression to constant PSLIdentifier optimize Reference object can be post optimized PSLSubrou addCode Add a line of M code the buffer local String code addExe Add a line of code from exe() the buffer local String code addLvn Add a vsql() replacement for addExe() to local Number nr,local String expr addTag Add a tag(number) for addExe() to the su local Number nr,local String code getCode Get M code at specified line local Number line getLine Get highest linenumber of the subroutine getLvn Get vsql() replacement value local Number lvn getLvnMax Get highest vsql() replacement number of getTag Get the tag for a subscript in exe() local Number tag getTagMax Get highest tag number of the subroutine getTagPrefix Get the tag prefix for addExe() insCode Insert M code at specified line local Number line,local String Code setTagPrefix Set the tag prefix for addExe() local String prefix PSLTable assertLevel Assert a PSLTable instance with minimum local Number level, PSLColumn cache() getArchivable Is table valid to be archived getArchiveIncl Get tables included with this when archi uded getArchiveKey Get archive key number local Boolean forArch getArchiveSubs Get archive sub-tables getArchiveTable Get primary archive table getFilerLogic Filer logic that needs to be processed local String operation,local PSLExpression qualExp,local Boolean isPslExp getLoadCode M code to load data node local PSLIdentifier rec,local String node,local Number mode,local Boolean exists,public String lvpm() getNewCode M code instantiate new Record local PSLIdentifier rec,local PSLExpression mode getQuery Get table query getSaveCode M code to save data node local PSLIdentifier rec,local String node,local Number mode,local String lvpm(),local PSLColumn ? rdbCol() getUpdateKey M code to safe current key for UPDATE local PSLIdentifier rec,local String lvpm() isOneNode table uses single node in internal stora isParent Table is parent table Primitive get The primitive's value or a default value Primitive default isNull Expression is NULL literal Boolean isIncludeEmptyQuotes Record bypassSave Database save, bypass triggers compare Compare and report differences local Record object2 copy Copy object local String colmap fromArchive Check if record loaded from archive fromArray Copy M array into object properties literal String Array,literal String Keys getMode Return Record Mode getTable Return table represented by this record isChanged Check if the Column has Changed local String column,local String useagetype overlay New record overlay fields String array() save Save a record to the database local String Filerqualifiers setAuditFlag Set update history flag literal Boolean state setCreateOnly Allow create mode only setMode Set Record Mode local Number Mode setUpdateOnly Allow update mode only toArray Copy object properties into M array literal String Array,literal String Keys toString Copy object RecordACN renew Loan/Deposit renewal String keys RecordCIF default New Cif account defaults form product String key RecordDEP default Deposit new account default method String keys renew Loan/Deposit renewal String keys RecordLN default Loan new account product defaults String keys renew Loan/Deposit renewal String keys Reference copy Copy Reference class instance equals Compare two reference objects Reference cmp getPointer Return pointer to reference object getStoredValue Return a process scope value from object local String tag setStoredValue Store a process scope value in an object local String tag,local String value toString Return string representation of object ResultSet getCol Return column value from results row local Primitive colRef getColProt Return column protection local Primitive colRef getRow Return current results row local String delimiter,local List columnList getRowProt Return row protection isEmpty Return boolean state of results set next Position cursor to the next row Row getColumns Get the properties of a Row object getDelimiter Get the row delimiter setColumns Set the properties of a Row object local List Properties setDelimiter Set the row delimiter local String delimiter toRecord Copy a Row object to a Record object local Record identifier,local String columnMap toString Convert a Row object to a String local String colDel,local String quoChar,local String fmtDate,local String fmtTime,local String fmtBool RowSet beforeFirst Position RowSet before first Row ? getRow Return current row isEmpty Return if RowSet is empty loadFromFile Load RowSet from file local String directory,local String filename, local String filetype next Position rowset at the next row Runtime charset Character set commit Commit TP fence delErrXBAD XBAD error object,errcode delayCommit Call subroutine with delayed commits literal String entryref rollback Tp Rollback to the start of a fence Startptr setErrMSG Message Table Error object,msgnum,variable setErrSTBLER Application Error object,errcode setErrXBAD XBAD error object,errcode,column,curval,altval start Start TP fence Tranid,varlist,stat Schema createTable Create temporary table schema String table,String keyexpr,String columnList, String globalName deleteTable Delete table schema String table getTableName Return a table name for a RecordClass String class getTableRecord Return a Data-Qwik table record String table String addQuotes Add one layer of quotes local String character ascii ASCII code of character at specified pos local Number position beginsWith Begins with string local String string,local Boolean ignoreCase blank Pad a string with blanks local Number fieldLength, local Boolean rightJustify byteLimitSubst substring of at most maxBytes bytes local Number start, local Number maxBytes ring complexUnpack Complex unpack of data string local Number length,local Boolean signed,local Boolean leftnib contains Contains a string local String string endsWith Ends with string local String string,local Boolean ignoreCase extract Extract a string local Number start,local Number end find Find the next position of a string local String string,local Number start,local Boolean ignoreCase,local String quoteChar follows Follows a string local String string getSub Return a sub-delimited or labeled string local String label,local String delimiter1,local String delimiter2,local Number position insert Insert a string into a string local String string,local Number offSet,local String padCharacter,local Boolean displace isInteger Is an integer isLike Is like (SQL like) local String likeExpr,local Boolean ignoreCase isLiteral Is a literal value - quoted or number isNumber Is a number justify Justify and pad a string local Number fieldLength,local Number direction, local String padCharacter,local Boolean truncate? length String length local String delimiter lowerCase Convert to lower case local Boolean capitalizeFirstChar piece Return string at delimited position local String delimiter,local Number start,local Number end,local String quoteChar putSub Insert a sub-delimited or tagged string local String insert,local String label,local String delimiter1,local String delimiter2,local Number position replace Replace occurrances of expr1 with expr2 local String expr1,local String expr2,local Number count,local Boolean ignoreCase,local String quoteChar reverse Reverse the character order stripQuotes Strip one layer of quotes local String quoteCharacter toByteString Convert String to ByteString toDate Convert formatted date to julien date local String mask toNumber Convert String to Number local String mask,local Boolean stripSpace toRow Convert a String type to a Row type local List elements,local String delimiter toTime Convert formatted to internal time translate Character by character replace local String lookFor,local String replaceBy trim Trim characters from a String local Number Option,local String character unpack Unpacks data string local Number length upperCase Convert to upper case Time toString Convert Time to String local String TimeMask TranSet copyTran Copy transaction to TranSet local RecordTTX ttx,String colRefs(),local Number tranSeq,local String secTran getTran Get transaction from TranSet local Number Sequence postTSet Post TranSet PostDate,Branch,PostParam,TranArr ============ 33 Complete :> 244 rows processed.