History of Portable Interfaces

Embedded SQL

In the early days of relational database and throughout the '80s, the only
portable interface for applications was Embedded SQL. There was no common
function API and no standard 4GL. Embedded SQL uses a language specific
Precompiler. SQL commands are embedded in a host programming language,
such as, C or COBOL. The Precompile translates the embedded commands
into host language statements that use the native API of the database.

Originally, the defacto standard for Embedded SQL was IBM's DB2
implementation. It served as the basis of the first ANSI SQL in 1986.
Unfortunately, ANSI SQL 86 and its revision in 1989 only defined a subset
of Embedded SQL known as Static SQL. The DB2 implementation of Dynamic
SQL continued as the defacto standard well into the '90s, serving as the
basis for implementations like Oracle and FirstSQL.

Open Database API

In the '90s, the SQL Access Group (SAG) was formed for major vendors.
SAG defined a portable database API for SQL. The SAG specification
served as the basis of the Microsoft Open Database Connectivity (ODBC)
specification.

A number of drivers were developed for ODBC, and it quickly became the
defacto standard for SQL APIs. SAG has continued to refine their
specification, and other vendors have implemented a competing standard -
IDAPI, but ODBC far surpasses them in platforms and RDBMSs supported.

FirstSQL was one of the early supporters of ODBC. It provides an ODBC
driver for each version of its engine - desktop and server. FirstSQL
Embedded SQL also can connect to OEM ODBC drivers.