<% '------------------------------------------------------------------------------- '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.61
Features and Fixes
July 7, 2006

New Features

dBase Plus

New Bundled dBI ODBC Drivers by DataDirect Technologies
dBASE Plus now ships with a bundle of branded dBI ODBC Drivers by DataDirect Technologies to make it simpler to connect to:
SQL Server
Sybase ASE
Visual FoxPro
Pervasive SQL (formerly Btrieve)

Streamlined client application deployment
The new bundled dBI ODBC Drivers for Oracle, SQL Server, Sybase ASE, DB2 and Informix not only handle the ODBC level processing, they also manage the sending and receiving of network packets between client workstations and database servers thus streamlining the configuration of client workstations by eliminating the need to install additional database communications software on each client (as is required when using BDE SQL Link drivers). (See Note 1)

Database Class
QAID: 5797 Added new property loginDBAlias, which allows a second database connection to be made to a database using the login credentials from an existing database connection.

Entryfield and SpinBox Classes
QAID: 4120 Added ability to use a percent sign (%) placeholder in the right-most position of the picture property (when datalinked to a numeric field), so that the percent sign can be displayed at the right end of numeric fields.

Exception Handling/Security
QAID: 5883 Enhanced execution time validity checks to prevent execution of invalid or corrupted instructions by the dBASE virtual machine interpreter.

Grid Class
QAID: 3675 Added new method firstRow() - returns bookmark for first visible row in the grid.
QAID: 5954 Added new method lastRow() – returns bookmark for last visible row in the grid.

Project Explorer
QAID: 5570 Added new "Ini" tab to the Inno section of the Project Explorer that allows a user to indicate whether or not a default ini file should be generated for a deployed application. If the user chooses to create the ini file, they can include a settings to use the BDE or not and to enable/disable the _app.ErrorTrapFilter flag.

Query Class
QAID: 5654 Added new property usePassThrough, which is checked during query activation. If true, the query's sql statement is passed through directly to the database server for execution. When opening very large tables this allows for very fast retrieval of the initial query result rows. If false and a query's sql statement is a simple "select * from table" statement, dBASE Plus attempts to open the table using "table style" semantics. For tables up to a few million rows, this usually works well. For larger tables, this can result in a very time-consuming query operation.

Rowset Class
QAID: 5335 Added new property autoLockChildRows. When true (the default), child rows are automatically locked when a parent row is locked. This corresponds to previous behavior. When false, child rows are not locked when a parent row is locked.

Source Editor
QAID: 5826 When commenting (or uncommenting) multiple lines of code the Source Editor will no longer comment (or uncomment) the last line if the cursor is in the first column.

Variant Support
QAID: 5512 Upgraded built-in COM and ActiveX support for variants so that most data types allowed in variants can be converted into dBASE variable or property values or into dBASE arrays (for COM SafeArrays).

