嵌入式SQL程序中包含SQL语句和编程语言语句,所以它不能直接提交给编程语言的编译程序,而是要通过多级的代理
所有支持嵌入式SQL的产品都有以下类似的处理过程
1:嵌入式SQL源程序提交给SQL预编译程序。它扫描整个程序,找到嵌入的SQL语句并处理他们
2:预编译程序输出两个文件,第一个是玻璃了嵌入的SQL语句的源程序。在嵌入的SQL语句的位置由预编译程序替换成对专用DBMS程序段的调用。这些程序段提供了程序和DBMS之间运行时的连接。第二个文件是程序中所有嵌入SQL语句的复制品,即数据库存取模块DBRM(database request module)
3:从预编译程序输出的源文件交给宿主编程语言的标准编译程序,处理后生成对象代码作为输出结果。注意这一部并没有利用DBMS或SQL做什么
4:连接器linker接收编译程序生成的目标模块,将模块与各种库程序段连接在一起,并生成一个可执行程序。参与生成可执行程序的库程序段包括在第2步中描述的专用DBMS程序段
5:预编译程序对所生成的数据库存取模块提交给一个特殊的BIND程序。这个程序检查SQL语句,对他们进行解析,验证和优化。并为每条语句生成一个应用计划。这样的结果是得到整个程序的组合应用计划,他是嵌入式SQL语句的DBMS可执行版本。BIND程序在数据库中存储该计划,通常以创建计划的应用程序名字为它命名
Jan 5, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment