The SOCI database access library by Maciej Sobczak is a beacon of light in the relatively dark waters of Ada based database access libraries. Sure, the library itself is not Ada, but the SOCI crew have made a very nice Ada binding available to us all:
SOCI-Ada is a database access library for Ada. The library itself is a wrapper for the selected functionality of the SOCI library, which is a C++ database access library recognized for its high quality and innovative interface. The SOCI-Ada library offers the following features to the Ada community: Modular design based on dynamic backend loading. Thanks to this feature, new backends implemented within the context of the main SOCI project are immediately available for Ada programmers without any additional work. A large community of C++ users can help ensure that the new backends are well tested in a variety of environments and usage scenarios. Native backends for major database servers ensure optimal performance and minimize configuration overhead and complexity that is usually associated with other database access methods.
Direct support for bulk operations allow to achieve high performance with queries that operate on large data sets. Very liberal open-source license (Boost, accepted by Open Source Initiative) that encourages both commercial and non-commercial use. Easy to use and compact interface.
If you read the documentation, you’ll see that SOCI-Ada is indeed easy to use and very compact. I’ve never been a big fan of embedding SQL in the source code, but for some odd reason I really like the SOCI way. Everything looks clean and neat.