<% '------------------------------------------------------------------------------- '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.60 (b1899)
Features and Fixes
August 1, 2005

New Features and Enhancements

Windows XP Theme Support

  • This version of dBASE PLUS is the first to support Windows XP Themes and Visual Styles. Upon opening dBASE, you should immediately notice its improved, more modern-looking interface: notebooks have a subtle gradient background, buttons are rounded instead of squared and colors generally appear more coordinated throughout the entire environment.

    Your applications can also employ Windows XP Themes, lending them a more up-to-date and consistent appearance when running under Windows XP. This is accomplished through the use of a manifest file, a special XML-based file that enables System Themes in Windows XP.

    For all dBASE PLUS applications, the name of this file is PlusRun.exe.manifest. It must reside in the same folder as the dBASE runtime executable (PlusRun.exe)

    To disable the XP look in dBASE PLUS, simply remove or rename the “Plus.exe.manifest” file in Plus/Bin folder. To disable the XP look in applications you created in dBASE PLUS, remove the “PlusRun.exe.manifest” file from the runtime folder.

    The dBASE PLUS Project Explorer can be used to deploy the Manifest file for you by checking the “Generate and include Windows XP manifest file” checkbox on the Inno | Files tab.

    We strongly recommend that you use Windows System Themes. XP System Themes give your users enhanced control over the look-and-feel of your application and show your programs in their best light when running in Windows XP.

    The System Themes feature is ignored under earlier versions of Windows.


  • QAID: 5389 – Updated to use Windows XP Visual Styles in built-in tools and dialogs when running on Windows XP

Form Controls

  • QAID: 4311 - Form controls have been upgraded to auto-detect if Windows XP Visual Styles are being used and to adjust accordingly
  • QAID: 2235 - Ability to automatically match the background of form components to the XP Style background of Notebook controls if their colorNormal settings match


  • QAID: 5196 - Ability to override automatic behaviour of PushButton to use Classic or XP style via new systemTheme property
  • QAID: 630 - Ability to specify how to align an image and text on a PushButton via new bitmapAlignment property
  • QAID: 630 - Ability to place both text and an image on an XP style PushButton

Mouse Wheel Support

  • QAID: 357 - Added mouseWheel support in: Source Editor, Grid, Listbox, Browse, Editor, ReportViewer, Navigator and ComboBox.


  • QAID: 5218 - Ability to differentiate between selected and unselected rows in beforeCellPaint() and onCellPaint() events via new bSelectedRow parameter
  • QAID: 5304 - Ability to set color of lines between rows and columns via new colorRowLines and colorColumnLines properties
  • QAID: 5350 – Ability to determine and set the current leftmost grid column via the new firstColumn property
  • QAID: 1498 - Ability to set the color of the checkmark in a columnCheckbox control
  • QAID: 866 - Grid’s columnCheckbox control now displays the checkbox in all rows of the grid, not just the current row


  • QAID: 2235 - Added transparent property to Rectangle


  • QAID: 5105 - Added additional built-in mousepointer settings to include the vertical and horizontal splitter mousepointers.
  • QAID: 5106 - Updated mousePointer option 5 - Size to use the standard Windows crossed arrows (IDC_SIZEALL) mouse cursor


  • QAID: 5328 - Ability to send default values to GetFont() function. This allows you to initialize the GetFont dialog with current settings


  • QAID: 5089 - Ability to detect when a report has reached its last page in the ReportViewer class via the new onLastPage() event.

Error Dialog

  • QAID: 5084 - Enhanced error dialog to support display of long error messages.

Exception Handling

  • QAID: 5195 – Enabled ability to catch Memory Access Violations in dBL code using try...catch blocks
  • QAID: 5478 - Added ability to turn off enhanced Memory Access Violation trapping for applications where this caused compatibility problems

Reports / Report Designer

  • QAID:4963 - The default value for band heights has been set back to zero. However, when creating a new report in the Report Designer, the band heights for the default groups will be set large enough to make the groups visible to aid in dragging and dropping components onto the bands.
  • QAID:4907 - Default value of report.autoSort has been set back to true for backward compatibility. However, when creating a new report in the Report Designer, autoSort will be initially set to False as this is the most common setting for it


  • QAID: 1226 - Added vScrollBar property to turn on or off the vertical scrollbar


  • QAID: 4997 - Added property maxLength to combobox class and enabled automatic horizontal scrolling of data entry portion of combobox. By default maxLength is set to 25 characters. If the combobox is datalinked to a field, then the width of the field is used to set maxLength. Also, programmer can explicitly set maxLength as needed.

