4.622 Updates

Please refer to the 4.622 Release Notes for more information about this release.


Date File Description

2010

17 Septcpmgr.w32

The version included in the download for 4.622 since 31/10/2007 could terminate with a memory exception or send an invalid reply to tcpw.w32 in certain circumstances.

2009

14 Octwininst.chm

The Windows installation guide included in the download for 4.622 has been updated to the latest version, to alert customers to the fact that DP4 4.622 does not work on 64-bit versions of Windows.

2008

22 Octsqllibt.dll

The DP4 SQL interface did not handle unterminated strings correctly, and gave a spurious error message.

19 Maydbmslibt.dll
dbmslb95.dll

Under certain very rare circumstances fetch() functions might return the wrong record when accessing databases that used 4.620 or legacy database format. The problem was more likely to occur with legacy databases. Databases using the new "Two file index" were unaffected.

15 Mayinstall.exe

The install program has been updated to make installation from within WinZip work better on machines for which the TEMP folder name is long.

2007

7 Dectcpmgr.w32

The fix posted on 31 Oct could cause spurious network failures with additional error code 270 under some circumstances.

31 Octprogprn.exe

PROGPRN was prone to GPFs when printing large programs.

31 Octtcpmgr.w32

Under certain circumstances TCPMGR leaked handles when very heavily loaded. The fix is dated 12 October but was not released until 31 Oct

29 Augtrmw32.dll

Neither dynaback -copy for dbrecov worked correctly when either the DAT,IND, or PTR file exceeded 4GB. dynaback would fail reporting the original database corrupt when it was not. dbrecov would appear to succeed but leave the database seriously corrupted. This bug was caused by a fault in the large file support built into trmw32.dll.

3 Aprdbmslibt.dll

Under certain, very rare, circumstances databases that use the new "Two File Index" structure may develop a corruption in the index which causes dbcheck -full or dynaback to fail. The corruption is real but usually harmless, except for the fact that it may problems because of the need to restore the last backup. The updated dbmslibt.dll (dated 15/03/2007 internally) fixes this problem, but if a database is already suffering from it it should be reorganised. Normally it should not be necessary to use the -corrupt command tail in this case.

22 Febsyslibt.dll

On certain computers running Windows XP,2003,and (probably) Vista, DP4 applications that fail during initialisation were unable to report errors interactively. The update contains a work-around for a "feature" in these versions of windows that affects applications that use manifests to indicate support for XP style user interface. On these platforms such applications may have to had called InitCommonControls() before using MessageBox(). Whether or not this problem manifests itself seems to depend on the service pack level and update history.

2006

20 Dectrmw32.dll

Re-issue of fix made on 8th June. The released file did not have a version stamp.

13 Octerrlog.w32

On Windows NT family operating systems when DP4 is run as a service, then DP4 would hang when DP4 errlog logging is loaded, after there has been a logoff/logon sequence on the main desktop while the service is running. How long the hang would take to occur would depend on the volume of diagnostics being produced. This bug is long standing, but so far is fixed only in 4.621a and beyond.

27 Sepusrlibt.dll
syslibce.dll

When updating data over a network connection network errors were occasionally reported as System Error 7 errors, instead of as Fail Error 7 errors. This fix was made on 25th August but has only now been issued.

27 Jun??qabd.lib
progrund.exe

Pressing G to display Global variables also caused program to run as far as next breakpoint. Pressing G now works like D and L options - i.e. it displays variables without changing program state.

27 Junusrlibt.dll
syslibce.dll

dp4_bf_fetch() did not automatically set the DEPTH flag when a non-zero value was specified for the final parameter. This would have caused unexpected behaviour in C++ programs that used this functionality. Also dp4_blk_f2nd() passed the depth parameter incorrectly in all cases.

13 Juninstall.exe

Install program did not work properly if you tried installing additional products after a clean install. Install program did not work properly if you tried installing over an installation with a broken [preload] section. Unnecessary warnings about rebooting have been removed.

8 Juntrmw32.dll
trmwce.dll

