The Embedded SQL was born of the first attempts to extend SQL with procedural language capabilities. Its main function was to carry on the internal RDBMS control and administration. The other goal was to provide the ability to write programs that could connect to the database, retrieve, process, modify data, and so on. The first task is being gradually delegated to stored procedures, functions, and triggers that have better mechanisms of doing that. The second is still mostly done using various programming languages; however, the mechanics of databases constantly evolve. Most modern programming languages provide different (sometimes more efficient and/or easier to use) means of accessing RDBMS. These include ODBC, JDBC, CLI, along with the object-oriented interfaces (like Microsoft ADO) — to name just a few.
ODBC, JDBC, CLI, and other alternative methods of accessing RDBMS are discussed in Chapter 16.
In spite of all this, embedded/dynamic SQL still has its niche in the contemporary programming world — the embedded database market. Embedded databases are widely used in mobile and wireless devices, consumer electronics, medical equipment, and more. Using embedded/dynamic SQL requires less memory and processor power and provides fast and reliable access to relatively static embedded databases, and with embedded databases making their way into a vast array of the new devices — cell-phones, microwaves, personal digital assistants (PDA), and the like — embedded SQL is experiencing a revival.