Enhanced Version Info in core product files

  • QAID: 4865 - Added the build number, date and optional comments to the version information viewable via Windows Explorer, Properties option.
  • QAID: 5152 - Made version information viewable directly in Windows Explorer’s Details View via the “View Menu/Choose Details…” option

Project Explorer

  • QAID: 5255 - Added ability to create and deploy a Windows XP manifest file with an application
  • QAID: 5114 - Added ability to choose which runtime engine installer files to include with a deployed application

dBASE PLUS Installer

  • QAID: 1696 - Now sets BDE maxFileHandles to 255 on new installs or if it is less than 255 at install time
  • QAID: 4988 - Now sets the default dBASE table level to level 7 only if the BDE is not already installed.

Apache Configuration Wizard

  • QAID: 5028 - Upgraded the Apache Configuration Wizard to work with the newest version of the Apache Web Server v2.x

dQuery (Developer Edition)

  • QAID: 5406 - Ability to customize the SQL statement used when adding a table to the design surface
  • QAID: 5330 - Multi-Table view now automatically scrolls to show new column when grid is already filled up
  • QAID: 5433, 5483 - Numerous optimizations have been implemented throughout dQuery to speed up access to table metadata
  • QAID: 5387 – Improved speed of Imports and Exports by optimizing transaction processing in Import and Export Wizards
  • New Report Format dialog - allows you to customize an Automatic Report without having to use the Report Designer.
  • Improved handling of table indexes when connecting via ODBC. An ODBC index dialog now displays if a primary or unique index cannot be identified, allowing the user to specify which index to use.
  • dQuery has a new and improved EasyStart help system
  • The One-Click Windows Application now has an included help file.
  • The treeview Explorers on the toolPanel now resize to fit as you increase the width of the toolPanel
  • New View menu option: Restore Default Tool Panels opens the Tool Panel at the default location and centers the Design Surface and Data Area
  • The dQuery Toolbar now respects .ini settings saved when you exit dQuery.
  • The Database Explorer tree now has a new fly-out dialog to handle databases with long table lists (more than 200 tables)
  • New DataModule Wizard that can be launched from the new EasyStart dialog and allows open, new and open recent.
  • dQuery now has a much more stable and flexible naming system so that tables of all types display the most appropriate part of their name as the name of the Query
  • Improved readability of Wizard button icons.
  • Single Table View, Multi Table View, and Report View buttons have been modified to look like Win XP buttons
  • Updated dQuery's expression builder to automatically adjust the maximum number of characters that can be entered into the Value combobox to match the size of the field selected in the Field combobox.
  • Updated dQuery's Filter Wizard to automatically adjust the maximum number of characters that can be entered into the entry fields for the Fast Indexed Filter.
  • dQuery/Web now has updated graphics and color scheme
  • QAID: 5426 – Added new configuration option to dQuery.ini called “askCreateIndex”. If set to 0, removes the “Create New Index” option from the ODBC index dialog. If set to 1, the “Create New Index” option will be available (this is the default)

Fixes in dBASE PLUS 2.6

Form Components

  • QAID: 5345 – Corrected painting of Line and Shape components when using XP Visual Styles.
  • QAID: 5399 – Corrected display of focus indicator for Tabs, Checkboxes, Radiobuttons and Sliders when using XP Visual Styles.

Bitwise Functions

  • QAID: 5162 – Improved ability to pass correct 32 bit values to external functions. Fixed the bitwise functions (i.e. bitnot(), bitand(), etc.) to return an integer value instead of a floating point for all values within the range of a 32 bit signed integer: +2,147,483,647 to -2,147,483,648. The bitwise functions corresponding to an unsigned 32 bit integer value greater than > +2,147,483,647 will still return a floating point double type value.

Int() Function

  • QAID: 5117 - Fixed "Memory Access Violation" that occurred when calling the INT() function and passing in a very large number.
  • QAID: 5405 - Improved ability to pass correct 32 bit values to external functions. Fixed the INT() function to return an integer type for the full range of long integer values instead of limiting the integer type return values to x in the range of -100,000,000 < x < 100,000,000. If x is outside the valid long integer range, the value returned is a floating point double type. The range of a 32 bit long integer is as follows: +2,147,483,647 = 0x7FFFFFFF thru -2,147,483,648 = 0x80000000