Embedded data was not working correctly in controls containing more than one item of embedded data. This bug was introduced by the fix issued on 19th October 2005.

17 Maysrvw32.exe
syslibt.dll

The 4.623 beta ZIP file, now available from the DP4 FTP site contains enhanced versions of srvw32.exe and syslibt.dll which together can help solve problems caused by ill-behaved programs that terminate without allowing DP4 to perform necessary clean-up. The new version of syslibt.dll will not run on Windows 95. For details see information on the new dp4.ini setting monitor.

7 Mardp4srvr.w32

If one or more programs updated the database while dynaback -copy was running against a database, but at the moment dynaback -copy completes no other programs has the database open, or no further programs updated the database before it was finally closed, then the database was not properly closed and dbrecov would restore it from the backup that had just completed because no rollback file exists.

3 Mardbmslibt.dll

In some circumstances dynaback -copy would fail because of a checksum error in the backup. In theory this bug could also cause dbrecov to leave a database in a state where it would fail dbcheck because of an incorrect hole.See a4000034.htm for details of this bug. This bug is present in all DP4 releases

This bug also contains a patch for a minor bug that arises with Legacy and 4.620 style databases. In 4.622 only adjacent holes were not always merged when this was possible.

The new dbmslibt.dll also attempts to work-around a bug in the Windows API MoveFile() which cause an attempt to rename a file to fail for no valid reason.dbmslibt.dll now retries renames ten times if certain error codes are returned by the operating system. This bug could cause reorgdb, numbsys or dynaback to fail at the very end. the bug is extremely intermittent and does not occur at all on most machines.

9 Febdbmslibt.dll

Extremely large transactions (of the order of thousands of posts with no commit) could cause a GPF in dp4srvr.w32.

13 Febdp4srvr.w32

In some circumstances DYNABACK -COPY did not apply the rollback log to a backed up database. This caused the DBCHECK to fail, and hence the original database to be marked as having problems when in fact it was OK.

9 Febdp4srvr.w32

If a system failure occured while DBRECOV was applying a transaction log then a subsequent DBRECOV might fail to apply the rollback log created by the first DBRECOV, leaving the database corrupt

9 Febdbmslibt.dll

Extremely large transactions (of the order of thousands of posts with no commit) could cause a GPF in dp4srvr.w32.

9 Febtrmw32.dll

After map_copy(), or show_attach_map() into an edit control with a prompt box the screen was not updated correctly, especially if "fully buffered" was not selected as screen refresh mode in DFSETUP.

7 Febtrmw32.dll

Fix for a bug in Enumeration Controls which caused spurious map not found errors. The fix has also been applied to 4.621a

17 Jantrmw32.dll

Due to a bug in DeferWindowPos() trmw32.dll leaked "user objects" in some circumstances. If a program ran for a very long time this could cause resource starvation, leading to a GPF when trmw32.dll could no longer create windows. A work-around has been added which has been enabled by default. See a4000035 for further details. All 4.6xx releases of DP4 for Windows are affected by this bug, but the fix has only been applied to releases 4.622 and 4.621a

2005

22 Decreorgdb.exe

4.620 or legacy databases could be left in a state where DBCHECK failed even though the database appeared to (and does) work perfectly. This was caused by an unused pointer being left uninitialised. Generally the pointer was give the correct value (0), but very occasionally it could be set to an invalid value.

22 Decdbmslibt.dll

reorgdb could create a database with duplicate primary keys if a legacy or 4.620 compatible database was reorganised after a structure change that results in a primary key change

22 Decdp4srvr.w32

shutdown -db dbname -nowait could cause DP4SRVR to GPF in some circumstances

21 Decdp4srvr.w32

Database could be corrupted when record locking was used. See a4000034.htm for details of this bug.

21 Decdbrecov.exe

The -silent option failed if the database needed to be restored from the last online backup.

1 Decdynachek.exe

Re-issue of fix posted on 25th November - the CE files did not load as they were linked with an incorrectly built set of DP4 libraries

