Issue 31928 — deprecated sql92npw connector option MSS U5.2 driver still needed by endusers
Status: Planned for resolution in 10.4.01
Solution available in patch(es): 10.3.02.003 9.7.05.016
Summary: Uniface: deprecated sql92npw connector option MSS U5.2 driver still needed by endusers. This option has been deprecated because Microsoft will be disabling the setting being OFF in a future version of SQL server. However this option is at the moment still available in Microsof SQL Server 2017 and higher versions. Environment: +Uniface Version : 9 .7.05 / 10.3 +Operating System : OS independent +Database : Microsoft SQL Server 2017 and higher Reproduction scenario Use the U5.2 driver for Microsoft SQL Server 2017 and set sql92npw to off: USYS$MSS_PARAMS sql92npw = off In 4GL execute sql/print "SELECT ISNULL('type: ' + fruit, '(null)') AS fruit FROM null_fruit" Expected Result fruit =============== type: type: apple type: banana Actual Result Behavior as if sql92npw=on: fruit =============== (null) type: apple type: banana
The concatenation of 'type: ' and a null value has now resulted in null because null values are considered unknown values and not empty strings. Should you want to explicitly consider null values as empty strings, the ISNULL or COALESCE functions should be used in the SQL statement. For example: sql/print "SELECT 'type:' + ISNULL(fruit, '') AS fruit FROM null_fruit" or sql/print "SELECT 'type:' + COALESCE(fruit, '') AS fruit FROM null_fruit"
For MSS connector U5.2, the sql92npw option was initially deprecated and the default set to on. It is now possible to set this option off, but the default remains on for MSS U5.2 and higher. For MSS U5.1 and lower, the default is off.