Skip to content

DataFlex 2020 Alpha 2 Release Notes

This is a partial log of the changes between Alpha 1 and Alpha 2.

Updated Database Drivers for MSSQL, DB2, and MySQL

One of the main goals for Alpha 2 was to complete the update of the Unicode / 64-bit database drivers (Alpha 1 stated this process but was limited to MSSQL) for DB2 and MySQL.

DataFlex-Level Changes

  • Changed Alpha 1 references to Alpha 2 in Start Center.
  • SQLFetchResultsetValues will no longer generate "Invalid Cursor State" error for non-existing result set.
  • Updated versions of db2_driverdef.xml and odbc_driverdef.xml (used by the Studio).
  • Updated versions of driver .int files (latest with fixed typos).
  • Fix for psValue of DEO's. The web property number support broke the psValue implementation of cWebBaseDEO.
  • Added WOW64 constants to RegistryAPI.pkg.
  • Fixed typo in WebFloatingPanel.
  • cList in VDFOEMAnsi and VDFRepair was not converted to Unicode – fixed.
  • Corrected forward send of Construct_Object & End_Construct_Object cases reported by Sture.
  • Removed hard-coded reference to 265 for WebAppServerProps table.
  • Enabled warnings for old registry commands.
  • Fixed typo in error message in cWebServerPropHandler.pkg.
  • DoAttachProcess was changed to a function to improve error handling for the web app object, but not for the ASP object. Changing back Get DoAttachProcess into Send DoAttachProcess solves this.
  • Removed WebApp Server key structure under the WOW6432Node (32-bit) structure.
  • Installation - Doubled threadstacksize registry key for 64-bit.
  • Changed various references from Alpha 1 to Alpha 2.
  • Fixed DoAttachProcess – Web framework applications that do not include cWebAspClassicObject would not compile. Added a Register_Procedure to prevent compile errors.
  • For ASP Classic web applications, addressof returns 0 for empty strings, so the memcopy failed, causing a few bytes of garbage to be returned – fixed.
  • Made determination of mime type case insensitive.
  • Fixed TVM_EDITLABEL define in Commctrl.pkg.
  • Added new Flush_Output command.
  • Type changes for 64-bit in Dftreevw.pkg.
  • Creating a new database left the wrong error object. Fixed the bug and added checks & errors for recursive error handling during conversion.
  • Added flush log for each write during the data conversion process to assist in debugging.
  • Do not set DF_FILE_RECNUM if not needed.
  • Added extra log for troubleshooting crashes during data conversion.
  • Dfstatbr.pkg had code that had an invalid conversion to WString when it expects an integer array. Fixed it to also use an integer array in DataFlex.
  • Renamed Byte function to UCharToString.
  • Corrected showing DefaultFormHeight and DefaultFormSpacing in the workspace properties panel.
  • Implemented OnCollapse & OnExpand events in cWebGroup.
  • CodeSense will show Windows_Message procedure parameters as LongPtr, not integer.
  • Added new map schemas MAP_DF_TO_SQL_TYPE_UNICODE and MAP_DF_TO_SQL_TYPE_NON_UNICODE in db2_drv.int.
  • Wizards were still letting the editor load files as OEM, causing some extended characters to be lost in conversion.
  • Added byte function and C_BOMUTF8 constant.
  • Converted the wizards to write source code as UTF-8 with BOM.
  • Added missing image file in material theme.
  • Initial pbAutoTab implementation in cWebForm.
  • Added the OnKeyPress event with parameters iCharCode and iKeyCode. Note that it relies on the default event delay for not firing too often.
  • Implemented new autocomplete property on cWebForm and cWebEdit that maps directly to the autocomplete HTML attribute.
  • Changed the login screens in the templates and the samples to set autocomplete for username and password.
  • Tested/supported ODBC driver: MySQL ODBC 8.0 Unicode Driver Version 8.0.18 or later. New setting: Character_Data_Handling utf8.
  • phoSoapClientHelper is an object handle and thus should be set to 0, not "".
  • Updated translation from Marcia for dferr001.dat.
  • Changed short to integer in cScrollingContainerMixin.pkg.
  • Swapped connect/repair and conversion menu items in the database builder to match the studio.
  • Implemented basic UnSyncWebProperty. For now, it only works on client web properties.
  • Added platform: 32-bit / 64-bit to system information.
  • Corrected password hint for new workspaces.
  • Fix for psValue with localization changes.
  • Changed rights to license files in installation.
  • The reset to system file in database explorer did not work because of a missing line in the DoMakeSysFile routine.

