Oracle Data Control Limitations
Please note that the current VBX (data control) will only work with Visual Basic 3.0.
There will not be a 16-bit OCX data control .
The reasons we have chosen not to build the 16-bit OCX data control are
- The specification from Microsoft on the 16-bit version of OCX data control
is extremely ambiguous; in fact, it's not even complete.
- It is complex, costly, and nearly impossible to develop a 16-bit version of
the OCX data control that will behave exactly like the existing VBX data
control. If we did build one, the OCX data control will surely exhibit some
differences that will be unacceptable to customers.
- Our understanding is that the 16-bit OCXs are slower and buggier than their
VBX counterparts. If this is true, then the 16-bit OCX data control will
certainly be difficult to support and maintain, and we will not be able to
provide Oracle quality software to our
customers.
VBX Data Control
The Oracle Data Control (.vbx )is a
fully functional Visual Basic 3.0 level 3 Custom Control and should
be compatible with any data aware control that binds using the
standard VBM_DATA messages found in VBAPI.H (included with the
VB Control Development Kit).
In order to work properly with the Oracle
Data Control, data aware controls should not rely upon the Oracle
Data Control being a built-in data control or should not assume
the window class name of the Oracle Data Control or that the properties
can be cloned and a VB data control used in place of the Oracle
Data Control.
Binding Messages
In particular, the Oracle Data Control
will respond to VBM_DATA_GET, VBM_DATA_METHOD, VBM_DATA_SET, VBM_DATA_INITIATE
and VBM_DATA_TERMINATE messages and will generate VBM_DATA_AVAILABLE
and VBM_DATA_REQUEST messages.
If a bound control sends the VBM_DATA_GET
message with sAction = DATA_FIELDSIZE the Oracle Data Control
will only return a size of up to 64KB. If the field is larger
than 64KB, the size returned will be -1 (negative 1). Bound controls
should then send VBM_DATA_GET with sAction = DATA_FIELDCHUNK to
retrieve chunks of the column. When a returned chunk size is
smaller than the requested size and an error hasn't occurred,
the field has been fully transferred. This behavior is similar
to the implementation of the GetChunk/AppendChunk methods.
The Oracle Data Control doesn't respond
to the undocumented VBM_DATA_FIND messages.
Picture Support
The Oracle Data Control responds to
the VBM_DATA_GET message with sAction = DATA_FIELDVALUE and usDataType
= DT_PICTURE to support picture controls that use this interface
(most notably the VB picture and image controls). Note that not
all picture controls work using this message. Some controls will
fetch the data as a binary stream and manipulate it internally.
Field Types
It is important to note that certain
bound controls expect a particular field type (and may not work
with any other) when binding to a database column. The Oracle
Data Control maps column types to fields types as is listed under
the Type property.
Notes on Particular Data Aware Controls
The following data aware controls have
been tested with the Oracle Data Control and the following comments
are available. Testing may not have been comprehensive and even
though a control is listed here, Oracle does not guarantee that
it will work with the Oracle Data Control. Other controls not
listed here should work with the Oracle Data Control as long as
they follow the guidelines listed above.
TrueGrid by Apex Software Corporation
Version 2.0 and 2.1 as well as the layout
editor work properly with the Oracle Data Control.
QuickPack Professional from Crescent
Software
The Combo (CSCOMBO.VBX) and List box
(CSVLIST.VBX) do not work with the Oracle Data Control because
they assume the window class name of the data control they are
bound to. Also note that when comparing the DataSource property
of the combo or list box to the name of the data control, a case
sensitive comparison is done.
Search for the string "ThunderData"
in cscombo.c (for the combo box) and ctl.c (for the list box)
to see where the window class name is assumed (The window class
name of the Oracle Data Control is "OraData"). Search
for "_fstrcmp" in those same files to see where a case
sensitive name comparison is done.
If the combo box is rebuilt with the
above problems fixed it will not work properly unless the Oracle
Data Control named in the DataSourceList property of the combo
box is refreshed before the Oracle Data Control named in the DataSource
property. The List box, even after fixing the above problems,
still does not work.
It appears that the code for both the
combo and list box do not differentiate between the DataSource
and DataSourceList data controls and try to access them in the
incorrect order before they are refreshed.
The Picture control (CSPICTUR.VBX) does
not work with images greater than 64KB for the reasons described
in the Binding Messages section above.
Aware, Grid and Spread by Farpoint
Technologies
The Aware Memo control (AWAREMM.VBX),
according to it's documentation, must be bound to a memo field.
This means that it must be bound to an Oracle column of type
LONG since that is the only type that maps to a memo field.
Neither the Grid nor the Spread interface
designers work with the Oracle Data Control. Please contact Farpoint
Technologies for possible upgrade information.
FX Tools by ImageFX
No comments available.
ImageKnife by Media Architects
Version 1.3 of this control does not
work with images greater than 64KB for the reasons described in
the Binding Messages section above. Please contact Media Architects
for possible upgrade information.
VBTools4 by Microhelp
Many of the controls provided attempt
to update data even if no changes have been made and therefore
do not work when the ReadOnly property of the Oracle Data Control
is TRUE. This behavior is not specific to the Oracle Data Control.
The Combo (MHGCMB.VBX) and List box
(MHGLBX.VBX) do not work with the Oracle Data Control.
The Out of Bounds Control (MHGODB.VBX)
does not work with the Oracle Data Control.
Check Box (included with Visual Basic
3.0) by Microsoft Corporation
The Check Box control does work properly
with the Oracle Data Control because it is requesting a field
type of DATA_VT_BOOL which does not correspond to any column type
to field type mapping made by Oracle Objects (as listed in the
Type property).
Data Widgets by Sheridan Software
Systems
You must upgrade to Version 1.0d of
the Data Widgets to work properly with the Oracle Data Control.
VBXTASY Volume 1, Version 1.1 by Spinoza
Limited
None of the Check Box controls work
properly with the Oracle Data Control because they are requesting
a field type of DATA_VT_BOOL which does not correspond to any
column type to field type mapping made by Oracle Objects (as listed
in the Type property). Please contact Spinoza for poosible upgrade
information.
Formula One By Visual Tools
Columns of type DATE do not display
correctly.
Image Stream By Visual Tools
This control does not work with the
Oracle Data Control.
Custom controls support
Oracle Data Control is a fully functional
Visual Basic 4.0 Custom Control (OCX). It is compatible with
any data aware bound control (OCX) that uses the Microsoft VB
data binding specifications.
The following data aware controls have
been tested with the Oracle Data Control and here are some comments.
Other controls not listed here will work with the Oracle Data
Control as long as they follow the Microsoft VB data binding specifications.
Please note that the the OCX Data Control
is available only with the 32-bit version of Oracle Objects
for OLE.
Microsoft Visual Basic Standard Controls
Edit control
Works fine with Oracle data control.
Static text control
Works fine with Oracle data control.
Picture box and Image control
Bitmaps can be displayed using Picturebox through Oracle Data Control, however, adds and updates are not possible.
Microsoft Data Bound Listbox
control
Works fine with Oracle Data Control.
Microsoft Data Bound Combobox
control
Works fine with Oracle Data Control, although editing through the Combobox causes occasional problems.
Microsoft Data Bound Grid control
Works fine with Oracle Data Control
with the following exceptions.
1) Grid continues to display deleted
rows immediately after they are deleted. Workaround is to issue
a Refresh command after deleting one or more rows.
2) If AllowAddNew property of the grid
is set to TRUE and the user updates the last record, the display
will not be updated if the user navigates down. The workaround
is either to navigate up or issue a Refresh command.
3) After adding a new row, navigation
through Oracle Data Control's navigation buttons may not function
properly; navigation through the keyboard arrow keys will still
work.
Sheridan Data Widgets
Sheridan Data Bound Combo control
Works fine with Oracle Data Control,
except when using it as a lookup table.
Sheridan Data Bound Dropdown
control
Works fine with Oracle Data Control.
In order to use for lookup table, set 'ListAutoValidate' property
to FALSE .
Sheridan Data Bound Grid control
When displaying a few rows in a largely drawn grid, same rows are re-displayed at the bottom. Only happens with Sheridan grid and currently working with them for a patch.
FarPoint Data Bound Grid Control
Works fine with Oracle Data Control.
For Date field, update or insert is not possible with default
settings. Workaround is to 'Set cell type automatically' to
FALSE for the date field. That property is under GENERAL/DATA
BINDING menu of spread designer. You also need to set the Field
Type to EDIT instead of DATE in the spread designer.
Apex True DBGrid Data Control
Has the same issues as Microsoft Data
Bound Grid control as noted above.