25 Novdbrecov.exe
dp4srvr.wce
dbrestor.exe
reorgdb.exe
dynachek.exe

The various patches to these utilities issued earlier this month for the Windows version of DP4 have now also been applied to Windows CE. This was originally issued on 22nd, but the 2nd November fix to REORGDB was not in fact present as that fix had been posted with an incorrect build number.

25 Novdynachek.exe

Re-issue of fix posted on 18th November - the original fix introduced a nother spurious corruption report

Spurious corruptions could be reported on databases using enhanced index compression if character keyfields contained null terminated strings rather than blank padded data.

The print out for corruptions was incorrect for databases using BCD based number systems.

18 Novdbrecov.exe

The quick restore facility in dbrecov.exe was afflicted by the same bug as was fixed in dbrestor.exe on Nov 9th

10 Novdp4srvr.w32

If a record was locked before the database was updated the data file checksum became corrupted, causing dbcheck to fail subsequently. Also, if there was a system crash at such a point it would be possible for records to be left locked on the database.

9 Novdbrestor.exe

The options that should apply the transaction log no longer worked. They returned immediately without issuing any warning message, creating the impresion that they had worked, but did not actually apply the log file.

7 Novtrmw32.dll

The fix posted on 19th October introduced a new bug, which could cause maps that used embedded data to GPF, especially if they were used repeatedly in a scrolling map.

2 Novreorgdb.exe

Option 1 still reported spurious errors when reorganising older legacy structure databases that had not previously been reorganised with release 4.622

3 Novdbmslibt.dll
dbmslb95.dll

The files issued on 11 August were reported as corrupt by progdate, so have been rebuilt and re-issued. There are no changes to the source code.

19 Octtrmw32.dll

Would occasionally GPF on Windows 2000 for no apparent reason. This problem arose because an internal validation performed on a Window handle was not correct on Windows 2000. The validation concerned has been present in trmw32.dll for many years, so the problem exists in all 4.6xx releases of trmw32.dll. The validation has been removed because it depended on undocumented information that is no longer valid:

  • trmw32.dll assumed that the high order word of a window handle was never -1 since this value is used for various "special" values such as HWND_TOPMOST. However, in Windows 2000, ordinary window handles do sometimes have this value in the high order word. As far as I know this is not the case on any other version of Windows. However there is no guarantee, so the GPF might also occur on other platforms.

19 Octsqlexe.exe

Did not support the version Tab in Windows Explorer.

13 Octsyslibnt.dll
syslibt.dll

syslibnt.dll reported a spurious error if a preload section of dp4.ini is used when the DP4 service is started.

If DP4 was loaded in the named connection configuration, and a very large number of programs were running locally, and the DP4 service was stopped then tcpmgr.w32 might continue to run for a considerable period (roughly two seconds per local program), after the DP4 service stopped. The fix for this problem means that once a DP4 ipc channel has failed for a process (because there is no server for the channel), all subsequent calls from that process to IPC functions using that channel are instantly failed. Previously calls were always attempted, and there was a one second timeout until the server status was checked and the call failed.

16 Augimppost.exe

The option to force a scale factor on type N fields did not work in any 32 bit release of DP4 when the field was in string format. The value of the field was always set to 0.

11 Augdp4srvr
trmw32.dll
trmwce.dll
dp4.exe
dbmslibt.dll
dbsmlb95.dll

dp4srvr did not behave correctly after a system error 87. Any operation using that database returned system error 87, including an attempt to close the database. This meant that the database could not be recovered from a backup until the DP4 service was stopped and restarted.

Calls to the DP4 terminal manager no longer returned the correct exit code in the event of a system or fail error internal to the terminal manager. These calls should return error code 3 or 4. Instead error code 2 was being returned. This bug has been present since 4.620

dp4.exe did not exit cleanly after a DP4 IPC error, nor recover cleanly if a system error 87 was reported on a database, nor behave correctly on a second or subsequent system or fail error of any type. This bug has been present since 4.620.

