<% '------------------------------------------------------------------------------- 'File : dBase_Cust_Ser_Tech_Support.asp 'Author : Surya Kumar 'Task : Cust_Ser_Tech_Support Page for dbase 'Version : 1.0.0.pk 10.12.2004 Base version 'Copyright : Ebase Interactive Inc., NY, USA '------------------------------------------------------------------------------- %> Welcome to dbase

dBASE Plus 2.70.2
Features and Fixes
Aug 12, 2011


_app Object


Improved functioning of _app.allowYieldOnMsg so that when set to True, dBASE Plus will distinguish between a WM_CLOSE sent to a form or a WM_CLOSE sent to the _app.frameWin.
If sent to _app.frameWin, dBASE Plus will initiate a WM_QUIT process.
If sent to any other window, the window will be closed.
In addition, added ability to process non-client area messages for non-client area paints, mouse moves, clicks, activation's etc. on a window's border area.


Added ability to use Mouse Wheel to scroll Variables window and Watch window in the dBASE Plus Debugger.




Memo and OLE Fields


Fixed regression that could cause errors when accessing memo and blob fields by ensuring that structures used in dBASE Memo and OLE Fields and Paradox OLE fields are configured identically to versions of dBASE prior to 2.70.




Fixed regression in Navigator where double clicking on a filename (to open or run the file) sometimes causes dBASE to become lock up or wait for another mouse click.




Fixed regression in grid property, defaultMemoEditor, so it can be changed to 1 instead of the default 0 (zero).
QAID:6667 Fixed regression in Grid.lockedColumns property so it allows a new value to be assigned to it.

This change also fixes Browse.lockedColumns which had the same problem.


QAID:None Fixed combobox.maxLength property so its value can be set successfully


Fixed problem where combobox onChange() event fired before datalink was updated for combobox.
This caused the lookupRowset or lookupSQL field to be out of step with the current value of the combobox within an onChange event handler.
With this fix, the lookupRowset or lookupSQL assigned to the datalinked field will match the current combobox value within the onChange event.



QAID:None Fixed regression in rowset.masterChild property so its value can be changed
QAID:6690 Fixed regression in rowset.findkey() and rowset.findkeynearest() that caused a Memory Access Violation when passing multiple search strings to search a table that uses a compound index key.

Fixed rowset.goto() so that it sets rowset.indexname back to index stored in bookmark if rowset.indexname was different from index in bookmark.

Note that dBASE was already doing this internally by setting the active index on the rowset's BDE cursor to the bookmark's active index.

QAID:None Fixed behaviour of rowset.applyLocate() and other rowset filters which sometimes did not work due to a regression in the layout of internal data structures used to setup the filter.




Fixed session.deleteAlias() method so that it can successfully delete a User BDE Alias from the default BDE session.
Previously, it was only able to delete a User BDE Alias from a non-default BDE session.




Fixed Memory Access Violation that occurred when issuing:
CLOSE DATABASE <yourdatabase>
command for two times after opening the database via the Navigator
via the following sequence:

In Navigator,
- Click on Tables tab

In Command Window
- close database DBASESAMPLES

In Navigator,
- Click on Tables tab

In Command Window
- close database DBASESAMPLES

Memory Access Violation or internal error occurs


Form and Subform


Fixed regression that caused a Memory Access Violation when calling form.release() from form's onClose() event.
QAID:6684 Fixed regression that caused a Memory Access Violation when a modal form calls form.release() in its onClose() event.
QAID:None Fixed Form and Subform classes so they do not respond to mouse wheel events when their scrollbar property is set to 0 - off or 3 - disabled.
QAID:6664 Fixed regression where an extra vertical or horizontal scrollbar could display inside a form or subform - usually after resizing the form or subform to a smaller height or width. This was especially prevalent in the subform's used in dQuery for the design surface, palette area, and data area.
QAID:6674 When entryfield was first control to get focus at form open, its onLostFocus event was firing during the open.

