PowerBuilder学习笔记(2)PB与SQL语言

一.在PowerScript语言中使用SQL语句的注意点

PowerScript支持标准嵌入式SQL语句以及动态SQL语句.
    可以使用数据库管理系统的保留字,例SELECT语句中使用数据库管理系统的内置函数
    在SQL语句中可以使用常量和变量,使用变量需在变量前加冒号:
    可以通过事务对象的属性来检查SQL语句执行情况
    ·SQLCode属性:
         0 - 最近一次SQL语句执行成功
        -1 - 最近一次SQL语句执行失败
       100 - 最近一次SQL语句没有返回数据
    ·SQLDBCode属性        //数据库系统返回的错误代码
    ·SQLErrText属性       //数据库系统返回的错误信息
    事务对象(TransactionObject),缺省时使用SQLCA

二.SQL语句
1.创建和删除数据库
    CREATE DATABASE语句
    DROP DATABASE语句

2.连接和断开数据库
    CONNECT {USING TransactionObject};
    DISCONNECT {USING TransactionObject};

3.提交与回滚事务
    COMMIT {USING TransactionObject};
    ROLLBACK {USING TransactionObject};

4.DML操作
    单行检索: SELECT ... {USING TransactionObject};
    插入数据: INSERT ... {USING TransactionObject};
    修改数据: UPDATE ... {USING TransactionObject};
    删除数据: DELETE ... {USING TransactionObject};

5.游标(Cursor)
    DECLARE CursorName CURSOR FOR SelectStatement {USING TransactionObject};
    OPEN CursorName;
    FETCH CursorName INTO HostVariableList; //每次读一行,可用循环读取,用SQLCode判断是否读取成功
    CLOSE CursorName;
    DELETE FROM TableName WHERE CURRENT OF CursorName;   //删除表中当前游标所的数据,不时所有数据库系统都支持
    UPDATE TableName SET FieldName = Value WHERE CURRENT OF CursorName;  //修改表中当前游标所的数据

6.存储过程(Procedure)
    DECLARE ProcedureName PROCEDURE FOR
        StoredProcedureName
        @Param1=Value1,@Paramm2=Value2,...
        {USING TransactionObject};
    EXECUTE ProcedureName;
    FETCH Procedure INTO HostVariableList;
    CLOSE ProcedureName;

三.动态SQL语句
   四种类型:
   ·无输入参数,无结果集
   ·有输入参数,无结果集
   ·有输入参数和结果集,在编译时已经知道参数和结果集
   ·有输入参数和结果集,在编译时尚不知道参数和结果集

1.动态SQL类型一: 无输入参数,无结果集
    EXECUTE IMMEDIATE SQLStatement {USING TranactionObject};

2.动态SQL类型二: 有输入参数,无结果集
    PREPARE DynamicStagingArea FROM SQLStatement {USING TranactionObject};
    EXECUTE DynamicStagingArea USING {Paramenter List};
    ·DynamicStagingArea: 动态策略区变量,类型为DynamicStagingArea,通常使用SQLSA
    ·SQLStatement: SQL语句,出现参数的地方用问号?作为占位符.
    ·TranactionObject: 事务对象,默认为SQLCA
    ·Paramenter List: 参数列表
    例:
    PREPARE SQLSA FROM "DELETE FROM employee WHERE emp_id = ?";
    EXECUTE SQLSA USING :emp_id_var;

3.动态SQL类型三: 有输入参数和结果集,在编译时已经知道参数和结果集
    (1).用游标的形式
    DECLARE Cursor DYNAMIC CURSOR FOR DynamicStagingArea;
    PREPARE DynamicStagingArea FROM SQLStatement {USING TranactionObject};
    OPEN DYNAMIC Cursor {USING ParameterList};
    FETCH Cursor INTO HostVariableList;
    CLOSE Cursor;

(2).用存储过程的形式
    DECLARE Procedure DYNAMIC PROCEDURE FOR DynamicStagingArea;
    PREPARE DynamicStagingArea FROM SQLStatement {USING TranactionObject};
    EXECUTE DYNAMIC Procedure {USING ParameterList};
    FETCH Procedure INTO HosstVariableList;
    CLOSE Procedure;

4.动态SQL类型四: 有输入参数和结果集,在编译时尚不知道参数和结果集
    (1).用游标的形式
    DECLARE Cursor DYNAMIC CURSOR FOR DynamicStagingArea;
    PREPARE DynamicStagingArea FROM SQLStatement {USING TransactionObject};
    DESCRIBE DynamicStagingArea INTO DynamicDescriptionArea;
    OPEN DYNAMIC Cursor USING DESCRIPTOR DynamicDescriptionArea;
    FETCT Cursor USING DESCRIPTOR DynamicDescriptionArea;
    CLOSE Cursor;
    ·DynamicDescriptionArea: 动态描述区变量,通常为SQLDA
    ·SQLDA属性:
        ·NumInputs    //输入参数个数
        ·NumOutputs   //输出参数个数
        ·InParmType   //输入参数类型,数组,数据类型为ParmType
        ·OutParmType  //输出参数类型,数组,数据类型为ParmType
    ·设定输入参数序列值的函数:
        ·SetDynamicParam
    ·获得输出参数值的函数:
        ·GetDynamicDate
        ·GetDynamicString
        ·GetDynamicTime
        ·GetDynamicDateTime
        ·GetDynamicNumber