C-Level Changes

  • FillField: removed copy DF_LOW / DF_HIGH in the buffer.
  • Improved reading of collation file.
  • Compiler: Increased max line length for reading first line to read the BOM.
  • Adjusted conversions in wascint from OEM to UTF-8.
  • MySQL Insert in table with autoincrement column caused error.
  • Fill_Field will fill fieldbuf with all 'z' or all space.
  • Find EQ with Fill_Field on index segments is now explicitly handled.
  • Native length/buffer change for DF_TEXT and DF_BINARY columns.
  • Bugfix: Constrained_Find would sometimes invalidate Find_Cache.
  • Performance improvements on debugger string handling.
  • Trimming of trailing spaces in compare.
  • Added Flush_Output command.
  • Fix for saverecord update where clause.
  • FieldGetString was losing the null terminator in the translation.
  • Refactoring of WHERE clause logic.
  • Changes to handle DB2 SQL_GRAPHIC and SQL_VARGRAPHIC types.
  • DB2_DRV, ODBC_DRV default type DF_ASCII columns now SQL_VARCHAR.
  • FindTable case insensitive compare on table name.
  • Fixed BOM issue causing compile to fail.

Documentation

Language Reference

  • Added UCharToString function.
  • DF_FILE_SQL_FILTER, DF_FILE_SQL_FILTER_EQ, DF_FILE_SQL_FILTER_ACTIVE: Added info that these are the global table filter and linked them to pbApplyGlobalSQLFilters.
  • Corrected and updated DF_DRIVER_MAP_DFxxx and DF_DATABASE_MAP_DFxxx attributes.
  • Added Flush_Output command.
  • Added return types to all global function pages.
  • Removed Append command from Functions list in TOC.
  • WebRegisterPath: added links to Class Ref for eNavigationMode (NavigateForward, NavigateForwardCustom, and NavigateBegin).
  • Corrected sample code in DF_Database_Default_Database.
  • Corrected ZeroString function sample.
  • Updated list of modes to DF_File_Mode and a Value column.
  • Added DF_SYSDATE4_STATE. It’s obsolete (since Sysdate is obsolete), but available for reference.
  • Added note that TimeSpan values cannot be negative.
  • Added documentation for RandomHexUUID and SeqHexUUID.
  • Corrected DateSetMonth: it cannot be used with TimeSpan (DateSetMillisecondDateSetDay can).
  • Removed some external See Also pages.
  • Miscellaneous edits.

Development Guide

  • Updated Type Mapping pages.
  • Numerous grammatical errors on Meaningful URLs and History Management Page.
  • Fixed links.

Connectivity

  • Added Type Mappings page to Type Mappings index entry.
  • Updated type mappings for current CK. Updated multiple pages with info for current CK.
  • Added numerous links, updated some sample code.

Class Reference

  • Filled many of the placeholder articles for:
  • DataDictionary
  • cApplication
  • cClientWebService
  • cSQLStatement
  • cWebApp
  • cWebColorForm
  • cWebCombo
  • cWebDynamicObjectContainer
  • cWebErrorHandler
  • cWebGeoLocation
  • cWebHtmlList
  • cWebIFrame
  • cWebList
  • cWebObject
  • cWebResourceManager
  • cDbCJGridColumnSuggestion
  • cHttpTransfer
  • cJsonHttpTransfer
  • cRegistry
  • cUIObject
  • Added help on using dynamic SQL filters and examples.
  • Added documentation for peWordBreak.
  • Updated ConnectionIds function explanation of returned connection array.
  • Improved documentation on accessing state hash.
  • Updated cRegistry class with new constants and information about Registry Redirection.
  • Improved peDataType, piPrecision, and psMask and added examples for web classes.
  • Added missing ByRef to code sample in NavigateForwardCustom.
  • Added samples for clearing Foreign_Field_Option.
  • Clarified descriptions for clearing Field_Option.
  • Added sample of clearing all field options to Field_Options.
  • Corrected Field_Options samples that used obsolete methods.
  • Added sample of clearing all foreign field options to Foreign_Field_Option.
  • Reviewed and clarified Field_Options and Foreign_Field_Option documentation.
  • Added a real-world sample to web OnValidate.
  • Added a real-world sample to web PositionToValue and ValueToPosition for cWebSlider.
  • Removed references to ASP from cWebResourceManager class.
  • Added documentation for psResourceUrl and psUploadUrl.
  • Replaced error 4140 with DFERR_NO_DELETE_RELATED_RECORDS_EXIST in Operation_Not_Allowed sample.
  • Added better information and samples to web-based classes OnLoad event.
  • Improved documentation for Which_Data_Set.
  • Added documentation for server-side nullable data type support to cWebService class.
  • Added documentation to parameter of cWebBaseDEOServer.DeleteConformation.
  • Corrected psMask on Web to use the correct constant (it was using the same constants as the Windows psMask version).
  • Added sample of throwing Data_Set_Error to Field_Validate_msg.

Language Guide

  • Added Data Types index entry.
  • Simple Types page was missing ULongptr.
  • ULongptr Type link to ULongptr was broken.
  • Removed incorrect references to null on Declaring Variables page.

Studio

  • Added explanation that the debugger shows the Unicode replacement character for characters in strings and UChar arrays outside the ASCII range (>127).
  • Added usage information to main Data Dictionary Modeler page.
  • Added info to Description Studio meta-data tag where the description is displayed in a running web service.

What's New

  • Updated main 2021 page.
  • Added information about setting up DB2 and MySQL environments.
  • Added information about memory use in WebApps.
  • Added links to other new documentation.
  • Added Alpha 2 Change Log.

See Also

What's New in DataFlex 2021