Limitations of opaque types for each language

This section discusses the limitations you have for each language when you implement opaque data types.

Opaque type limitations for C

You cannot use BladeSmith to generate a client object or its accessor methods written in C.

Opaque type limitations for C++/ActiveX

The following limitations apply to using C++/ActiveX value object code:
  • When you define the opaque type that you intend to encapsulate as an ActiveX value object, BladeSmith enforces these rules:
    • You must define the internal structure of the opaque type.
    • The opaque type must be of a fixed size.
    • The opaque type cannot contain members that are smart large objects or variable in size.
    • The opaque type can contain members that are opaque types only if they are implemented in C++.
  • You cannot import opaque types from other DataBlade® modules.
  • The following opaque type routine categories are not supported for either the client or server implementations of an ActiveX value object:
    • Contains large objects routines. To support smart large objects.
    • Type insert and delete notification routines. To perform tasks before storing or deleting an opaque data type on disk.
    • Statistics support functions. To provide a way to improve performance when you compare opaque data type values.
  • The following opaque type routine categories have no meaning for database clients. Thus, although you can implement these routines for the server implementation, they are not made available to the client application developer as ActiveX custom methods:
    • Binary send and receive. To transfer the binary representation of the opaque data type to and from the client.
    • Text file import and export. To transfer the text representation of the opaque data type to and from a flat file.
    • Binary file import and export. To transfer the binary representation of the opaque data type to and from a flat file.
    • Hash. To replace the built-in hashing function to cache return values.
  • The following ActiveX custom methods cannot be used in a server project:
    • IsNull
    • SetNullFlag

Opaque type limitations for Java™

You cannot generate Java code for opaque data types with Version 4.0 of DBDK.