4.620 Updates


Date File Description

2004

14 Dec dfsetup.exe

Only allowed single digit in language field. This bug was introduced in the XPSP2 bug fix of 19 August, and appears to have been caused by compilation of a source module being used for internal testing rather than the corect release source for the program.

9 Dec dp4srvr.w32

On Oct 1st a supposedly minor change was made to the fix issued on Sep 22nd. This change causes dynaback -copy to make dp4srvr.w32 GPF if the RLB file is open.

6 Dec trmw32.dll

Entering a number below the lowest permitted value caused a floating point stack underflow due to a bug in the Microsoft C compiler. Unfortunately this exception is normally masked in Microsoft C programs, so did not show up. It is believed that this bug is generally harmles. However, if a DP4 program is linked with another library, which causes this exception to be unmasked, then a GPF will occur at in unrelated piece of code.

This bug is believed to be in all previous DP4 releases.

17 Nov sqllibt.dll

[sql.xlat2 dbname] entries in the DP4 Configuration file were no longer being processed correctly. This bug was introduced in 4.619. The fixed file is the 4.621 sqllibt.dll, which is compatible with 4.620.

22 Sep dp4srvr.w32

After a media error or other problem writing an RLB file dp4srvr.w32 should stop writing to any database files, because as long as no further problems develop in parts of the rollback file already written the database can be recovered. However, in some circumstances DP4 could continue to write to the database after an error writing the rollback. Under these circumstances dbrecov fails to recover the database properly if it is run using this rollback file.

19 Aug Various

Various patches are required to enable DP4 4.620 to run on computers with Windows XP SP2 installed. Please refer to article A4000029.htm in the DP4 Knowledge base for full details. The full download for DP4 4.620 has also had this patch applied.

26 Jul dp4srvr.w32

DP4 Enterprise allows you to select index node size to use for databases. Testing has revealed that there is a problem with using node sizes 1 (1024 bytes) and 2 (2048 bytes). Only node sizes 0 and 3 work correctly in 4.620, as otherwise dp4srvr.w32 can hang in certain circumstances when accessing the last page of the index file. This problem has now been fixed in 4.621, but has not been fixed in 4.620.

5 Jul reorgdb

The -SORT and -ALTSORT options have not worked as intended since at least release 4.616. The effect of these two options was unintentionally interchanged, and in addition latter parts of the data file were sorted very little if at all. Also in some circumstances memory could be corrupted causing a GPF.

4 Jun dp4srvr.w32
(built 25 May)

Fix in database manager for a bug in MAKEDB which could potentially cause serious problems when you issue a new version of a database. The bug arises if you use the "Version/Security Dialog" to set database version information, and answer yes to the question about resetting the session number. If you select this option MAKEDB updates the database header in a way that causes a database version marker to be corrupted (it is reset to 0)

This can have various disastrous consequences:

  • If the database is sent to a customer using an old(er) release of DP4 their DP4 software may succeed in opening a database which it should not be able to because of an incompatible structure.
  • If the database has been built with either enhanced index compression or a large node size the index is be corrupted. With just enhanced index compression the corruption is subtle and may go undetected for a while, or may not even arise (depending on the data and table structure). With large node size the database is completely dead, and will instantly fail dbcheck and be unopenable, though it can easily be repaired by resetting the version marker (byte 39 should be 4 if large index node size is selected).
13 Jan reorgdb.exe The 4.620 REORGDB contained a bug that could, under very rare circumstances, cause a memory corruption with unpredictable effects. It is possible, though unconfirmed, that this could cause a datatabase corruption. In the only database with which the bug could be reproduced it caused REORGDB to GPF. This bug is also present in Windows CE versions of reorgdb, but the fix has only been made to 4.621 for Windows CE.
5 Jan run.exe ARM version had never been updated with fix from Jan 21st last year.

2003

18 Dec mapmake.exe Copying over an existing map from another database generated System Error 131 (This bug is also in older releases)
17 Decsyslibnt.dllStill did not work 100% correctly on non English versions of Windows NT - would leave potential security hole that would not be left on English Windows NT.
16 Dec Not updated
(auxdistr.w32)
When auxdistr.w32 is loaded 4.620 sysdb program generated fail 11 error. A similar problem would occur running any program using a "file-only" type connection. This problem is not fixed in 4.620, use the 4.621 release if you require a fix.. Suggested work-around to avoid need for updating to 4.621: do not run sysdb when a multiple resilience configuration is loaded.
16 Dec mapmake.exe Editing a map immediately after copying it from another map edited the copied map rather than the copy. (This bug is also in older releases)
4 Dec Various Updated/Added various files needed for recompiling ADCs and DP4DBASE
4 Dec mapedit.exe did not behave correctly if invalid database specified on command line.
4 Dec dfprint.exe 4.621 release of bugfix k4000050 (missing or duplicated pages in print-out)
18 Nov dp4srvr.w32
reorgdb.exe
dbrecov.exe
4.620 version of bug fix K4000049
14 Nov trmw32.dll
Reissued to fix another instance of this bug
Pressing VCR buttons that caused the containing map to be cleared could stop DP4 applications responding if a Windows Dialog was displayed soon afterwards.
14 Nov syslibt.dll
Reissued with fix for performance problem that causes programs to sleep unnecessarily
Running more than 27 DP4 applications simultaneously on the same machine could cause a GPF in syslibt.dll. This is a bug present since 4.619
13 Novmapedit.exeNew VCRs were being assigned non zero field numbers that could not be changed. This fixed version assigns field number 0 to all VCRs.
24 Octmaped09.dllSizes of various dialogs and controls changed to improve usability
24 Octodbclibt.dllConfiguration dialog was not usable without a mouse
15 Octmapedit.exeErroneously displayed single framed controls in 3D maps using 3D colours.
04 Octmapedit.exeDid not use makedb format flags as default for validated fields
Indicate Negative Radio buttons did not work
04 Octprogdate.exeprogdate did not display checksums correctly if default number display format used thousands separator (reissued)
29 Sepkentcurs.exe-filedate option on kentcurs was incorrectly documented as being for MS-DOS only in -help message.
29 Sep*.rwlMissing files used for posting reserved words to databases added to install
23 Sepsyslibnt.dll4.620 DP4 did not work at all on non English versions of Windows NT.
23 Sepnodebugt.dll
dp4crypt.dll
These files did not support version Tab in Windows Explorer. Also affects DP4CLIBT.DLL, but this has only been fixed in 4.621 Beta.
22 Sepmapedit.exeControls using "default font" sometimes did not keep properties when map was saved, especially if they were pasted from another map with a different default font.
11 Sepauxdebug.w32Did not report commit success or failure correctly any more. This is a 4.620 Win32 only bug
6 Augmapedit.exeDid not treat validated multi-occurs fields correctly
10 Juldp4srvr.w32The -distributed -nofail local resilience option no longer posted records to the local database reliably in the event of a network failure. Only transactions secured with checkpoint() rather than commit() were posted to the local database.
26 Aprsyslibnt.dllSecure operation of DP4 was broken because syslibnt.dll adjust process privileges down too low. No longer does this if secure operation is probably in effect.
22 Aprdp4srvr.w32Could hang at random for no obvious reason
17 Aprsyslibt.dllEvent log did not display DP4 errors correctly.
10 AprHelp FilesBrowse sequences did not work on XP/2000. DP4 Documentation is now installable using the DP4 install program - it correctly installs and registers the required ActiveX component for browse sequences.
10 Aprmakedb.exe
system database

makedb -help expanded

08 Aprdp4srvr.w32

4.620 version of bugfix k4000048.

08 Aprnumbsys.exe
fixdb22.exe

4.620 version of bugfix k4000047.

24 Marredw.exe

GPFed if no userdata.sys in working directory

24 Mardp4.exe

Endless fail 7 if Alt+F4 pressed when running with tcpw.

24 Marrecastdb.exe

-synchronise option accesses remote database even less

12 Marmapedit.exe
maped09.dll

Now supports Script combo box in Font selection dialog.

11 Marinstall.exe

Attempts to detect if DP4 already running and stop it if it is. Error messages contain Windows error message if relevant. Now overwrites read only destination files.

11 Martrmw32.dll
System database
fixdb23.exe
mapmake.exe

Boxes did not join up properly at bottom right hand corner

11 Mardp4ed.exe
tablepln.exe
view.exe

Did not work properly with files with > 30000 lines. (Also pre 4.620)

11 Martcpmgr.w32

Permission denied error on sf_open() (system error 93) should respect VF_RET flag.

10 Marmapedit.exe

GPF to do with switching toolbox on fixed. Toolbox did not behave logically when switching between maps.

7 Marauxdistr.w32

When loaded dynaback -copy did not work.

6 Martrmw32.dll

