# Limitations of Developing for Foreign Datasources

Business Components for Java was designed to work with Oracle8i, and as such there are limitations when working with other databases. When you chose to work with a different SQL dialect, the framework automatically changes the SQL style to suit. However, you must be careful to use the appropriate dialect of SQL when doing modifications to view objects. If, for example, you choose a SQL92 connection, during development time you have to make sure that no Oracle8i specific features are being used such as Oracle8 Objects and Oracle-specific SQL.

Observe the following limitations:

- In both the SQL92 and OLite scenarios, your view objects must use ?-style parameter binding.

- Do not use unsupported domains. For SQL92 and OLite, domain support is currently limited to Date and Number only.

- Do not use Forward Generation of constraints.

- If your rows do not have primary keys assigned, the IDE will force you to create one. If you try and view an object in the Business Components Tester that does not have a primary key assigned, you will receive an error.

- SQL92 does not support pessimistic locking for transactions. You must choose optimistic locking, or no locking at all.

- Avoid using Oracle Object Types, CLOB, BLOB, Oracle specific SQL structs, and any other data types that are not supported on your foreign database platform. See the following table for they types to avoid.