编程环境下的SQL也称嵌入式SQL(Embedded SQL, ESQL),是一种将SQL语句直接写入C、C++、JAVA等编程语言中的使用方式,从而让应用程序拥有了访问数据库、操作数据的能力。这些嵌入SQL的语言称为宿主语言。
为提供对嵌入式SQL的支持,数据库厂商需要提供DBMS和一些工具,并且在技术上必须解决以下4个问题:
- 宿主语言的编译器不可能识别和接受SQL语言,所以需要解决如何将宿主语言源代码中的SQL编译成可执行码;
- 宿主语言的应用程序如何与DBMS之间传递数据和消息;
- 如何把对数据的查询结果逐次赋值给宿主语言程序中的变量,以供其处理;
- 有时,数据库的数据类型与宿主语言的数据类型不完全对应或等价,如何解决必要的数据类型转换问题;
为了解决以上问题,数据库厂商采用两种方法处理:一种是预编译;另一种是修改和扩充宿主语言,使之能处理SQL语句。目前采用较多的是预编译的方法。数据库厂商需要提供一个嵌入式SQL的预编译器,对源程序进行扫描,识别出SQL语句,把它们转换成主语言调用语句,以使宿主语言编译程序能识别它,最后由主语言的编译程序将整个源程序编译成目标码。
网友评论