This fix also fixes duplicate firing and incorrect firing sequence for both OnGotFocus() and OnLostFocus() for forms and form controls when clicking between forms, between controls on a form, or between forms and other tool windows in dBASE Plus IDE.


Class String


Fixed regression that caused string object's toUpperCase() method to skip over uppercasing characters containing umlauts.

Also fixed similar issue with toLowerCase() method.


BDE Configuration


Improved compatibility of dBASE Plus 2.70.x with earlier releases of dBASE Plus by leaving the BDE Session object's CFGMODE2 setting at its default value of cfgNone except when necessary.

Doing this fixes the reported "Cannot find engine configuration file" error using the test case in this QAID.




Fixed Memory Access Violation that occurred when choosing a type of DATE, TIME, or DATETIME in the Inspector for an Entryfield's Value property when designing a Form in the Form Designer


SQL Query Designer


Implemented code to detect whether or not dBASE Plus is running with administrator rights (on Vista, Windows 7 or newer version of Windows), i.e. is running elevated.
If yes, the SQL Query Designer will be allowed to run. If not, a message will display instructing user to run as administrator in order to run the SQL Query Designer.


Image Paths


Fixed issue where opening a form in form designer results in image paths being automatically changed to include full path to design time image file or source alias to design time image file.

Instead, dBASE will attempt to determine source alias for a selected image file only when selecting file via the image selection tool.

Otherwise, dBASE will now leave property values as entered in source code.

The following properties have been fixed:

Pushbutton.upbitmap, downbitmap, focusbitmap, disabledbitmap


Entryfield and Spinbox


Fixed alignment of spinbox values when spinbox picture contains 2 commas, function property contains 'J' to right align value, and spinbox value only contains 1 comma.

Values with no commas or 2 commas were correctly right aligned.
Values with only 1 comma left some space along the right end of the control.

This fix should also fix a similar issue with entryfield controls.


Fixed lockup that occurred when using SET CURRENCY TO " " when a numeric field is datalinked to a spinbox control.




Modified substr() function so it does not trigger an exception for an out of range start position if an ON ERROR handler is in effect.
If an ON ERROR handler is not in effect, and SET TALK is ON, a warning will be sent to the output pane of the Command Window.


ActiveX Control

QAID:6695 Fixed ability of dBASE Plus to correctly pass a license string to an ActiveX control both at design time and at runtime.

This should enable dBASE to create and activate an ActiveX control without triggering an error or a dialog requesting a valid license string.


Improved code used to instantiate a preview of an ActiveX control in the dialog used to select an ActiveX control within the Form Designer.
Ensured control's license string is allocated on system heap before passing its pointer to routines that instantiate the preview control.


Editor Object

QAID:4301 Fixed Editor control's key() event so it can once again be used to modify characters typed into an Editor object.


Fixed nPosition parameter passed to key() event for editor object.

Previously, it sometimes returned the column number within the current line where the entered character was to be inserted.
Other times it would contain an invalid value.

With this fix, nPosition will contain the position within the text string accessed via the editor's value property.

The position value takes into account the end of line characters as well (a carriage return and linefeed) at the end of every paragraph.


Menu Object


Fixed Memory Access Violation when clicking on menu option for a menu attached to _app.frameWin when checking whether or not to fire form's onSelection() event.




Fixed cause of "False Parameter" error that occurred when loading seeker.cc from the formcontrols folder.


BUILD Command


Fixed path used by BUILD command when creating temporary file: VDBEXE.RES so that file is created in the same folder as the .exe being built.

This prevents triggering the error: Access Denied VDBEXE.RES which could occur if the current dBASE directory is set to a folder where the current user does not have create or write access.


QUIT Command


Fixed regression in QUIT command that prevented it from working when a modal form is open.




Fixed synchronized scrolling bug in debugger's Variables window that occurred when dragging vertical scrollbar with mouse - the values pane would scroll but the variables pane would not move.