DP4 did not work on Windows XP Tablet PC edition. DP4 programs regularly GPFed in TRMW32.DLL because of a bug in handling the WM_GETTEXTLENGTH message. This bug is also in earlier DP4 releases. Also programs were not activated properly when starting because of an undocumented Microsoft change in the handling of WS_POPUP windows.

6 Mardp4srvr.w32

dbrecov could not automatically restore last backup when dynaback -copy found problems.

03 Marprogmake.exe

Enhancement of 17th Feb could corrupt whatever was currently being edited

28 Febprogmake.exe

Program flow diagram enhanced to show option numbers under menus

28 Febview.exe

Could GPF when mouse moved over menu. (This bug is also in pre 4.620 version).

28 Febdp4clibt.dll

Programs that recovered from sys_error(129) could get spurious map field not found errors afterwards. (This bug is also in pre 4.620 programs).

26 Febunload.exe
rounder.exe

Now use bf_() functions so run faster, especially on network client

26 Febsyslibt.dll

Routines that convert from floating point to BCD/String and vice versa re-written. Report and Import programs that deal with a lot of floating point numbers will run much faster.

21 Febreorgdb.exe
makedb.exe

Old undocumented "hashed index" feature made to work properly.Please do not use this yet - I am investigating whether it is ever beneficial.
makedb.exe also had an instance of the -windows jump bug fixed.

21 Febdp4clibt.dll

19 Feb version had diagnostics that should not have been there.

19 Febdp4clibt.dll

obscure minor bug in map_bar_choose() fixed - caused 4.5xx programs to display some maps in different Z order from previous 4.5xx releases.

18 Febsystem database

error message 3 of dbcheck was misleading

18 Febtrmw32o.dll

programs run using use600=0 beeped in action bar menus

18 Febprogmake.exe
system database

display of formula on field editing screen took up too much space after change of 28th Jan

18 Febreorgdb.exe

No longer forces backup unless the reorg was forced by structure changes. Sets the date last checked date, since dbcheck is certain to pass if reorg succeeds

17 Febsrvw32.exe

icon_visible=0 settings now works with srvw32 -load as well as -start

17 Febprogmake.exe
system database

Added option in formula editing menu to show where currently selected formula is used
Another -windows bug fixed

11 Febprogmake.exe

Escape from find in program flow did not behave correctly.

10 Febprogmake.exe
menuedit.exe
mapedit.exe
trmw32.dll

Integration between Mapedit and Progmake improved - Mapedit now sets map type appropriately for new maps and invokes menu editor for creating new action bar menu procedures. (Possibly coming soon is using the right set of database fields for creating maps like 4.5xx)
Mapedit GPFed if database needed could not be opened.
Centred picture buttons did not display correctly in mapedit
Decimal point could not be set. Action bars with non contiguous field nrs were not saved correctly (also in pre 4.620)

10 Febdp4db*.*

GPFed if db_open() failed. Error handling has been moved from CDP4Database to CDP4Connection to fix this.

04 Febqabutil.exe
system database

New "Missing maps" report (under Analysis) allows you to detect maps used by QAB programs that are (or may be) missing from the database. N.B. I recommend running weed to get rid of unused formulas before using this option. Further documentation is in preparation.
Also the Find Maps and Weed options are no longer confused by "ghost" table processing (e.g. where table mode has been changed to setup/already fetched from "normal",or procedure body changed to non database)

31 Janmaped09.dll
mapedit.exe

Format flags for character fields did not work.
Password mode option added.

30 Janunload.exe

-tables option no longer worked. This is because of a change to behaviour of the tail_read() made in 4.620.

30 Janmapedit.exe

Paste or Undo delete of controls with embedded data caused GPF.
Selecting more than one control using shift key technique set changed flag (also in pre 620).
Moving lots of controls did not update status bar.

29 Janmaped09.dll
mapedit.exe

Now supports embedded fields on all controls with captions.
Treatment of % in captions was inconsistent. This is different from pre 4.620 versions, see updated mapedit manual for details.

