Raima Programming APIs
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 three APIs are demonstrated by real code in the demos page. Follow the links for the API-specific demo.
The Figure shows these three APIs side-by-side, using C and C++ code to accomplish the same “hello world” example. In a database, “hello world” consists of creating one row then reading and displaying all rows.
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 allows developers to create database libraries that can be easily interrupted by higher-priority tasks. This API should be chosen by developers that who are upgrading existing applications to the latest version of RDM.
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.
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.
Click on the following graphic to expand it.
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 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.
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.
The RDM API for LabVIEW provides a database management solution for CompactRIO and Single-Board RIO devices. It is the first to deliver relational data management locally on real-time CompactRIO devices. The RDM API for LabVIEW allows LabVIEW programmers to quickly and easily design data management functionality into their LabVIEW program
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.