会计考友 发表于 2012-8-2 09:11:00

2012年软件水平网络工程师考试精讲(第三章20)

嵌入式SQL
  把SQL嵌入主语言使用时必须解决三个问题:
  (1)区分SQL语句与主语言语句。这是通过在所有的SQL语句前加前缀EXEC SQL来解决的。SQL语句结束标志随主语言不同而不同,如PL/1用分号(;),COBOL用EMD-EXEC来表示。SQL语句首先由预编译程序加以处理,转换为主语言编译程序能够识别的形式,然后交主语言编译程序进一步处理。
  (2)数据库工作单元和程序工作单元之间的通信。SQL语句中可以使用主语言的程序变量(简称主变量),这些变量名前加冒号(:)作标志,以区别地字段名,程序中使用的任何表(基本表或视图)都要用EXEC SQL DECLARE语句加以说明。一则使程序更加清晰,二则使预编译程序能作某些语法检查。SQL语句执行后,系统要反馈给应用程序若干信息,这些信息送到SQL的通信区SQL CA。SQL CA用语句EXEC SQL INCLUDE加以定义。在SQL CA中有一个状态指示字段SQL CODE。当SQL CODE为零时,表示SQL语句执行成功,否则返回一个错误代码(负值)或警告信息(正值)。程序员应该在每个SQL语句之后测试SQL CODE的值,以便处理各种情况。
  (3)一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式。这是用游标(Cursor)来解决的。下面首先讨论不需要游标的DML语句,然后讨论使用游标的DML语句。
页: [1]
查看完整版本: 2012年软件水平网络工程师考试精讲(第三章20)