编程接口或许是最显而易见的标准化候选项。 事实上,在开发 ODBC 时,ANSI 和 ISO 已经为嵌入式 SQL 和 SQL 模块提供了标准。 尽管数据库 CLI 不存在任何标准,但 SQL 访问组(数据库供应商的行业联盟)正在考虑是否创建一个;ODBC 的部分后来成为其工作的基础。
ODBC 的一个要求是,单个应用程序二进制可执行文件必须与多个数据库管理系统兼容。 因此,ODBC 不使用嵌入式 SQL 或模块语言。 尽管嵌入式 SQL 和模块语言中的语言是标准化的,但每个语言都与特定于 DBMS 的预编译程序相关联。 因此,必须为每个 DBMS 重新编译应用程序,生成的二进制文件仅适用于单个 DBMS。 虽然低需求应用程序在小型计算机和大型机领域中是可以接受的,但在个人计算机领域中却不可接受。 首先,向客户交付多个版本的大容量收缩包装软件是一场后勤噩梦:其次,个人计算机应用程序通常需要同时访问多个 DBMS。
另一方面,可以通过驻留在每个本地计算机上的库或数据库驱动程序来实现调用级接口;每个 DBMS 都需要不同的驱动程序。 由于新式作系统可以在运行时加载此类库(例如Microsoft Windows作系统上的动态链接库),因此单个应用程序可以访问不同 DBMS 中的数据,而无需重新编译,还可以同时访问多个数据库中的数据。 随着新的数据库驱动程序的推出,用户只需在其计算机上安装这些驱动程序,而无需修改、重新编译或重新链接其数据库应用程序。 此外,调用级接口非常适合 ODBC,因为 Windows(最初开发 ODBC 的平台)已经广泛使用了此类库。