Click into





OSA秋装新品女装韩版修身OL通勤纯色泡泡袖小西装短外套女W13254 OSA2012秋装新品女装韩版修身通勤泡泡袖打底衫长袖T恤女款T13180 OSA2012秋装新品男装休闲宽松长袖圆领拼接针织T恤潮男MT24083



【限时7折】缪诗真爱邂逅超聚拢调整型女士内衣性感蕾丝 美背文胸 买一送二2件包邮 爆款文胸性感胸罩内衣 深V聚拢调整型文胸收副乳 可可迷 专柜正品 精油珠新女内衣胸罩 调整型文胸聚拢厚小胸T1065



丰胸产品 泰国圣荷纳米增大坚挺2月装 赠野葛根片中药丰胸药 Elelen左旋肉碱茶多酚减肥胶囊 瘦身产品 中草药配方 正品 买1送1 淘金币 快速丰乳膏美乳膏 丰胸精油搭配 美胸风胸丰胸产品排行榜



【Justyle】英伦立领时尚秋冬修身男士式装款立领拉链夹克外套 2012英伦新款秋冬季直筒型男款时尚纯棉潮流男士装休闲长裤 【Justyle】英伦新款男士休闲中腰宽松牛仔裤男款直筒牛仔裤



59元起 爱情侣公寓关谷恐龙睡衣连体冬珊瑚绒卡通家居服动物皮卡 家居服恐龙皮卡丘奶牛连体卡通动物可爱珊瑚绒爱情侣公寓关谷睡衣 包邮长袖卡通情侣连体睡衣动物珊瑚绒恐龙史迪仔熊猫加肥大码成康



怡君 2012秋冬季新款品 真皮平底雪地靴 狐狸毛短保暖靴 平跟女靴 淘金币 JUNJOY怡君 2012冬季 真皮雪地靴 女短靴子 平底跟情侣款 步伊鸟雪地靴女2012新款真皮牛皮保暖鞋雪地棉短筒平底短靴子女鞋



【一淘专享价】BEDOOK细肤淡印霜30g 去痘印凹洞痘印修复祛痘印 皙肤泉控油祛痘套装 祛痘印/青春痘 男女士去痘套装 正品 包邮 金丝玉帛清痘除印套装 中药消炎祛痘 去痘疤 痘印去豆坑男女正品
婴儿爬行垫
代码改变世界

SQL标准介绍:嵌入式SQLcobol声明变量

2012-04-14 18:25  cobol inspect cobol视频  阅读(657)  评论(0编辑  收藏  举报

  嵌入式SQL(embeddedSQL)SQL语言可以作为语言在终端交互方式下直接调用,也可以被嵌入到某种特定的程序设计语言中,利用程序设计语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。这种方式下使用的SQL语言称为嵌入式SQL,而嵌入SQL的程序设计语言则称为宿主语言。

  SQL可以被嵌入到很多宿主语言中,SQL标准指定的标准宿主语言有Ada、C、COBOL、FORTRAN、MUMPS、Pascal和PL/I,并要求SQL实现必须至少支持其中一种。在嵌入SQL的宿主程序中,任何允许出现可执行的宿主语言语句的地方,都允许出现可执行的SQL语句;任何允许出现说明性宿主语言语句的地方,都允许出现SQL声明段。SQL声明段是声明宿主变量的地方,它以EXECSQLBEGINDECLARESECTION开始,以EXECSQLENDDECLARESECTION结束。

  在使用标准程序设计语言编译器对宿主程序进行编译之前,需要对其进行预处理,将嵌入的SQL语句及宿主变量声明替换为宿主语言编译器能够识别的形式,这个过程称为预编译。为了能够区分SQL语句与宿主语言语句,所有的SQL语句前都必须加上SQL前缀(如EXECSQL),并以SQL终结符(如END-SQL)结束。

  嵌入式SQL语句可以在任何可以放置标量表达式的地方含有宿主语言变量。宿主变量可以用来在程序和SQL数据之间传送数据。在SQL语句中,宿主变量必须前置一个冒号以同SQL对象名相区别。根据宿主变量的作用,可以将其分为输入变量、输出变量和符变量。输入变量用于向DBMS输入数据。输出变量用于接收从DBMS输出的数据。符变量是一个无符号数值型变量,当不能输入输出值可能为NULL值时,可以在相应的宿主变量后跟随一个宿主变量。对于输入宿主变量,任何小于0的符值的意思是传送的值为NULL,而任何符值大于等于0的意思是传送的是一个非空值;对于输入宿主变量,符值-1表示传送的值为NULL,而0表示传送的值为非空值。

  由于SQL语言与宿主语言之间存在不匹配问题,即:SQL是在集合上操作,而宿主语言是在集合上操作。因此,SQL标准通过游标来解决上述问题。游标是对SQL数据进行操作的一种机制,通过它可以每次对表的一行进行操作。可以这样理解游标的作用:游标与一个SQL查询检索到的结果表相关联,它指向结果表中的一行,并且可以在结果表的行之间移动。当游标正指向某一行,即“定位”在这一行上时,可以使用UPDATE或DELETE语句的“定位”形式来UPDATE或DELETE这一行。为使游标正常地工作,通过需要包括四个动作:声明游标、打开游标、获取游标和关闭游标。分别由DECLARECURSOR语句、OPEN语句、FETCH语句和CLOSE语句实现。

  SQL标准还提供了一套诊断机制,使得应用程序能够获知SQL语句的执行情况。基本的诊断信息项目为SQLSTATE。SQLSTATE是一个5字符变量,可以在SQL声明段中定义。在每个SQL语句之后,DBMS会将一个值(状态代码)放入SQLSTATE。状态代码由数字和字母构成。前两个数字或字母是“类”,描述状态的一般类别;SQL标准介绍:嵌入式SQLcobol声明变量接下来的三个数字或字母是“子类”,表示进一步的状态信息。例如:类“00”表示“SUCCESS”;类“01”表示“WARNING”;类“02”表示“NODATA”;其它类表示“ERROR”等。此外,通过GETDIAGNOSTICS语句还可以得到更详细的语句执行信息。

  以下是一个嵌入式C程序范例,该程序检索表tab_1中的列col_1并将每一行中该列的值显示在屏幕上。

  #include<stdio.h>

  EXECBEGINDECLARESECTION;

  intx;/输出宿主变量/

  intx_indicator;/符变量/

  EXECSQLENDDECLARESECTION;

  inti;

  voidmain()

  {

  EXECSQLCONNECTTOdb_serverUSERuser_1;/连接数据库/

  EXECSQLDECLAREcur_1CURSORFORSELECTcol_1FROMtab_1;

  EXECSQLOPENcur_1;

  for(;;){

  EXECSQLFETCHcur_1INTO:xINDICATOR:x_indicator;

  if(!strncmp(SQLSTATE,”02000”,5))

  break;/如果没有返回数据,则跳出循环/

  if(x_indicator<0)

  printf(“NULL\n”);

  else

  printf(“%d\n”,x);

  }

  cobol声明变量EXECSQLCLOSEcur_1;

  EXECSQLDISCONNECTdb_server;

  }