(2).用存储过程的形式
    DECLARE Procedure DYNAMIC PROCEDURE FOR DynamicStagingArea;
    PREPARE DynamicStagingArea FROM SQLStatement {USING TransactionObject};
    DESCRIBE DynamicStagingArea INTO DynamicDescriptionArea;
    OPEN DYNAMIC Procedure USING DESCRIPTOR DynamicDescriptionArea;
    FETCT Procedure USING DESCRIPTOR DynamicDescriptionArea;
    CLOSE Procedure;

PowerBuilder学习笔记(2)PB与SQL语言相关推荐

  1. PowerBuilder学习笔记(4)数据窗口(DataWindow)

    PowerBuilder学习笔记(4)数据窗口(DataWindow) 一.数据窗口对象(Object)与数据窗口控件(Control)     数据窗口对象是利用PowerBuilder所提供的数据 ...

  2. [go学习笔记.第二章] 2.go语言的开发工具以及安装和配置SDK

    一.工具介绍: 1.Visual Studio Code 一个运行于Mac,Windows,和linux上的,默认提供Go语言的语法高亮的IED,可以安装Go语言插件,还可以支持智能提示,编译运行等功 ...

  3. 【SQL学习笔记】之数据定义语言(DDL)

    SQL语言的学习可以简单地分为以下五个部分: 数据查询语言(DQL):select 数据操作语言(DML):insert.update.delete 数据定义语言(DDL):create.alter. ...

  4. JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)

    数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...

  5. 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第01章 语言处理与Python

    第01章 语言处理与Python 1.1 语言计算:文本和单词 Python入门 NLTK 入门 搜索文本 计数词汇 1.2 近观Python:将文本当做词链表 链表(list,也叫列表) 索引列表 ...

  6. 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第11章 语言数据管理

    第11章 语言数据管理 11.1 语料库结构:一个案例研究 主要设计特点 基本数据类型 11.2 语料库生命周期 语料库创建的三种方案 质量控制 维护与演变 11.3 数据采集 从网上获取数据 从字处 ...

  7. oracle中值集限定词为灰色,《Oracle从入门到精通》读书笔记第四章 SQL语言基础之一...

    4.1 SQL语言概述 4.1.1 SQL语言的特点 1.集合性 2.统一性 3.易于移植性 4.1.2 SQL语言的分类 1.数据查询语言(DQL)- select语句,查询数据 2.数据操纵语言( ...

  8. MySQL学习笔记——第2章 SQL的基本概念和MySQL简介

    文章目录 2.1 SQL的基本概念 2.2 MySQL简介 2.3 MySQL数据库管理 2.1 SQL的基本概念 SQL(Structured Query Language):结构化查询语言 数据查 ...

  9. 数据库学习笔记7关系数据库标准语言SQL

    SQL概述 目前,没有一个数据库系统能够支持SQL标准的所有概念和特性 许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改,有可以支持标准以外的一些功能特性 SQL的特点 SQL集数据查询(d ...

最新文章

  1. PHP 表单的提交完美示例
  2. 使用Flex图表组件
  3. css3 下边框缓缓划过_一篇文章带你了解CSS3按钮知识
  4. java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
  5. python求三个数中最小(大)的元素
  6. python 模块 包 库_模块(包、库)
  7. 数组中最大连续子数组和,最大连续子数组积,最大递增子序列
  8. c语言数组蛇形编程,C语言每天小练(二)——蛇形数组
  9. 孩子上了高一突然学不懂了,该怎么办?
  10. 三维重建-立体校正(Recitification)
  11. CarMaker与NS3联合仿真平台--安装
  12. 《Perl语言入门》
  13. 大工微电子器件可靠性基础作业四威布尔分布小题求参数m和t0
  14. Android 11 Beta 版本发布和相关活动推迟说明
  15. 常见Bugger篇章一
  16. React-native 开启DEBUG模式后应用闪退
  17. 微信小程序webview清除缓存、微信公众号h5清除缓存、页面白屏、空白、不刷新问题
  18. 3.1递归实现逆序输出整数
  19. 关于抽象类中的抽象方法和非抽象方法的问题
  20. java抽象类变量_Java抽象类

热门文章

  1. 最适合初学者的21个机器学习项目,附实战代码+数据集
  2. HTML页面跳转的五种方法分享。
  3. 机器学习与大数据基础知识(二)
  4. 13变积分限函数求极限问题
  5. 言论管制_您的言论:如何设置新手证明计算机
  6. 下载spotify音乐_如何在Spotify上发现新音乐
  7. VMware虚拟机的创建和启动,保姆式教学
  8. STC8H驱动hub75e接口的64*64LED点阵屏
  9. 树莓派4B上多版本python切换(一)
  10. Struts2拦截器入门