RDM Programming Interfaces
RDM was originally a linkable library of C functions for use by C application developers. It still is, but it is also much more. The following three APIs are Raima proprietary. Other standard APIs have been supplied, as you will see below.
The following APIs are demonstrated by real code in the product.
Navigational Network-Model C API
The “classic” RDM API has been used by developers for over 30 years. This low-level C API of over 200 functions gives developers complete control over all database operations. The interface breaks work down into very small units and allow developers to create database libraries that can be easily interrupted by higher-priority tasks. This API should be chosen by developers that are upgrading existing applications to the latest version of RDM.
Navigation Cursor C API
The “cursor” RDM API is a modern makeover of the classic RDM C API. It retains the low-level control, but provides a more intuitive and easier-to-use interface. The use of cursors allows for multiple independent positions on the same set of data. This Cursor interface gives the developers the ability to work with data similar to SQL results sets without the overhead required by an interpretive interface. The Cursor API is the suggested interface for all new C- based RDM applications.
Objective C API
The RDM Objective-C interface provides database-specific sets of classes implementing higher-level abstractions. These generated interfaces are built to fit a specific database schema using an object-orientated approach. Objects are defined to represent each table type in the database, and the C data types used by RDM are automatically translated with native Foundation objects when reading or updating data in the database. This simplifies the use of the database in Objective-C applications since the translation from C data types to objects is automatically handled. The Objective-C API is supported when development targets iOS or OSX.
The RDM C++ API is custom-generated for each database schema. A Database class is generated to provide operations on the whole database. A Cursor class is generated to operate on each table defined in the schema. Through the use of the custom classes and the ability to use Exceptions for error handling the RDM C++ API is a powerful and intuitive programming interface, with expected support for try/catch functionality. The RDM C++ API is the suggested interface for all C++ development.
SQL C API
The RDM SQL C API is the easiest way to create a C-based RDM application. This API is a much-simplified version of the ODBC API. It provides the easiest and most efficient way to process SQL commands from a native C application. The RDM SQL C API is the suggested interface for developers who want to utilize SQL from a C application in the most efficient manner.
Standards-Based ODBC C API
The RDM ODBC C API allows a developer to build an ODBC-based application without using an ODBC driver or on platforms where no ODBC drivers are available. The interface is based on the ODBC standard and allows a C application to utilize SQL statements for data processing. The RDM ODBC C API is the suggested interface for developers who want an industry-standard programming interface for SQL access.
ODBC, JDBC, ADO.NET
Raima provides ODBC, JDBC, and ADO.NET drivers for access from third-party tools, such as Access, Excel, and Visual Studio.