DB2 9 运用开发(733 测验)认证指南,第 4 部分: 嵌入式 SQL 编程(6)

构建与 DB2 截兰交互的运用顺序
developerWorks








竣事语

本教程引见了嵌入式 SQL 编程,并率领您完成了开发嵌入式 SQL 运用顺序的根本步骤。结构化究诘言语(Structured Query Language,SQL)是用于操作数据库对象及其所包罗数据的范例模范化言语。由于 SQL 是非进程的,以是它不是一种通用的编程言语。是以,每每颠末议定将低级编程言语的选择和序列控制与数据存储、操作和检索等 SQL 遵守组合起来,开发出数据库运用顺序。可以用多种方式将 SQL 与低级编程言语结合起来,但最简朴的方式是将 SQL 语句间接嵌入用于创立运用顺序的低级编程言语源代码文件中。

运用嵌入式 SQL 开发运用顺序的错误差池之一是,低级编程言语编译器不领会在源代码文件中嵌入的 SQL 语句,是以也无法注释它们。是以,在对包罗嵌入式 SQL 的源代码文件中止编译和链接以迸发可执行运用顺序之前,必需对它们中止预措置(运用称作预编译的进程)。为了便于中止预措置,在低级编程言语源代码文件中,嵌入的每个 SQL 语句必需以关头字 EXEC SQL 为前缀,并以分号(在 C/C 中)或关头字 END_EXEC (在 COBOL 中)竣事。由一个称为 SQL 预编译器的非凡对象执行预措置;当 SQL 预编译器遇到 EXEC SQL 关头字时,就用特定于 DB2 的函数挪用交换随后的文本(直到发现分号(;)或关头字 END-EXEC),从而将遇到的 SQL 语句转发给 DB2 Database Manager 中止措置。

非常,DB2 Database Manager 也无法间接运用低级编程言语的变量。相反,它必需运用称为宿主变量的非凡变量,在运用顺序和数据库之间挪动数据。宿主变量看上去与任何其他低级编程言语变量一样;为了加以区分,必需在名为声明段的公用区域中界说它们。另外,为了让 SQL 预编译器区分宿主变量和 SQL 语句中的其他文本,关于宿主变量的扫数援用都必需以冒号(:)开头。

为了对数据库执行任何范例的操作,必需首先建立到数据库的跟尾。在嵌入式 SQL 运用顺序中,颠末议定执行 CONNECT SQL 语句来建立(某些状态下为停止)数据库跟尾。在跟尾进程中,建立跟尾所需的信息(比喻受权 ID 和受权用户呼应的口令)将被通报给稳健的数据库以中止有效性考验。但凡,在运用顺序运转时汇集该信息,并颠末议定一个或多个宿主变量将其通报给 CONNECT 语句。

嵌入式 SQL 运用顺序由静态和静态的 SQL 语句构成。静态 SQL 语句但凡较相宜于对一组已知的数据库对象执行预界说操作的高功效运用顺序。静态 SQL 语句但凡较相宜于与疾速更动的数据库截兰交互或许允许用户界说和执行特定究诘的运用顺序。当在运用顺序中嵌入静态 SQL 语句时,在遇到它们时就执行。然则,当运用静态 SQL 语句时,则可以用两种方式之一措置它们:

  • 准备和执行:这种方式将 SQL 语句的准备与它的真正执行别隔开,当要几次执行 SQL 语句时,但凡运用该方式。当运用顺序需求预先知道在执行 SELECT SQL 语句时所迸发的成就数据集中存在的列的有关信息时,也运用该方式。SQL 语句 PREPAREEXECUTE 用于以该方式措置静态 SQL 语句。

  • 立即执行:这种方式将 SQL 语句的准备和执行组理会一步,当 SQL 语句只执行一次时,但凡运用该方式。当运用顺序不需求关于在执行 SQL 语句时将会迸发的成就数据集(要是有的话)的附加信息时,也运用该方式。SQL 语句 EXECUTE IMMEDIATE 用于以该方式措置静态 SQL 语句。

当究诘向运用顺序前往多行时,DB2 运用称为 “游标” 的机制从所迸发的成就数据集中检索数据值。DB2 游标指示出成就数据集中的当前职位处所(比喻,以先行),并识别将前往给运用顺序的下一个数据行。要是要将游标包罗在嵌入式 SQL 运用顺序中,就必需顺次执行下列步骤:

  1. 声明(界说)一个游标及其范例(只读的或可更新的),并将其与所需的究诘联络关系起来。

  2. 翻开游标。这将招致执行呼应的究诘并发天生绩数据集。

  3. 一行行地检索(读取)成就数据集中存储的每一行,直到呈现数据竣事的前提。

  4. 关闭游标。这个操作招致删除执行呼应究诘时所迸发的成就数据集。

SQLCA 数据结构包罗每当执行 SQL 语句时,由 DB2 Database Manager 更新的元素群集。指派给该结构中 sqlcode 元素的值发扬阐发该 SQL 语句是执行告成仍是掉败(值为 0 发扬阐发执行告成,正值发扬阐发执行告成但带有告诫,而负值发扬阐发迸发了错误)。在执行 SQL 语句之后,嵌入式 SQL 运用顺序至多应理立即反省所迸发的 sqlcode 值(但凡称作 SQL 前往码)。要是 SQL 语句未能按预期执行,就应该赐顾帮衬用户迸发了错误或告诫;只需前提允许,还应该给他们提供充沛的诊断信息,以便他们定位并解决标题成果。

一旦编写好源代码文件,在创立与 DB2 数据库截兰交互的运用顺序之前,必需按所示次第执行下列步骤:

  1. 必需对扫数包罗嵌入式 SQL 语句的源代码文件中止预编译。

  2. 包罗嵌入式 SQL 语句的源代码文件一旦颠末 SQL 预编译器措置,就必需用低级编程言语编译器来编译所迸发的源代码文件(以及所需的其他源代码文件)。

  3. 当告成编译了构建运用顺序所需的扫数源代码文件之后,必需将迸发的目的模块与低级编程言语库以及 DB2 库链接起来,天生可执行的顺序。

  4. 要是由 SQL 预编译器措置的文件的包没有绑定到稳健的数据库上,就必需运用在预编译进程中迸发的绑定文件来绑定它们。运用 DB2 Binder 对象完成绑定进程。





版权声明: 原创作品,允许转载,转载时请务必以超链接体例标明文章 原始理由 、作者信息和本声明。否则将清查执法责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/06/1972847.html

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值