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.