Стандартный интерфейс программирования
Интерфейс программирования, возможно, самый очевидный кандидат на стандартизацию. На самом деле, когда разрабатывается ODBC, ANSI и ISO уже предоставляют стандарты для внедренных модулей SQL и SQL. Несмотря на отсутствие стандартов для интерфейса командной строки базы данных, группа доступа к SQL — отраслевой консорциум поставщиков баз данных — рассматривает вопрос о том, следует ли создать ее; части ODBC позже стали основой для их работы.
Одним из требований для ODBC было то, что один двоичный файл приложения должен был работать с несколькими СУБД. По этой причине ODBC не использует внедренные языки SQL или модулей. Хотя язык в внедренных языках SQL и модулей стандартизирован, каждый из них привязан к предкомпиляторы субД. Таким образом, приложения должны быть перекомпилированы для каждой СУБД, а полученные двоичные файлы работают только с одной СУБД. Хотя это приемлемо для приложений с низким объемом, найденных в миникомпьютере и мейнфреймах, неприемлемо в мире персональных компьютеров. Во-первых, это логистический кошмар для доставки нескольких версий большого объема, сжимаемого программного обеспечения клиентам; во-вторых, приложениям персональных компьютеров часто требуется доступ к нескольким СУБД одновременно.
С другой стороны, интерфейс уровня вызова можно реализовать с помощью библиотек или драйверов баз данных, которые находятся на каждом локальном компьютере; Для каждой СУБД требуется другой драйвер. Так как современные операционные системы могут загружать такие библиотеки (например, библиотеки динамической компоновки в операционной системе Microsoft Windows) во время выполнения, одно приложение может получать доступ к данным из разных СУБД без повторной компиляции и одновременно получать доступ к данным из нескольких баз данных. По мере того как новые драйверы базы данных становятся доступными, пользователи могут просто установить их на своих компьютерах, не изменяя, перекомпилировать или повторно связать свои приложения базы данных. Кроме того, интерфейс уровня вызовов был хорошим кандидатом для ODBC, так как Windows — платформа, для которой изначально была разработана ODBC, уже использовала такие библиотеки.