dbmslibt.dll is more or less identical to the file issued on 1 Aug, but has now also been issued for Windows CE. The Windows file has been re-released because the 1 Aug file had an incorrect internal version number.

05 Augreorgdb.exe

The change made on 2nd August caused a corruption in the index for exactly one record which does not become apparent until more records are added to the database.

05 Augsqllibt.dll

Column functions did not respect the precision of N fields.

The CHAR function did not convert dates correctly : the last two digits of the year did not appear.

2 Augreorgdb.exe

The change made on 14th July could cause option 1 of REORGDB to fail with a spurious illegal length message.

1 Augdbrevert.exe

The messages produced have been improved. The utility has also been updated to support reversion to 4.622 from 4.623.

1 Augdp4srvr.w32
dbmsl*.dll

The changes of 14th July caused a spurious systemerror 87 when MAKEDB was used to change a database. This fix has not yet been applied to the Windows CE DP4 software.

19 JulEx Beta files

Various enhancements from previous 4.623 beta have now been incorporated into 4.622 as follows:

  • DFPRINT supports printing of multiple copies
  • Global variable QPR_DEVICE added to QAB to enable programmatic selection of a printer. Must be set prior to a "device select" procedure that specified DEFAULT_PRINTER as the chosen print device.
  • name and location of userdata.sys file can now be specified in dp4.ini on a per-program basis. Also hide_empty_buttons setting.

The documentation will be updated shortly to reflect the fact that these changes are now in 4.622

19 Juldbrecov.exe
System database
dbcheck.exe
dynaback.exe
  • If DBRECOV invoked the quick restore option because rollback recovery failed, then it failed to restore the PTR and DCI file from a two file index database. This would cause the database to be corrupted, possibly very seriously. Less seriously it also did not attempt to recover the database if these two files had been deleted but the index was marked as OK. This fix has necessitated a system database changes for additional error messages.
  • The version of dbcheck supporting the -full option has now been added to the 4.622 download, and this option is now used by dynaback -copy
14 Julreorgdb.exe
dbmslibt.dll

Fixes for two bugs related to data independence:

  • REORGDB crashed or hung when indexing tables if a change to the key structure meant that one or more records had to be deleted.
  • dbmslibt.dll returned timestamp information incorrectly when data independence was needed to return data from a table that is compressed. In the database manager this could result in spurious contention errors, or in a contention error not being generated when it should be.
11 Julsqllibt.dll
tcpw.w32

The -server_name command tail did not work in sql.exe. Changes to both tcpw.w32 and sqllibt.dll were needed for it to do so. Both of these changes have also been added to 4.621a

7 Julsqlexe.exe

Fix for GPF that occurred when an error occurred while opening the database or connecting to the server. Also -server_name command tail did not work. The latter bug is in 4.621, but has not been fixed there. The 4.622 file is compatible with 4.621

30 Junmapedit.exe

Fix for GPF that occurred when adding a control to a map for which the frame control used a font that was not set to be the default font for the map. This bug is also in earlier MAPEDIT releases. The fix has been added to the 4.621a set but not the base 4.621 set.

30 Junrecastdb.exe

The structure transfer option could cause a memory corruption which might cause a GPF, but which might cause RECASTDB to terminate without any error messages. This might cause a user to believe the structure transfer had completed successfully when it had not.

28 Jundp4srvr.w32
dp4srvr.wce

The count of users with programs that were updating the database was no longer being maintained correctly. In some circumstances this could cause the log file to be closed when it should not have been. This could cause changes to be lost if a dbrecov was required, and in addition could have a severe impact on performance. This bug did not occur in earlier releases.

27 Juntrmw32.dll
trmwce.dll

Typing ahead into a character field could cause the display of the field to be corrupted, and typed characters to be unexpectedly lost. This bug is also in earlier releases but has not been fixed except in 4.621a.

26 Maytrmw32.dll
trmwce.dll

Did not handle numeric fields with units correctly when printing 4.500 maps.

25 Maytcpmgr

If a network error occurred at a certain point tcpmgr might become less responsive. If only one user were connected then it might become completely unresponsive.

