PowerBuilder学习笔记(2)PB与SQL语言
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语言相关推荐
- PowerBuilder学习笔记(4)数据窗口(DataWindow)
PowerBuilder学习笔记(4)数据窗口(DataWindow) 一.数据窗口对象(Object)与数据窗口控件(Control) 数据窗口对象是利用PowerBuilder所提供的数据 ...
- [go学习笔记.第二章] 2.go语言的开发工具以及安装和配置SDK
一.工具介绍: 1.Visual Studio Code 一个运行于Mac,Windows,和linux上的,默认提供Go语言的语法高亮的IED,可以安装Go语言插件,还可以支持智能提示,编译运行等功 ...
- 【SQL学习笔记】之数据定义语言(DDL)
SQL语言的学习可以简单地分为以下五个部分: 数据查询语言(DQL):select 数据操作语言(DML):insert.update.delete 数据定义语言(DDL):create.alter. ...
- JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)
数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...
- 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第01章 语言处理与Python
第01章 语言处理与Python 1.1 语言计算:文本和单词 Python入门 NLTK 入门 搜索文本 计数词汇 1.2 近观Python:将文本当做词链表 链表(list,也叫列表) 索引列表 ...
- 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第11章 语言数据管理
第11章 语言数据管理 11.1 语料库结构:一个案例研究 主要设计特点 基本数据类型 11.2 语料库生命周期 语料库创建的三种方案 质量控制 维护与演变 11.3 数据采集 从网上获取数据 从字处 ...
- oracle中值集限定词为灰色,《Oracle从入门到精通》读书笔记第四章 SQL语言基础之一...
4.1 SQL语言概述 4.1.1 SQL语言的特点 1.集合性 2.统一性 3.易于移植性 4.1.2 SQL语言的分类 1.数据查询语言(DQL)- select语句,查询数据 2.数据操纵语言( ...
- MySQL学习笔记——第2章 SQL的基本概念和MySQL简介
文章目录 2.1 SQL的基本概念 2.2 MySQL简介 2.3 MySQL数据库管理 2.1 SQL的基本概念 SQL(Structured Query Language):结构化查询语言 数据查 ...
- 数据库学习笔记7关系数据库标准语言SQL
SQL概述 目前,没有一个数据库系统能够支持SQL标准的所有概念和特性 许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改,有可以支持标准以外的一些功能特性 SQL的特点 SQL集数据查询(d ...
最新文章
- PHP 表单的提交完美示例
- 使用Flex图表组件
- css3 下边框缓缓划过_一篇文章带你了解CSS3按钮知识
- java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
- python求三个数中最小(大)的元素
- python 模块 包 库_模块(包、库)
- 数组中最大连续子数组和,最大连续子数组积,最大递增子序列
- c语言数组蛇形编程,C语言每天小练(二)——蛇形数组
- 孩子上了高一突然学不懂了,该怎么办?
- 三维重建-立体校正(Recitification)
- CarMaker与NS3联合仿真平台--安装
- 《Perl语言入门》
- 大工微电子器件可靠性基础作业四威布尔分布小题求参数m和t0
- Android 11 Beta 版本发布和相关活动推迟说明
- 常见Bugger篇章一
- React-native 开启DEBUG模式后应用闪退
- 微信小程序webview清除缓存、微信公众号h5清除缓存、页面白屏、空白、不刷新问题
- 3.1递归实现逆序输出整数
- 关于抽象类中的抽象方法和非抽象方法的问题
- java抽象类变量_Java抽象类