28 Jantrmwce.dllEnsures SIP button visible when applications activated
28 Jansystem databaseFormula Entry Dialog in PROGMAKE changed to work with SAA/Windows keying conventions
28 Janmenuedit.exeFix for GPF when printing menu
27 Janprogrund.exe
ntqabd.lib
Input redirection is now disabled in debug screen (not yet issued for CE)
27 Janmapedit.exeLanguage was not shown in status properly
Map dialogs could display wrong database if databases dbname and dbnamenn both open. (also in pre 4.620)
Controls at negative positions could not be positioned exactly
24 Jantrmw32.dllBehaviour of mouse has been changed to avoid problems with clicking on a VCR button that causes its containing map to be cleared. This change may cause unwanted changes to behaviour elsewhere. If so the new behaviour will have to be a dp4.ini setting. I suggest using ordinary buttons and not VCR buttons to clear maps. NB the problem fixed is not new to 4.620.
23 Jantrmwce.dllThe title bar font was sometimes wrong.
22 Jansystem databaseThe title bar colours were not correct when running from the DP4 menu program.
21 Janrun.exeThis CE utility GPFed on startup.
21 Janmaped09.dll
mapedit.exe

Add Tabs did not work properly
Validation for non database boolean fields did not work
Some Copy Options/Dialogs were not working properly
Various minor errors in the layout/spelling of some messages/dialogs corrected.

16 Janmaped09.dll
mapedit.exe

Sometimes you could not set format flags for an edit control as checking/unchecking the "Default" checkbox did not work properly.
Validation information for non database fields was lost when the data page was accessed.
Aligning controls did not update positions properly, so moving the aligned controls immediately afterwards or aligning them in some other direction undid the first alignment.
Moving a control in the control list dialog did not set the changed flag.
The open mapset option could give strange results if you did not choose a valid map number. Mapedit now resets the map number when the mapset is selected.
Various minor errors in the layout/spelling of some dialogs corrected.

14 Janmaped09.dll
mapedit.exe

On screen keyboard buttons were corrupted when maps were saved
Shared Controls did not work.
Menus did not work.

13 Jantrmw32.dll
mapedit.exe

Buttons with bitmaps were displayed with wrong size.
Mapedit was too restrictive on moving a control that was partially outside the map.
Some obscure configuration options were not read correctly.

06 Janusrlibt.dll
syslibce.dll

Pop up Windows etc could hang using 100% CPU. Can happen in call to dp4_bf_reset() when dp4_bf_open() buffer size exceeds 32K

2002

18 Decmapedit
maped09.dll

Move option in control list did not work. Size and position reporting was not consistent (and is now slightly different from before). VCRs could not be sized explicitly.

10 Dectrmw32.dll
trmwce.dll

Redisplaying certain attached maps or QAB word strings would cause a GPF

10 Decdfsetup

Editing the user preferences caused the palette information to be set back to the defaults. This stopped the userdata.sys file working with Windows CE

10 Dectrmw32.dll
trmwce.dll

Redisplaying certain attached maps or QAB word strings would cause a GPF

9 Declibmake.exe

C++ code generated can no longer use same name as field for parameters to Get/Set methods.

6 DecAll

sys_error() now uses dp4.ini messages like sys_fail().
trmwce.dll would hang displaying certain help messages
libmake has new #nodp4class toggle and emits pragma(pack) lines. Most issued header files updated similarly.
mapedit did not open database as intended. tsrun was badly behaved if a load error or network error occurred
Error logging on CE did not work properly (and I am still not sure it is 100%)
trmw32.dll and trmwce.dll have facility to limit programs to one instance: see run_once in updated DFIni.chm
There are changes to how Windows CE creates its main window. This is intended to simplify correct positioning. Scrollbars on windows that are too big now work properly.
Error messages for network errors now include Windows error message instead of just winsock error code. DP4 programs produce error message if they fail on startup.

19 Novusrlibt.dll
syslibce.dll

Error handling would not work properly with log to removable media. Return value of dp4_db_set_flag() was incorrect.

19 NovuserdataLatest version crashed after Windows font choose dialog for type F
18 NovAll

Beta 4 released - programs have new security features and error handling has changed. Please note that there are some new DLLs (on PCs), so you cannot just replace existing files.

Several of the new PC executables (dfsetup.exe,dp4srvr.w32,kentcurs.exe) contain anti-debug code designed to prevent hacking,tracing or other nefarious activity. It is quite possible that this code may cause horrible problems to arise on some obscure version of Windows with some anti-virus software (the anti-debug code has several virus like attributes - it is self modifying ,contains illegal instructions, and deliberately generates hardware exceptions), so please let me know ASAP if you encounter any problems.

The main change in this beta is that there is support for strongly encrypting dp4.ini variables and controlling exactly what DP4 executables are permitted to run. The documentation describing the new facilities is not yet available.

Previously the new MAPEDIT did not handle system errors correctly (it silently ignored them). Also the DP4 service sometimes failed to start on Windows NT because of a bug in the Windows API GetSecurityInfo().