24 Maytcpmgr.wce

The CE version of tcpmgr would sometimes stop processing requests and use up all available CPU if the -nokeepalive option was in use and a remote client disconnected and immediately reconnected.

19 Maynetcopy.exe

This program has been added to the Windows CE set.

19 Maydbmslibt.dll
dbmslb95.dll

The data file checksum could be incorrect after running dbrecov for databases using one of the new database structures introduced in release 4.622. This could happen if a hole that was formed by deleting two or more adjacent records was partially re-used and then rolled back to its original state.

19 Maytrmwce.dll

The trm_run_program() function, (used by run another program" QAB procedures), did not handle program names in quotes correctly. (This bug is also in previous releases but has only been fixed in 4.622)

18 Mayrecastdb.exe

The synchronise facility did not work correctly when a field was updated in the record being transferred. Changes were not committed correctly, so that a record could be marked as being synchronised when it had not been.

13 Maytcpmgr.wce

The CE version of tcpmgr would sometimes stop processing requests and use up all available CPU when more than one client is active.

13 Maytcpw.wce

The CE version of tcpw would sometimes refused to allow programs to connect. This is caused by a bug in the Windows CE version of the connect() API.

21 Aprtcpmgr

tcpmgr no longer reliably shut down in a timely manner if the DP4 service was stopped while there were very many active clients. This bug was introduced in 4.622

tcpmgr might refuse to accept new connections because it believed the maximum number of connections had been reached, when in fact some of the connected sessions were dead but had not been cleaned up because tcpmgr was busy. This bug also meant that more than one session to the same machine could appear in the network manager display.

15 Aprmaped09.dllThis file had been built incorrectly in the rebuilt 4.622 release causing some buttons in the control property dialogs to have blank text.
13 AprAllDue to incorrect MS documentation and an undocumented change in behaviour 4.622 did not work at all on the original release of Windows XP (although it worked fine on Windows XP with SP1 or SP2)
7 Aprtrmw32.dll
mapedit.exe
Enumeration controls would generate map not found type system errors if control's value was intially invalid.
Application window scrollbars were not correct if window was resized while enumeration map displayed.
Resizing enumeration controls using size grippers and mouse was not reliable.
5 AprAllReleases 4.526 and 4.622 are now official DP4 releases. This page has been edited to remove references to bugs that were only introduced in one of the Beta files, or which have also been fixed in 4.621. You can see the full history of the 4.622 beta release in the Archived 4622 Updates Page.Any bugs mentioned on this page that are not documented as fixed on the 4.620/4.621 updates page are not yet fixed in those releases. 4.621 users who do not wish to upgrade to the 4.622 database manager as yet can use 621a.zip to enable "safe" bug fixes and enhacements from 4.622.
31 Marsyslibt.dll
trmw32.dll

Two changes have been made to avoid problems that can occur if the DP4 service is stopped and restarted, but applications that used the previous instance of the DP4 service do not terminate.

  • Applications using trmw32.dll would fail to start if another application had left temporary files open. Now trmw32.dll will use a different temporary file name if it cannot open a temporary file with the desired name.
  • syslibt.dll will not permit applications to connect to a different instance of the DP4 service from the one they were originally connected to. If an application tries to do this it will always get an IPC error.

These changes were issued on 31st March, but not documented until 4th April.

14 Martcpw.w32

If a fail 9 error is returned to tcpw.w32 from a server (indicating that there is problem in IPC between tcpmgr.w32 and dp4srvr.w32 on the server) tcpw.w32 now changes the error to fail error 15.

This change was issued on 14th March, but not documented until 4th April.

31 Marprogdate.exeFiles were spuriously reported corrupt if progdate -read was used and the filename was specified in lower case.
30 Martrmw32.dllPlus and minus keys did not work correctly for checkboxes with the switch yes no flag set.
23 Marsyslibt.dll
syslibce.dll
If a DP4 program was started after the DP4 service began to stop it restarted DP4 service but failed to run itself. In this situation programs will now wait until they can run properly
21 Marerrlog.w32
srvw32.exe
srvw32.exe has a new option in its popup menu: "View Log File" which allows you to display the contents of the DP4 error log window. You can now always click on the close button of the errlog program. Instead of stopping the error log this merely hides the window, (unless DP4 has already terminated). In addition you can use the Delete key to clear the window, Ctrl+C/Ctrl+X to copy/cut the visible part of the window to the clipboard, and Ctrl+A to copy the entire window to the clipboard.
14 MarVarious Preliminary support has been added for Enumeration controls. These are similar to Windows combo boxes. Internally they are implemented similarly to the inpm_e() function. However there is no special API for using the control - thus a program does not need to be aware of whether an integer numeric input is handled by entering the number directly, via a set of radio buttons, or via an enumeration control.
11 Marfixdb23.exeNew options added to allow easy standardisation of database names to various standard case conventions (PascalCase, camelCase, lower_case,UPPER_CASE).
11 Martrmw32.dllOutput created with trm_so() was not sized properly for certain choices of default font. (This bug is also in previous DP4 releases).
3 Marauxdistr.w32If an application ignored a system error encoutered when a database was accessed remotely for the first time it would subsequently get spurious system error 10 messages.
3 Martrmwce.dll
trmw32.dll
%wait option in QAB run another program now works when %document option also specified. Previously these two options were not compatible. Further changes to detach=1 option on Windows CE. DP4 did not work on Windows XP unless SP2 was applied.
25 Febtrmwce.dllDue to a difference in behaviour from regular Windows, lines in a QAB Windows that are edited in place sometimes disappeared once editing was complete.
24 Febprogdate.exe
system db
Now reports platform information for Win32 executables. This option works with any Win32 executable, not just DP4 programs, so may be useful in determining which set of DP4 programs is appropriate to a particular Windows CE platform.
24 Febtrmwce.dllSupport for detach=1 dp4.ini option added
15 Febrecastdb.exe-copydb command tail added. This command tail causes recastdb to do a structure transfer from the from database to the to database. The transfer is purely a dictionary transfer - no maps, QAB or Report Writer programs etc. are transferred. In addition there is no warning if REORGDB will be required afterwards. This new option is intended to simplify the upgrade process for systems using the "split database" facility. Typically when upgrading you issue a new "program" database, and need to apply the structure of this database to the existing "data" database.
15 Febqabutil.exe
dp4clibt.dll
Now hides index index only tables when selecting possible table for search for database fields.
dp4clibt.dll implements a new flag: 65536 (to be named PK_RESET_JUMP) to force jump FALSE on return from pick_record() and pick_list().
10 Febprogrund.exe
ntqabd.lib
The D option in the debugger now displays database tables sorted alphabetically.
8 FebAll4.622 supports Windows XP themes. The documentation updates are not yet complete, but see a4000022 for preliminary information.
27 Jandp4srvr.w32

dp4srvr.w32 now handles any exceptions (GPFs) it generates. If an exception arises dp4srvr.w32 will terminate and broadcase a message to shut down the DP4 service and applications. If you want the Default Windows handling of exceptions (to produce a Dr Watson log for example), you can disable the new exception handler by putting catch_exceptions=0 in the [dp4srvr] section of dp4.ini.

This change has been made to address the issue discussed in a4000028 (Dr Watson can cause 4.62x DP4 to hang).

26 Janmapedit.exe
usrlibt.dll
tcpmgr.w32
cpp source
DP4 behaves better if shut down when programs still running. See See A4000031 for details.
25 Janmapedit.exe
trmw32.dll
progmake.exe
Support added for new types of image file. MapEdit now displays textured bitmaps correctly. See E4000049 for details.
20 Jantrmwce.dllNew DP4.INI setting no_auto_close is now available for individual DP4 applications.
19 JanN/ASince 19 Nov DP4 Terminal manager has had a new setting no_scroll_bars to control whether scroll bars appear.
18 Jan mapedit.exe
maped09.dll

There are several new enhancements to MAPEDIT which make it easier to use:

  • When you save a map you will be warned if you have used the same mnemonic on two different controls
  • An asterisk is placed at the end of the document title for any maps you are editing that have unsaved changes.
  • There are several new accelerators that allow you to bypass the menu for common commands:
    • Ctrl+B to open a database
    • Ctrl+M to open a mapset
    • Ctrl+S to save the map being edited
    • Ctrl+A to open the save as dialog
    • Ctrl+E to save all changed maps

There is also a minor bug fix: If a map contained two controls with the same field number and in the same place and the same size, MAPEDIT would previously swap the order of the controls within the map each time you edited it. This could cause problems when posting translator format map files.

17 Jan errlog.wce
srvwce.exe

Added new DP4.INI setting no_auto_close to prevent Windows CE.NET from shutting down DP4 whenever it feels like it.

13 Jan qabutil.exe
system database

The find fields in procedures facility now displays the table name for database fields if more than one table may be matched.

13 Jan All CE files

A new CE set is available, built with the "ArmV4" processor option. This set of programs is designed for Intel XScale devices configured as ARM type devices running CE.NET 4.2 or later.

The new CE programs fix a bug in TRMWCE.DLL. Previously the %document option supported by QAB and DP4 menu programs did not work on Windows CE.

5 Jan *.sql

The .SQL files used by SQLMAKE for customising datatypes and names changes are now included in the installation of the ODBC Gateway. An alternative version of dtypes.sql mssqltyp.sql is supplied which may be more useful than the default dtypes.sql if you are creating a Microsoft SQL Server database.

5 Jan trmw32.dll
dp4clibt.dll
C dev files

New function map_get_metrics() added to C library. Finds adjusted height of map after rows and columns added for border and title and, if MPM_PRINT flag specified, after adjusting height of rows for specified print x and y factor.

5 Jan progmake.exe
progrund.exe
System database

progrund.exe did not correctly display rolenames for tables and fields
progmake.exe now displays (part 1 of n) for entry conditions in program flow diagram.

6 Dec Various

An enhancement to printing is included in 4.622 which gives better results when printing maps containing boxed (and hence widely vertically spaced) edit controls to legacy print devices. See e4000048 for details, but do not use the download there.

16 Nov sqlexe.exe

SQLEXE will now create XML format output if you supply -xml command tail. The output is created with a .XSLT stylesheet that formats the output as a quite elegant HTML table. (See Example)

It should be noted that this style of output only works in some browsers (Internet Explorer 6, and current Mozilla/Firefox are known to work, Opera 7 and Internet Explorer 5.5 are known not to work). Normally you would convert the XML to HTML on the server. (This is quite easy, at least on machines with Internet Explorer 6 installed.)

By editing the SQLEXE.XSL file and the SITE.CSS file you can modify the appearance of the output.

See the updated documentation for UNLOAD for ways to control the element names used in the XML output. (This documentation will shortly be moved to a more sensible place)

12 Nov unload.exe

UNLOAD can now create XML files. See the updated UNLOAD entry in the DP4 Quick Reference.

4 Nov progmake.exe

After using either of the "Compiled Changed Programs" options from within PROGMAKE, subsequent changes would not necessarily flag the programs as needing recompilation again. Note that a similar bug still remains - if you compile just the program being edited then this program will not necessarily be marked again as needing recompilation if you continue to edit the program.

22 Oct progcomp.exe
System database

Summary information for compilation changed: Compiled Ok count now only includes programs that compiled with no warnings or errors. Programs that compiled with warnings or errors are shown separately next to "Compiled with warnings".

11 Oct bd

Network table structure in dictionary did not match real use of table. This bug is long-standing but of little importance. The fixnet program (supplied with all DP4 releases) can be used to correct this.

21 Oct dp4srvr.w32

New Enhancement. Change to behaviour of EQUAL search incorporated into release 4.622.

18-19 Oct Various

New Enhancement. QAB User Interface Enhancements incorporated into release 4.622.