C9 – Trigger support extended

You can now add Create and Fetch triggers in the dictionary, and in the global embeds of a data app.

The Dictionary Editor Trigger Properties list has been extended to include:

Trigger Type                           ABC Method

  • ——————————————————–
  • Before Record Retrieval            PreFetch
  • After Record Retrieval             PostFetch
  • Before Create                          PreCreate
  • After Create                               PostCreate

The following FileManager Methods have been added:

PreFetch                      PROCEDURE(SIGNED OpCode, KEY key, STRING positionBuffer, LONG pointer, UNSIGNED recLen, *CSTRING ErrCode, *CSTRING ErrMsg),BYTE,VIRTUAL
PostFetch                    PROCEDURE(SIGNED OpCode, KEY key, STRING positionBuffer, LONG pointer, UNSIGNED recLen, *CSTRING ErrCode, *CSTRING ErrMsg),BYTE,VIRTUAL
PreCreate                    PROCEDURE(*CSTRING ErrCode, *CSTRING ErrMsg),BYTE,VIRTUAL
PostCreate                  PROCEDURE(*CSTRING ErrCode, *CSTRING ErrMsg),BYTE,VIRTUAL

C9 – SQL improved with PROP:SQLRowSet

PROP:SQL parses the passed SQL and only sets things up for a return result if the SQL is a CALL or SELECT statement.  It cannot always assume a result set as some backends (MSSQL in particular) do not work if you call UPDATE using calls that normally return a result set.  PROP:SQLRowSet offloads the work of which type of calls to use to the developer.  This allows calls that are not CALL or SELECT that return result sets (eg PRAGMA statement in SQLite), to work.

So we could write code like this:

SQLiteFile{PROP:SQLRowSet}=’PRAGMA table_list’ ! get the list of tables in the database
LOOP
NEXT(SQLiteFile)

END

or if using MSSQL

MSSQLfile{PROP:SQLRowSet} = ‘WITH q AS (SELECT COUNT(*) FROM f) SELECT * FROM q’
LOOP
NEXT(MSSQLfile)

END

C9 – Redirection system

The redirection system now supports the built-in macro %libpath% in the Copy section of a redirection file.  This macro evaluates to the directory where the .lib file is located when copying the matching .dll to the destination folder. The C9 default redirection file now includes the folder %libpath%\bin\%configuration% in the Copy section.  This matches the structure used by Clarion.NET when you create a .lib file for a .NET assembly, thus making it very easy to add .NET assembly projects to your win32 solution.

C9 – Reports

New in C9 for reporting;

– Added Single File support to the HTML Report output generator
– ABC Reports: added an option to set the value used for page numbering the first page of the report
– ABC Report Preview: Added “Print Current Page” menu item to the previewer to print just the current page
– Added “Scan Copy” output mode for the PDF Report Generator