嵌入式 SQL (ESQL) 是用于 SQL 数据库访问的 SQL-92 标准应用程序接口 (API)。ESQL 的编译需要分两步进行:
- 预编译器将嵌入式 SQL 语句翻译成编写该应用程序所使用的编程语言中的命令。生成的语句专供提供预编译器的数据库使用,因此,虽然原始源程序与 ESQL 同类,但生成的语句和最后的可执行文件专门用于某个数据库供应商。
- 然后,用应用程序编程语言的编译器编译由预编译器生成的源程序。
与 OLE DB 这类 COM API 或 ODBC 这类调用级接口相比,嵌入式 SQL 的语法更简单,因此更易于学习和编程。但嵌入式 SQL 不如 OLE DB 或 ODBC 灵活,在用 OLE DB 或 ODBC 精心编写的应用程序中,只需切换驱动程序或提供程序,即可从一个 DBMS 切换到另一个。在编译应用程序(例如开发按需查询工具时)时不识别 SQL 语句的环境中,更适合使用 OLE DB 和 ODBC。
Microsoft SQL Server&S482; 2000 提供用于 C 应用程序的嵌入式 SQL 预编译器。这个 SQL Server 预编译器将嵌入式 SQL语句翻译成对适当 DB-Library API 函数的调用。Microsoft 实现的 ESQL 与 DB-Library 应用程序有相同的限制。
SQL Server 旨在支持用与 Microsoft SQL Server 兼容的第三方嵌入式 SQL 预编译器编译的 COBOL 嵌入式 SQL 应用程序。
虽然在 Microsoft SQL Server 2000 中仍然支持用于 C 语言的嵌入式 SQL API,但在 SQL Server 以后的版本中,不再包含在使用此 API 的应用程序上进行编程工作所需要的文件。在 SQL Server 的下一版本中,仍然支持使用用于 C 语言的嵌入式 SQL 编写的现有应用程序的连接,但在以后的版本中也将不再提供这种支持。编写新的应用程序时,请不要使用用于 C 语言的嵌入式 SQL。修改现有应用程序时,强烈建议删除依赖用于 C 语言的嵌入式 SQL 的内容。可以使用 Microsoft ActiveX Data Objects (ADO)、OLE DB 或 ODBC 来代替用于 C 语言的嵌入式 SQL,对 SQL Server 中的数据进行访问。
转载于:https://blog.51cto.com/buaadallas/80965