• 嵌入式SQL(仔细研究)


    嵌入式SQL
    嵌入式SQL必须解决的问题:
    如何将嵌有SQL的宿主语言程序编译成可执行码
    宿主语言和DBMS之间如何传递数据和信息
    数据库的查询结果一般是元组的集合,这些元组须逐个赋给宿主语言程序中的变量,供其处理,其间存在转换问题
    两者的数据类型有时不完全对应或等价,需解决必要的数据类型转换问题
    嵌入式SQL的一般形式
    对宿主型数据库语言SQL,DBMS处理方法:
    预编译
    修改和扩充主语言使之能处理SQL语句
    为区分SQL语言和主语言:
    所有SQL语句都必须加前缀 EXEC  SQL;
    SQL的结束标志随主语言不同而不同。PL/1和C以分号(;)结束,COBOL中以END-EXEC结束
    例:    EXEC  SQL  DROP  TABLE  student;
    嵌入式SQL与主语言之间的通信
    数据库工作单元与源程序工作单元之间的通信主要包括:
    向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程,主要用SQL通信区(SQLCA)实现
    主语言向SQL语句提供参数,主要用主变量实现
    将SQL语句查询数据库的结果交主语言进一步处理,主要用主变量和游标实现
    SQL通信区
    SQLCA是系统定义的一个全局变量,在应用程序中定义,其格式为:
            EXEC  SQL  INCLUDE  SQLCA;
    SQLCA中有一个变量SQLCODE:存放每次执行SQL语句后返回的代码,主要用于向应用程序报告SQL的执行情况。
    主变量(1)
    主变量:SQL语句中使用的主语言程序变量,可分为:输入主变量和输出主变量。
    输入主变量由应用程序赋值,SQL语句引用
    输出主变量由SQL语句赋值,返回应用程序
    主变量不能直接接受空值NULL,可在主变量后跟一指示变量(整型变量),用来指示主变量是否为NULL
    主变量(2)
    所有主变量除系统定义者外,均要说明,说明的开头行和结束行分别为:
      EXEC  SQL  BEGIN  DECLARE  SECTION;
      EXEC  SQL  END  DECLARE  SECTION;
    说明后,为和数据库对象名区别,SQL语句中的主变量名和指示变量前要加冒号(:)作标志。SQL语句之外可直接引用。

  • 相关阅读:
    一款简单易用的.Net 断言测试框架 : Shouldly
    单元测试 使用 Effort 内存数据库 报错
    解决 对路径bin oslyn..的访问被拒绝
    数据库设计:多选查询与匹配
    oracle快速创建主键
    models中,字段参数limit_choices_to的用法
    models中,对于(Small)IntegerField类型字段的choices参数在前端的展示
    Django ModelForm组件
    会议室预定
    Django admin管理工具
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1623728.html
Copyright © 2020-2023  润新知