Project Explorer

  • QAID: 5315 - A dialog to save the project file after a build or rebuild has been performed now only appears when the exe was automatically added to the Inno | Files list.
  • QAID: 5111 – Fixed compile time errors that occurred due to opening project from a different folder than it was stored in.
  • QAID: 5112 – Fixed Program Alert that occurred when attempting to save to read-only project file
  • QAID: 5120 – Fixed Main program not found error due to use of a source alias
  • QAID: 5142 – Fixed problem that caused Main Program File combobox to sometimes become blank
  • QAID: 5285 – Updated documentation about the Project Explorer's Inno features
  • QAID: 5390 - Updated the Project Explorer to display correctly when using the Windows XP theme.
  • QAID: 5269 - Relative paths are now preserved when a file is automatically added to the Inno | Files list.
  • QAID: 5316 - If a project file cannot be saved, a more explicit error message is used. Read-only project files are no longer overwritten. If a project is attempting to close and the save is unsuccessful, the form will not close.
  • QAID: 5320 - The Project Explorer no longer causes a Program Alert if a Compile All is performed when one or more forms cannot be compiled.


  • QAID: 5375 - Fixed slow dBASE PLUS combobox behaviour when Microsoft Anti-spyware beta is running


  • QAID: 5099 - Fixed memory leak in ListBox that occurred when calling the selected() method. The ListBox will no longer keep an internal reference to the returned array, and the reference count of the returned array is now 1. Previously the reference count was 3.
  • QAID: 5367, 5385 - Fixed memory leaks in listbox selected() method. Calling listbox.selected when listbox.multiple = false was creating an array but not returning it or destroying it resulting in a memory leak. Fixed an additional case for the listbox that occurred when the listbox.selected() method was called with an index to determine if the indexed item was currently selected. This option only worked for listbox.multiple = true with the listbox.datasource set to an array. Otherwise, the index parameter was ignored and a null string was returned by the method. This can lead to unexpected results for the case where the listbox.datasource is a field object.


  • QAID: 5367, 5385 - Fixed memory leak in grid selected() method that results in an instance of an array being left in memory for cases where the array is not returned by the methods, which occurs when grid.multiSelect is false.
  • QAID: 5100 - Fixed height of grid column's editorControl so that it does not paint 1 pixel too short allowing colorNormal or beforeCellPaint() colors to show up as a 1 pixel thick horizontal line at bottom of cell that has focus.
  • QAID: 5140 - Fixed bug in grid scroll that causes 1 pixel high line to appear between rows when hasRowLines = false, gridLineWidth = 0, beforeCellPaint() is used to paint all cells a non-default color, and user presses up arrow or clicks on up button of vertical scroll bar.
  • QAID: 4113 – Fixed bug where if more than one grid is on a form, with each having an onFormSize event set, event fired for only one grid.
  • QAID: 5119 - Prevented property changes that occurred in editorControl's onGotFocus() or onLostFocus() from triggering infinite loop due to notifications from font object back to grid or from property changes triggering a full grid refresh.
  • QAID: 5383 – Prevented property changes in Grid and Grid editorControls from inappropriately scrolling grid back to its leftmost column such as when modifying properties in the Inspector.

OnMouseOver() and OnMouseOut() events

  • QAID: 2946 – Fixed onMouseOver and onMouseOut events so they will fire when both MDI and showTaskBarButton (form properties) are false. Fixed problem that prevented onMouseOver and onMouseOut events from firing under Windows 98.


  • QAID: 5046 – Fixed problem where the page range option of the ChoosePrinter dialog did not work when attempting to print specific pages instead of the entire report.
  • QAID: 5040 - Fixed the following printer problems: 1. In the Print Setup dialog, if the paper source (tray), size or orientation were modified with the dialog, that is invoked with the Options button, the change had no effect. If they were modified with the parent dialog, the change had an effect. 2. In the Print dialog, the Collate checkbox was not always disabled when the chosen printer did not support collation. Note: If the chosen printer is not warmed up or not connected, the selected printer options may not be updated.
  • QAID: 5118 - Fixed ChoosePrinter() dialog so that it correctly handles the Collate option as well as settings made via the printer driver's custom setup dialog (accessed via the Options button in the ChoosePrinter() dialog).
  • QAID: 5158 - GPF when printing report after changing a setting under Print Dialog | Properties.


  • QAID: 5253 - Fixed ReportViewer so that it correctly paints scrollbars when it is made wider than the displayed report.

