Skip to content

DataFlex 2023 Alpha 2 Release Notes

This page lists the specific changes in DataFlex 2023 between Alpha 1 and Alpha 2.

See What's New in DataFlex 2023 for all new features in DataFlex 2023.

CodeSense on SQL Queries

  • The Studio will now help write SQL queries by supplying CodeSense in your SQL statements. This feature is available when using @SQL strings in the language or when editing .sql files with the Query Tester.

SQL CodeSense

Aligned Multiline Strings

When embedding foreign code like SQL, JavaScript, or HTML into DataFlex code, you can use a multiline string. A new style of multiline string has been added that allows better alignment with the rest of your code without adding excessive whitespace to the actual string at runtime. These strings use the triple quote notation and have the advantage that you can embed quotes in your source code.

Get SQLExecDirect of ghoSQLExecutor @SQL"""
SELECT Phone_Number
FROM Customer
WHERE Customer_Number = 33
""" to aResult

Move """
function hello(sName) {
    window.alert("Hello: " + sName);
}
hello("world");
""" to sJavaScript

Multi-Line Comments

/* Multi-Line comments
have been added
to the DataFlex language. :-) */

See Comments for details.

Customizable Context Menu for the WebList

The context menu available on the header of cWebLists and cWebGrids can now be customized. This can be done by overriding or augmenting OnCreateDefaultHeaderMenu, or by setting pbUseCustomerHeaderMenu and adding a context menu (see cWebMenuColumnList) inside the WebList object. A new context C_WebUIContextListHead is available in the cWebContextMenu to address the header of the WebList.

Improved Query Tester

Besides being enhanced with CodeSense, the Query Tester has been extended with the ability to show multiple result sets and can execute partial SQL statements by selecting the text before executing. The user interface for displaying errors and when no result set is available has also been improved.

Improved Parameterized Query Syntax

Among many bug fixes, the SQL Executor's class parameterized query syntax has been changed. Due to conflicts with SQL variables, named parameters are now placed in the query with the ${name} syntax. Note that when setting a parameter value using SQLSetParameter, only the name is supplied. The handling of different types like dates and numbers by SQLSetParameter has also been improved.

Send SQLPrepare of ghoSQLExecutor @SQL"SELECT Customer.Phone_Number FROM Customer WHERE Customer.Customer_Number = ${CustId}"
Send SQLSetParameter of ghoSQLExecutor "CustId" 33
Get SQLExecute of ghoSQLExecutor to aResult

Other Improvements

Query Tester

  • Added support for multiple result sets.
  • Added ability to only execute highlighted SQL code.
  • Added CodeSense for SQL queries.
  • If a query execution creates multiple result sets, the user can scroll between the result sets.
  • Query errors are now displayed in the results grid instead of unhandled Studio errors.

Runtime and Packages

  • Adjusted casing of classes, properties, methods, and parameters from cSql... to cSQL....
  • Added ghoErrorHandler, which is available for both Windows and Web. ghoWebErrorHandler is now a replacement, and Error_Info_Object is a replacement for oErrorHandler.
  • Added new Codejock Commandbars Themes available in Codejock 22:
  • xtpThemeNativeWindows10
  • xtpThemeWindows10Dark
  • xtpThemeOffice2016AccessBlack
  • xtpThemeVisualStudio2015Blue
  • xtpThemeVisualStudio2017Blue
  • xtpThemeVisualStudio2017BlueExtra
  • xtpThemeVisualStudio2017Dark
  • xtpThemeVisualStudio2017Light
  • xtpThemeVisualStudio2019Blue
  • xtpThemeVisualStudio2019BlueExtra
  • xtpThemeVisualStudio2019Dark
  • xtpThemeVisualStudio2019Light
  • xtpThemeVisualStudio2022Blue
  • xtpThemeVisualStudio2022BlueExtra
  • xtpThemeVisualStudio2022Dark
  • xtpThemeVisualStudio2022Light

Studio

  • Added Database toolbar.
  • Fixed expressions in Properties Panel and added improved multiline support for expressions.
  • Changed keyboard shortcut to open a new SQL Query from Ctrl+Q to Alt+Q.

Bug Fixes

Installation

  • Fixed a bug when installing and unchecking the "Do not configure IIS" installation option, regardless of whether IIS is installed in Windows or not.
  • DFPath in Registry Defaults has double backslashes (\\) in DFPath.

New Embedded SQL API

  • Calling SQLExecDirect with a single variable instead of an array crashed with an access violation.
  • Using the same parameter twice does not work.

Include_Text

  • Include_Text was including a BOM; now UTF-8 is always assumed.

Studio

  • Properties Panel: Web Properties filter was shadowed in FlexTron classes/objects.
  • Improved Debugger Performance with Strings.
  • Studio crash after using CodeSense scrollbar.
  • Studio may crash when the code complete list is up.
  • Added @SQL to CodeSense suggestions.

FlexTron

  • Studio crashes when pressing F7 while a FlexTron control is selected.
  • Preview web component in Web Mobile Zoom View Wizard triggers script errors.
  • DownloadUrl does not work when opening a new window.

Query Tester

  • "Save All open Files" did not save unsaved queries.
  • "Save As" dialog for a new query can now be canceled.
  • Saving a query will not suggest the same name repeatedly.
  • Unsaved queries can now remain unsaved (a save is not forced) when running a program.
  • Using the same parameter name twice puts it in the list twice.

WebApp Framework

  • Web Column Headers now have auto wrapping to avoid adding <br>, using pbAllowHtml.
  • The cWebDynamicObjectContainer class did not implement OwnerCancelClientAction, causing an error when doing a GridRefresh on a cWebList / cWebGrid created as a dynamic object.
  • Corrected shadow of WebContextMenu in Df_Material.
  • The check symbol of the checkbox inside the header of the cWebColumnSelectionIndicator did not align nicely in Flat_Touch, Flat_Desktop, and Material themes.
  • Fixed a bug triggering an error when selecting multiple rows in a cWebMultiSelectList.
  • API Change: Fixed an issue in which df.dom.removeListener and df.events APIs were not requiring a fListener when detaching. If not provided, a warning is thrown in the console log.
  • cWebSuggestionForm and cWebTagsForm numeric lookup did not find any items.
  • cWebSuggestionForm and cWebTagsForm no longer have suggestions cut off.
  • cWebTagsForm:
  • Fixed a caching issue when using pbPaged.
  • Fixed an escaping issue when using pbFullText.

Database Explorer

  • Index grid on indexes tab-page was not read-only.

Runtime

  • When SortArray is called with an array with a missing element, a GPF occurred.

WinPrint

  • WinPrint 23.0 does not run if DataFlex 20.1 is not installed.

Miscellaneous

  • Remaining FlexCOM 1 classes/packages have been removed (obsolete since DataFlex 8.x).