dQuery (Developer's Edition v3.03)

New Bundled dBI ODBC Drivers
QAID: 5638 Upgraded Database Connection Wizard to use the new branded dBI ODBC Drivers and to simplify database connection process.

Added ability to drag and drop large database tables to the design surface and to adjust dQuery’s available options and behavior when using a large table
QAID: 5451 Implemented ability for dQuery to detect if a table is large or not. If large, dQuery now opens the table using a faster mechanism.
QAID: 5684 Implemented auto-detection of large tables to allow dQuery to optimize how it submits query.
QAID: 5852 Made queries on large SQL Server and DB2 Tables read only in order to prevent unintentional table scans triggered by adding, editing, or deleting rows.
QAID: 5713 When viewing data from a large table, dQuery no longer allows the single or multi-table view grid vertical scroll bars to trigger a full table scan by dragging the scroll bar to the bottom of its range. Instead, a page down is performed and the scroll bar thumb now bounces back to its center position. (Also fixes QAID: 5686)
QAID: 5650 Optimized use of DBMS transactions when editing data.
QAID: 5765 Disabled the following dQuery menu options if the selected table has no indexes or it is a large table:
- Filter/Fast Indexed Filter...
- Search/Indexed Search...
QAID: 5773 Disabled menu option Table | Modify Table... and Table Wizard | Modify Table for large tables. Table Designer does not currently support quickly opening large tables.
QAID: 5791 Added large table support into dQuery's Star Filter routines.
QAID: 5760 Added large table support into dQuery One-Click Windows Application.
QAID: 5844 Disabled the following Tables Menu items for large tables:
- Create Table From...
- Copy Table To...
- Copy Structure To...
- Sort Table...
QAID: 5797 Implemented workaround for large table issue where the BDE attempts to pull all rows of a large table into a local cache when using the Data Direct SQL Server and DB2 drivers.
QAID: 5697 Added ability for dQuery to retrieve DBMS version information and use it to check capabilities of the DBMS.
QAID: 5723 Added ability to customize query before opening a table via a new "Write SQL before opening..." popup menu option. This option is available on the right click menu for the Databases and Tables Treeview and on the fly-out Select Table dialog.

Improved handling of Read Only tables and tables with no indexes
QAID: 5735 Disabled ability to add, edit, or delete rows for a query if table has no indexes or if rowset is read only. Also changed background color of query object to make it appear pale blue instead of white when add or edit rows is not allowed.
QAID: 5404 Made Multi-Table View grid read only to prevent data entry errors when working with rows in parent/child relationships. User should use the Single Table View for any needed data entry.

Updates and Fixes

dBase Plus

QAID: 5562 Changed the report AgSum() function to return a variable of the same type as the field being summed instead of always returning a variable type of float. In reports, this caused the sum of an integer field to be displayed with decimal digits (.00) instead of as an integer. However, a float type value will still be returned by the AgSum() function if the sum of an integer field is outside the range of a long integer (-2,147,483,648 thru 2,147,483,647). This case can happen if the integer field contains very large positive or negative values, or a large number of rows are included in the sum.

QAID: 5932 Fixed Memory Access Violation that occurred when ARGVECTOR() was called within a procedure to retrieve an argument whose name was declared PRIVATE prior to calling ARGVECTOR(). This condition now triggers the following new error (Error code 403):
- Error: Argument out of scope or hidden by a PRIVATE command: <varName>

Editor Class
QAID: 1221 Fixed firing of a field object’s onChange() event when an Editor is datalinked to a memo field and a change is made via the Editor object and a rowset navigation is triggered.

EntryField Class
QAID: 5535 Modified Entryfield component to check if the framewindow is visible before opening a viewer for a datalinked blob field. If the framewindow is visible, then the viewer form will be opened as an mdi form (i.e. inside the framewindow). If the framewindow is not visible, the viewer form will now be opened as a non-mdi window (i.e. without any framewindow).
QAID: 4764 Fixed a problem when using the 'R' formatting code in the function property and a picture property template of ‘99999’, in which a 1 in the leftmost position of the field would be lost when tabbing to next field. The resulting value would display as ‘00000’.
QAID: 5573 Fixed two problems that occurred when using the 'R' formatting code in the function property:
1. Fixed problem where digits entered in a numeric entryfield were lost because the actual characters displayed during data entry were not a valid numeric value. The entryfield was changed so that if the ‘R’ formatting code is specified and the picture property contains a valid template for a numeric value, then numeric data entry rules are enforced. For example, with 'R' in the function property, and '999.99' in the picture property, entering the four characters, '9.12', from the left end of the entryfield would display as '9.1.2', which becomes 9.10 when it is converted to a numeric value (after pressing the enter key or tabbing to the next field). This happened because the entered decimal point did not automatically align with the placeholder decimal point from the picture property, so the second decimal point and all characters to the right of it were ignored when the string was converted to a numeric value.
2. Fixed the processing of numeric picture characters '9', ‘#’, '*', '$' to only allow '-' or '+' to be entered at the left end of an entryfield or spinbox value.

Form Class
QAID: 310 Fixed the form's nextObj property so it only returns objects in the tab order.

Form Designer
QAID: 1769 Fixed Source Alias substitution, which is used when code is streamed from the Form Designer (and other places), so that the longest matching Source Alias path is used instead of a Source Alias to a higher level sub-path.
QAID: 3205 Fixed painting of line objects so that the ends of the lines do not bleed-through to a new page when changing the current page for a form or notebook.

mousePointer Property
QAID: 5115 Fixed a problem that occurred when a non-default mouse pointer (also called the mouse cursor) was chosen for a form. Clicking any mouse button on the form surface (not on a component on the form) caused the mouse pointer to change to an arrow until the mouse was moved. This problem could also be seen when any of the mouse buttons was released (mouse up) after holding a button down, moving the mouse slightly to restore the selected pointer, and then releasing the button.

QAID: 5717 Fixed a problem where a modal message box dialog would be assigned an incorrect parent window if its parent form is not the foreground application when msgBox() is executed.

onMouseOver / onMouseOut Events
QAID: 5646 Fixed OnMouseOver and OnMouseOut events so they do not fire for components on non-visible form pages.
QAID: 5495 Improved firing sequence of onMouseOver and onMouseOut events as follows:
1. Fixed firing sequence when the mouse was moved quickly from one grid to another and the two grids were close to each other. The onMouseOver of the entered grid was fired before the onMouseOut of the grid that was left.
2. When several crossing events occurred at once, their order is now as expected - First out of one component and then over another component, first over the form and then over the form child windows, first out of the child window and then out of the form.
3. The events are now fired at the outer border of a notebook.
4. A form component no longer fires the events, when the mouse crosses sibling form components that are inside it. For example, if there is a button within a rectangle, the rectangle over/out events are not fired when the button is crossed.
5. The events now fire for disabled and invisible components.

Printer Support
QAID: 5480 Fixed GPF that occurred when changing the PrinterName property of a printer, or after selecting a specific printer with a print dialog
QAID: 5481 Fixed lockup that occurred if printer.choosePrinter() was called more than once after changing printer.printerName.

Project Explorer
QAID: 5176 Fixed CURSOR::BEGINWAIT error that sometimes occurred when opening the Project Explorer.
QAID: 5571 Explorer.dll, which contains graphic files for the Project Explorer, has been renamed to ProjExp.dll to prevent it from being improperly labeled as spyware or a virus by some anti-spyware and anti-virus utilities.

Query Class
QAID: 5584 Corrected the query activation code so that if the query's canOpen() event returns False, query.active will be set to False instead of being left True.

QUIT Command
QAID: 5659 Fixed QUIT WITH so that (a return code) is correctly passed back to the operating system. When calling a dBASE Plus application .exe from another program or batch file, the return code can now be tested to determine if an error occurred or if some other action is required.

Report Designer
QAID: 5980 Corrected Group Pane of Report Designer so that clicking on an object in the Group Pane correctly selects the object in the Report Pane.
QAID: 5975 Corrected indentation of the group bands in the Group Pane of the Report Designer, so that when multiple group bands are present the outermost group has the smallest indent, the next group has a bigger indent and so on. Also moved the text labeling the pageTemplate so it displays vertically along the left side instead of along the top.
QAID: 5976 Objects in the Group Pane of the Report Designer are now drawn with the same width as their corresponding object in the Report Pane.

Rowset Class
QAID: 3677 Fixed "Capability Not Supported" error that could occur when automatically unlocking a row after issuing a begintrans(). The BDE would return this error if begintrans() has been called and a user does the following:
- Edits a field in a row in a grid
- Edit a second row
- Goes back and edits the same field in the first row again
- Then clicks on a different row
QAID: 5945 Fixed GPF that would occur when setting rowset.masterFields to a memo field when the child table’s current index is based on a character field. This will now generate a Type Mismatch error.

Runtime Application
QAID: 3587 Fixed GPF that occurred when invoking a deployed application .exe using a UNC path.

QAID: 2019 Fixed regression that caused SAVE TO ALL LIKE to save variables that should have been excluded by the LIKE clause. Also fixed related problems in the LIKE() and LIKEC() functions that could lead to these functions reporting incorrect matches between a supplied skeleton expression and a test string.

Source Editor
QAID: 5511 Fixed "dQuery.wfo does not exist" error that occurred when using the Fix option from a previous error dialog. With dQuery loaded, when certain errors occurred, pressing Fix to open the Source Editor, correcting the error, and then closing the Source Editor would trigger a secondary error.
QAID: 5786 Fixed GPF that sometimes occurred when closing the Source Editor via Ctrl-W or F9 or other keyboard macro setup to close the editor after having edited a source file within dQuery.

SpinBox Class
QAID: 5494 Fixed regression that caused the the spinbox to initially increment a value when its down arrow is clicked.
QAID: 4764 Fixed a problem when using the 'R' formatting code in the function property and a picture property template of ‘99999’, in which a 1 in the leftmost position of the field would be lost when tabbing to next field. The resulting value would display as ‘00000’.
QAID: 5573 Fixed two problems that occurred when using the 'R' formatting code in the function property:
1. Fixed problem where digits entered in a numeric entryfield were lost because the actual characters displayed during data entry were not a valid numeric value. The entryfield was changed so that if the ‘R’ formatting code is specified and the picture property contains a valid template for a numeric value, then numeric data entry rules are enforced. For example, with 'R' in the function property, and '999.99' in the picture property, entering the four characters, '9.12', from the left end of the entryfield would display as '9.1.2', which becomes 9.10 when it is converted to a numeric value (after pressing the enter key or tabbing to the next field). This happened because the entered decimal point did not automatically align with the placeholder decimal point from the picture property, so the second decimal point and all characters to the right of it were ignored when the string was converted to a numeric value.
2. Fixed the processing of numeric picture characters '9', ‘#’, '*', '$' to only allow '-' or '+' to be entered at the left end of an entryfield or spinbox value.

StreamSource Class
QAID: 5965 Fixed problem with streamSource's rowset property so that when setting it to a different rowset, it correctly turns off notifications from the previous rowset to the streamsource object.

Subform Class
QAID: 5709 Fixed the excessively slow grid scrolling (on a subform) and the frame title bar blinking that was related to it.

Table View - Context Menu
QAID: 5602 Fixed problem that caused the wrong context menu to display when running dBASE Plus with a manifest file, opening a table from the Tables tab of the Navigator, and right-clicking on the Table View window.
QAID: 5490 Fixed regression to treeview’s borderStyle property so that changing it from its default value no longer causes flickering. Also fixed lockup that occurred when changing it via the Inspector in the Form Designer. This problem was caused by the fix for QAID: 5287.
QAID: 5552 Fixed Memory Access Violation that sometimes occurred when a treeView's releaseAllChildren method was called, and a tree item was selected.

XP Theme Support
QAID: 5859 Fixed copy(), cut(), and paste() methods when called from an XP themed pushButton. Previously, these methods failed to work when using an XP theme.
QAID: 5489 Fixed the following XP theme issues:
1. EntryField, spinBox, editor, listBox and rectangle now support XP styles, when XP theme is active and with default properties.
2. Fixed position of text for a rectangle object when XP themes are used.
QAID: 5497 When the mouse enters a XP style push button (turning it orange), XP sends a paint message to the form text component. The painting of non-transparent text was done directly to the screen and caused flickering. The text painting code is now changed to do most painting operations off screen.
QAID: 5499 Disabled combobox (simple or dropDown styles) with XP style had black background behind the list items. The background brush and text background of a disabled combobox are now white.
QAID: 5500 Fixed systemTheme speedBar pushButton so that clicking it with the mouse does not take focus from control that currently has focus. This occurred with editor and entryField components among others..
QAID: 5526 Fixed problem in the Form Designer, when pasting a shape or line component onto an XP themed notebook, the pasted shape or line were invisible.
QAID: 5389 Corrected text and group box background colors to match containing window for various core product dialogs when XP Themes are enabled.
QAID: 5640 Fixed a regression in the Form Designer Properties dialog that caused the OK, Cancel, Help and Apply buttons to be positioned incorrectly when XP Themes were not enabled.
QAID: 5679 Fixed regression that caused rectangle components to ignore mouse events and not fire their mouse event handlers that was due to changes to support XP Themes.
QAID: 5578 Corrected overlapping of some controls in Project Explorer when using XP Themes.
QAID: 5944 Fixed display of rectangles at runtime when XP Themes are enabled.


Create Table
QAID: 5726 Added new form for selecting database and table name for "create table".

Database Connection Wizard
QAID: 5719 Fixed the Delete Database Connection option in the dQuery Database Connection Wizard so that it can delete connections made using an ODBC System DSN as well as ODBC User DSN's.

Datamodule Code Generation
QAID: 5834 The order in which database objects are written to the datamodule file has been changed to match the order in which the database's where added to the datamodule at design time.

Export Wizard
QAID: 5706 Corrected text "Uable" to "Unable" in dQuery's Export Wizard.
QAID: 5444 Fixed "Value out of range" error that occurred when exporting a Sybase ASE table to a comma separated text file (.csv).
QAID: 5846 Updated dQuery Export Wizard to disable the Multi-Table View option if the Multi-Table View has not been setup yet.
QAID: 5851 Updated Export Wizard so it no longer allows user to click Next to move to the Destination Table page after user cancels from destination database login dialog.
QAID: 5872 Fixed "Data Type Mismatch Error. Expecting: Logical" that occurred when attempting to export a table in a DBMS database to a new table in the same database.
QAID: 5644 Modified dQuery's Export Wizard so it disables the Current Query option if no query is available to export from.
QAID: 5546 Updated export wizard to correctly export data from temporary tables (PASS THROUGH SQL tables) generated by executing queries via .sql files. Also added tests to prevent exporting a field from a PASS THROUGH SQL table as part of the Multi-Table View as this is not currently supported.

Import Wizard
QAID: 5857 Fixed "Database Not Opened" error that occurred in the Import Wizard when canceling out of the database login dialog when choosing a table to import.

QAID: 5712 Fixed a "variable undefined" error when deleting a session object from the design surface that the user had added.
QAID: 5620 Fixed table or view not found error that occurred when opening a SQL Server table with spaces in the name.
QAID: 5737 Fixed Memory Access Violation that occurred after attempting to use the Rows | Replace Field Values menu option when the currently selected query is a table that cannot be edited due to it being opened via ODBC and not having any indexes.
QAID: 5733 Removed the extra back-slash in the default dQuerySamples alias path created by dQuery when the alias doesn't already exist.
QAID: 5749 Fixed "Index Does Not Exist" error when clearing index for a Non-Indexed Parent/Child Link when using a MySQL database.
QAID: 5743 Removed "Include all rows" option from Standard Filter and Non-Indexed Search dialogs.
QAID: 5754 Fixed "Database Engine Error: Index does not exist" that occurred when closing the Table Designer after opening some DBMS tables that have no indexes.
QAID: 5755 Added code to prevent user from closing dQuery form while dQuery is in the middle of running processes that require controlled exits. Processes modified are: Load current report, Calculate sum, Calculate count, Calculate minimum, Calculate maximum, Calculate average, Open fly-out tables list.
QAID: 5768 Fixed "Value out of Range" error and other potential errors that could occur when dragging splitter bar past bottom of dQuery form window and when maximizing dQuery form within its frame window. Added code to prevent dQuery from using splitter position values that are too large or too small from .ini file.
QAID: 5758 Removed access to right-click popup menus for editor controls in the following dQuery Business User dialogs: Filter Properties, Field Detail, Table and Query Properties, RowsetProperties.
QAID: 5789 Fixed "Variable Undefined: QLANG" error when canceling a search run via the Search | Non-Indexed Search menu option.
QAID: 5349 Fixed the Set Order dialog, which has the wrong name for the second tab when there is no current index or no index is selected.
QAID: 5799 Fixed "Database Engine Error: Table does not exist: t" when using Filter | SQL Select Filter dialog. Corrected use of table alias "t" in the generated SQL Select statement when reserved words are used for fieldnames in a field list.
QAID: 5374 Fixed incorrect font size problem that sometimes occurred in the Multi-Table View grid's rightmost column where the font size of this column would become larger than in the other columns.
QAID: 5487 Disabled the Filter | SQL Select menu option for inactive queries.
QAID: 5066 Prevent error that occurred when right-clicking on dQuery design surface, choosing "Add Table" and then canceling out of the database login dialog.
QAID: 5854 Modified the dQuery Tables menu to enable the "Encrypt table" option only for dBASE or Paradox tables.
QAID: 5868 Corrected the Fly-out Table list window's resize routine so that it correctly positions and sizes all of the window's components.
QAID: 5850 Disabled menu and toolbar options to Add Row and Goto Last Row for large DBMS tables.
QAID: 5812 Fixed regression in Filters | SQL Select... dialog that prevented the full list of fields from showing when modifying a query that retrieved a subset of fields from a table.
QAID: 5871 Fixed "Invalid Object Name" error that occurred after using the Table Wizard's Modify Table Structure option to view the structure of DBMS tables from SQL Server or Oracle.
QAID: 5884 Fixed Filter | Clear All Filters and Filter | Clear Any SQL Filter menu options so that they also clear a "T" alias definition if it is present in the filter SQL statement. This can occur in SQL statements created by the Star Filter.
QAID: 5777 Updated dQuery wizards to prevent them from responding to multiple clicks, by the user, of the Finish button. Now only responds if Finish has not already been clicked.
QAID: 5896 Fixed error that occurred if user cancels out of database login dialog when selecting a source or destination table in:
- Table | Create Table From...
- Table | Copy Table To...
- Table | Copy Structure To...
QAID: 5903 Improved ability of Hand-Edit SQL dialog to preserve Parent/Child links including non-indexed Parent/Child links.
QAID: 5904 Updated dQuery's Database Connection Wizard's DB2 option to default to supporting the IBM Client Access ODBC driver for DB2 on the AS/400.
QAID: 5333 Prevented display of incorrect child row data when using dBASE tables in a non-indexed parent/child relationship and a parent row has no matching child rows.
QAID: 5600 Fixed a GPF caused by clearing rowset.masterFields in the Inspector for a child rowset.
QAID: 5690 Fixed "Index does not exist" error that occurred when loading an existing datamodule into dQuery for DB2 and some versions of Oracle when an explicit index was set within the datamodule.
QAID: 5445 Fixed "Database Engine Error" that occurred when opening some DB2 for Windows system tables including: SYSCAT.TABLES, SYSCAT.INDEXES, SYSCAT.EVENTS.
QAID: 5534 Fixed Memory Access Violation that occurred when switching dQuery's report view from the Automatic Report to a saved report when the datamodule contains a Standard (CanGetRow) filter on the rowset.

Multi-Table View
QAID: 5711 Mouse pointer now changes to an hour glass when dropping a field onto the Multi-Table view and changes back once the view has been updated.
QAID: 5764 Fixed a problem where Multi-Table View column width changes are lost the first time a datamodule is saved.

One-Click Windows Application
QAID: 5803 Fixed "Data type mismatch: Expecting Object" error that occurred when selecting the Multi-Table View tab on a dQuery deployed Windows application when no Multi-Table View was defined before the application was created by dQuery.
QAID: 5804 Disabled the Index Order and Speed Search comboboxes on a dQuery deployed Window's application when there are no indexes defined. Changed the background color of the comboboxes from yellow to white.
QAID: 5820 Corrected typo on the first page of the dQuery deployed application Filter Wizard, changed "expressiont" to "expression".

Parent/Child Wizard
QAID: 5702 Fixed "Index does not exist" error after using Parent/Child Wizard to setup a non-indexed link, choosing to enforce one-to-one relationship, and then clicking on each query object on design surface.

QAID: 5562 Upgraded report totals so that they will not include a decimal point and additional digits to the right of the decimal point unless absolutely necessary.

Set Order Dialog
QAID: 5781 Fixed "Index does not exist" error when setting index order to natural order.

SQL Expression Generation
QAID: 5811 Corrected SQL expression generated for the "None of the conditions" option in the dQuery expression builder, which is used in the SQL Select filter, the Filter Wizard and elsewhere. Previously, the logic generated was NOT "All of the conditions" instead of the logic for "None of the conditions", which is different.

Star Filter
QAID: 5411 Fixed Server Error with the Star Filter’s "Apply to Datamodule" option when the query’s requestLive property is set to false. Also fixed problems with recovery of the datamodule rowset state after this error occurred. Fixed the right-click Requery option to handle the case where query.requestLive=false and there is a "T" alias in the SQL statement from a Star Filter generated WHERE clause.

Web Wizards
QAID: 5377 Fixed "In use by another: ...\dBLCore\temp\Wiztemp1" error dialog that could occur when choosing Applications | Web Wizards a second time in dQuery standalone.
QAID: 5663 Fixed "Unknown database name: dQueryTemp" error that occurred when selecting Applications | Web Wizards a second time.

XP Theme Support
QAID: 5489 The current Windows XP Theme is now used by form components in dQuery dialogs and One-Click Window applications including: entryFields, spinBoxes, editors, listBoxes and rectangles.

Note 1: Requires a client license for each deployment of dBI ODBC Drivers by DataDirect Technologies.