Form Designer

  • QAID: 3464 - Fixed problem in Form Designer where opening the Source Editor causes the Inspector to switch to inspecting the FORM object instead of the object that was previously selected.
  • QAID: 5147, 3660 - Fixed a GPF that occurred in the form designer when deleting a query object that had a field datalinked to a listbox component's dataSource property.


  • QAID: 5067 – Improved Form.print() to more reliably print the image of the form as seen on screen instead of redrawing parts of the form out of proportion and poorly positioned on the page.
  • QAID: 5184 – Fixed behaviour of form when Form.ScrollBar =2. Previously, when a control was created dynamically outside the form rectangle, the scroll bars were invisible when they should have displayed and become enabled.
  • QAID: 5192 - Fixed a problem where the mouse pointer didn't return to the correct shape when moved onto a container from outside the form window if that edge of the container extended beyond the edge of the displayed form area.


  • QAID: 5103 - Fixed problem in menu.enabled property that prevented menu items for a menu attached to the frameWin object from being enabled or disabled.

Sort Rows to Table dialog

  • QAID: 5097 – Fixed “Database Engine Error: Number is out of range” error that could occur when using the Sort Rows to Table menu option.

Report Designer

  • QAID: 5149 - Fixed GPF that could occur when choosing the File | Clear Custom Class menu option while in the Report Designer. Also corrected the default band height settings after clearing a custom report class.
  • QAID: 8, 5214 - Fixed problem in Report Designer where Undoing an operation on a group of objects would only undo the operation on the first object in the group.

Exception Handling

  • QAID: 5226 – Fixed GPF that occurred when using Exit within a Try block
  • QAID: 5276 – Improved trapping of Memory Access Violation errors that occur when executing certain SQL statements. These errors are now reported as "Unknown error executing SQL statement: " instead of as a Memory Access Violation.

Table Designer

  • QAID: 5145 - Fixed problem in Table Designer that can cause "Invalid Index Descriptor" error


  • QAID: 5228 - Fixed problem that caused the entryField or spinbox value property to return zero instead of the correct value due to setting the value programmatically to a value that had more digits than were allowed for in the picture property.


  • QAID: 4504 – Fixed Spinbox.onChange() so that it only fires once for a single change. Previously it would fire when clicking on a spinbox button and again when the spinbox lost focus.


  • QAID: 2268, 5164 – Fixed several problems that sometimes caused the debugger to freeze on Windows XP.

dBASE PLUS Installer

  • QAID: 5310 - Removed the dBASE PLUS installer French install language option from the installer language dialog at the start of the dBASE PLUS installation as it was never fully supported.

Table Encryption

  • QAID: 5125 – When encrypting a dBASE table that contains data, the data will no longer become corrupted. When encrypting a dBASE Level 7 Table containing Referential Integrity (RI) rules, the RI rules are now copied into the encrypted table in most cases. When encrypting a dBASE table, the source table is renamed. The table renaming is now done in a way that allows the renamed table to be kept intact with its indexes so that it can be opened in dQuery without triggering a “Cannot Open MDX” error.


  • QAID: 5063 – Updated Multi-Table View so that it retains changes to column position and column width when a new column is added
  • QAID: 5412 – Fixed “Missing SUPERCLASS” error that could occur when opening an existing datamodule that required a login to a DBMS
  • QAID: 5483 – Optimized code in the SQL Select dialog to speed up retrieval of table metadata.
  • QAID: 5429 – Fixed use of upper() function in SQL Expression Builder so that it is only used for dBASE and Paradox databases. When used with other DBMS’, it triggered various syntax errors
  • QAID: 5427 – Upgraded Export Wizard so it correctly exports auto increment fields to both local tables (dBASE and Paradox) and most types of DBMS tables
  • QAID: 5407 & QAID: 5409 – Corrected use of uppercased table names so that they are only used where they will not trigger DBMS errors when accessing DBMS’ that are case sensitive.
  • QAID: 5409 – Fixed “Table ‘dbo’ not found” error in SQL Select dialog where dbo is a table name prefix
  • QAID: 4273 – Fixed speed search for non-character field types in the the One-Click Windows Application