Share via


Limitations of Databinding

Databinding is a powerful way to create data applications quickly. However the current databinding controls architecture is inherently 2-tier. Some issues:

Scalability

ADO data-bound controls can only access data from the ADO Data Control. RDO data-bound controls can only access data from the RDO RemoteData Control. For RDO RemoteData Control, there is no workaround but to use a 2-tier architecture, which results in the database server receiving all data retrieval requests directly. To avoid directly connecting to the database server, write a provider that allows access to middle-tier business and data objects. The ADO Data Control connects to these objects, rather than the database server. Such middle tier objects can be cached and managed in a transaction server such as Microsoft Transaction Server. Refer to the OLE DB Templates provider sample for an example of writing a provider exposing data from a middle tier object. Refer to for more information on OLE DB provider requirements for transactions.

Versioning and Distribution

When new versions of controls are released, the application will have to be tested with the new versions. If another application is installed on a user's computer, and it has a different version of the controls, the application will have to be checked. Finally, when new versions of controls are released, the new controls will have to be distributed to application users.

Drivers and Providers

Databinding is only as good as the ODBC driver or OLE DB provider you are using. Since the drivers and providers are responsible for exposing data to data-source controls, it is important to ensure that the driver or provider supports the functionality that you need. Once you select a driver or provider, you must also ensure that your users have the driver or provider installed. This includes installing any middleware that the driver or provider requires. For example, for ODBC Oracle connectivity, the user should have installed not only an ODBC Oracle driver, but also Oracle's SQL*Net middleware. For connectivity to Oracle 7.3 servers, the Microsoft Oracle ODBC driver is recommended.

Programmability

Since ActiveX controls were designed to be black-box components, programmability is limited to a developer's access to the control's interfaces. In the databinding model in the resource editor, this is implemented via wrapper classes generated by ClassWizard. If ClassWizard is unable to detect a coclass, then no wrapper class is generated, and there is no programmatic access.

Despite these limitations, databinding affords a way to rapidly prototype data applications using Visual C++. If speed of development is important, then databinding should be considered when designing your application.

Back to Databinding with ActiveX Controls in Visual C++.