Connection Semantics
 
 
 

Data Sources and Data Stores

The FDO API uses connection semantics to implement access to feature schema data. The term data store is used to refer to a collection of zero or more objects, which instantiate class definitions belonging to one or more FDO feature schema. The connection is to a data store because that is where data objects are stored. The underlying data source technologies used to hold data stores can be relational databases, such as, a MySQL database, or a file-based solution, such as an SDF file.

The mapping of a data store to data source technology can be one-to-one or many-to-one. For example, it is

When many-to-one mapping is possible, a connection can be made in one or two steps. For more information, see Establishing a Connection and The Essential FDO.

The underlying data source technologies differ in the connection parameters used for connecting to a particular provider. The values for these parameters are generated during the installation and configuration of the container technologies. For more information about these values and the process of installing and configuring the associated data source technologies, see the appropriate appendix in this document and The Essential FDO.

Providers

You connect to a data store by way of a provider.

The FDO API contains a registry interface that you can use to register or deregister a provider. See the class FdoProviderRegistry in Inc/Fdo/ClientServices/ProviderRegistry.h.

The providers are registered during the initialization of the FDO SDK. In order to connect to a provider, you will need the name of the provider in a particular format: <Company/Foundation/Originator>.<Provider>.<Version>. The <Company/Foundation/Originator> and <Provider> values are invariable. For specific values, see The Essential FDO.

In order to connect, you will need the full name including the <Version> value. You can retrieve the full name from the registry and display the set of provider names in a connection menu list. If, for whatever reason, you deregister a provider, save the registry information for that provider in case you want to reregister it again. The provider object returned by the registry has a Set() method to allow you to change values. However, the only value you can safely change is the display name. Sample code for using the provider registry is located in Establishing a Connection.

The registry contains the following information about a provider: