第11章嵌入式SQL.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章嵌入式SQL

嵌入式SQL IBM DB2 V8提供了对嵌入式SQL语句的支持,使得SQL语句能够嵌入到主语言中,主语言提供了对执行的应用程序的支持。 本章主要内容: 嵌入式SQL概述 编写静态SQL程序 编写动态SQL程序 在C和C++中编程 C和C++应用的多线程数据库访问 COBOL中编程 FORTRAN中编程 11.1 嵌入式SQL概述 用户可以使用SQL语句编制应用程序,嵌入到主语言中,SQL语句提供了数据库结构,而主语言提供了对执行的应用程序的支持。下面的示例简单说明了如何嵌入SQL语句到主语言应用中。在这个示例中,应用程序检查SQLCA结构的SQLCODE域,确定是否更新成功。 C/C++ EXECSQL UPDATE staff SET job = ’Clerk’ WHERE job = ’Mgr’; if ( SQLCODE 0 ) printf( Update Error: SQLCODE = %ld \n, SQLCODE ); Java (SQLj) try { #sql { UPDATE staff SET job = ’Clerk’ WHERE job = ’Mgr’ }; } catch (SQLException e) { println( Update Error: SQLCODE = + e.getErrorCode() ); } COBOL EXEC SQL UPDATE staff SET job = ’Clerk’ WHERE job = ’Mgr’ END_EXEC. IF SQLCODE LESS THAN 0 DISPLAY ’UPDATE ERROR: SQLCODE = ’, SQLCODE. FORTRAN EXECSQL UPDATE staff SET job = ’Clerk’ WHERE job = ’Mgr’ if ( sqlcode .lt. 0 ) THEN write(*,*) ’Update error: sqlcode = ’, sqlcode 嵌入到应用中的SQL语句并不是对主程序专用的,数据库管理器提供了用于主语言处理的SQL转换语法。 对于C、C++、COBOL、和FORTRAN语句,转换被DB2预编译器处理。DB2预编译器使用PREP命令激活,转换嵌入式SQL语句到DB2运行服务API调用。 对于Java语言,SQLJ翻译器转换SQLJ子句到JDBC语句,SQLJ翻译器使用SQLJ命令激活。 当预编译器处理一个源文件的时候,它搜索SQL语句,避免费SQL主语言。它能够发现SQL语句,因为它被特定的分界符标识。下面的示例显示了如何使用定界符和注释在支持的编译本地语言中创建一个合法的嵌入式SQL语句。 C/C++ EXECSQL DECLARE C1 CURSOR FOR sname; Java (SQLj) #sql c1 = { -- SQL comments or SELECT name FROM employee }; COBOL EXECSQL DECLARE C1 CURSOR FOR sname END-EXEC. FORTRAN EXECSQL + DECLARE C1 CURSOR FOR sname 用户可以在标准ASCII文件中创建源代码,用户可以使用一个文本编辑器编辑,源文件必须具有本地语言的扩展支持,使得用户能够编写代码。 如果已经使用了已经变异的本地语言编写应用,用户必须执行其他步骤,创建应用。在编译和连接程序的时候,必须预编译和绑定源文件。 简单说,预编译将转换嵌入SQL语句到DB2 运行API调用,使得本地编译器能够处理,创建一个绑定文件。绑定文件包含了应用程序的SQL语句的信息。BIND命令在数据库中创建一个包。 准备在编译的本地语言的程序 下面介绍如何为嵌入式SQL应用创建包。为了能够在编译的本地语言中运行应用,用户必须通过数据库管理器创建在运行的时候所需要的包。图11-2显示了所需要的步骤: 准备在编译本地语言中的程序 预编译器转换嵌入式SQL源语句到数据库管理器能够使用的形式。 编译和链接创建所需要的对象模块。 绑定创建数据库管理器运行程序所需要的包。 当创建了源文件以后,用户必须使用PREP命令为主语言源文件预编译包含SQL语句的文件。 当创建了源文件,必须使用PREP命令为主语言源文件预编译包含SQL语句,预编译器转换在源文件中包含的SQL语句到注释,生成能够调用这些语句的DB2运行API调用。 在预编译应用之前,用户必须连接到服务器,虽然在客户工作站上预编译了应用程序,预编译器在客户机上修改源和消息,预编译器使用服务器连接执行一些合法化操作。 预编译器也为数据库管理器创建了信息,用于对数据库处理SQL语句。这些

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档