Oracle Objects for OLE 2.1.3.1
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.
OCX 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.