《高级窗口控件》PPT课件.ppt

上传人:牧羊曲112 文档编号:5623725 上传时间:2023-08-03 格式:PPT 页数:40 大小:622KB
返回 下载 相关 举报
《高级窗口控件》PPT课件.ppt_第1页
第1页 / 共40页
《高级窗口控件》PPT课件.ppt_第2页
第2页 / 共40页
《高级窗口控件》PPT课件.ppt_第3页
第3页 / 共40页
《高级窗口控件》PPT课件.ppt_第4页
第4页 / 共40页
《高级窗口控件》PPT课件.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《高级窗口控件》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《高级窗口控件》PPT课件.ppt(40页珍藏版)》请在三一办公上搜索。

1、第8章 SQL语句和游标,8.1SQL语句8.2游标的使用8.3SQL语句和游标编程实例小 结,返回总目录,8.1SQL语句,8.1.1 SQL语句的作用8.1.2 SQL语句的基本格式8.1.3 SQL语句的应用举例8.1.4 粘贴SQL语句,返回章目录,8.1.1 SQL语句的作用,PowerScript提供了一整套嵌入式SQL语句。利用嵌入式SQL语句,我们能够在程序中灵活地操纵数据库。PowerScript支持在程序中使用嵌入式SQL语句,并且支持在SQL语句中使用具体数据库管理系统(DBMS)特有的SQL语句、函数和保留字,返回本节录,8.1.1 SQL语句的作用,在程序中书写SQL

2、语句的格式为:SQL语句;整个SQL语句可以写在一行,也可以写成更易理解的多行格式,只要在语句结束处放上一个分号(;)即可。在SQL语句中可以使用常量或合法的变量,但使用变量时需在变量前加个冒号(:)(通常称作绑定变量或引用变量),多个变量或常量之间用逗号(,)分隔。我们向“学生基本情况”表中插入数据项。事先创建好表,表名为“学生基本情况”。,返回本节录,8.1.2 SQL语句的基本格式,1.SELECT语句 单行SELECT语句从数据库中检索一条记录,如果找到多条满足条件的记录,则产生错误(后续章节将介绍读取多条数据库记录的游标方法)。其语法格式为SELECT FieldsList INTO

3、 VarList FROM TableList WHERE CriteriaUSING TransactionObject;,返回本节录,8.1.2 SQL语句的基本格式,2.INSERT语句 用INSERT语句向数据库中插入一条记录。其语法格式为INSERT INTO TableName(FieldName,.)VALUES(ValueOfField,.)USING TransactionObject;,返回本节录,8.1.2 SQL语句的基本格式,3.UPDATE语句 用UPDATE语句修改表中指定的数据。其语法格式为UPDATE TableNameSET FieldName=Value,

4、FieldName=Value,.WHERE CriteriaUSING TransactionObject;,返回本节录,8.1.2 SQL语句的基本格式,4.DELETE语句 使用DELETE语句删除表中的数据。其语法格式为DELETE FROM TableName WHERE CriteriaUSING TransactionObject;,返回本节录,8.1.3 SQL语句的应用举例,1.检查SQL语句执行情况嵌入式SQL语句的执行有可能成功,也有可能失败,良好的编程风格对每条可执行的SQL语句都会检查其执行情况。每当执行一条SQL语句后,与该语句相关的事务对象的SQLCode属性都给

5、出一个值指示SQL语句的执行是否成功。SQLCode取值为:0:最近一次SQL语句执行成功。-1:最近一次SQL语句执行失败。100:最近一次SQL语句没有返回数据。,返回本节录,8.1.3 SQL语句的应用举例,2.SQL语句的应用举例建立一个应用。连接数据库(MSS SQL Server)。创建上表。建立如图81所示界面。,返回本节录,8.1.4 粘贴SQL语句,SQL语句虽不难学,但要记忆十分清楚也并不容易。PowerBuilder提供了图形化生成SQL语句的工具画板,利用它能够用交互方式定义SQL语句并将其粘贴到程序中。PowerBuilder的SQL语句画板能够构造三类语句:游标、非

6、游标和过程。非游标SQL语句对应于单行SELECT、INSERT、UPDATE和DELETE语句。下面以构造SELECT语句为例说明基本操作过程,并扼要说明其他语句的粘贴方法。,返回本节录,8.1.4 粘贴SQL语句,粘贴过程如图812、图813、图814、图815、图816所示。如图812所示,在脚本编辑窗口中单击鼠标右键选择要粘贴的语句。,返回本节录,8.1.4 粘贴SQL语句,如图813所示,选择表,返回本节录,8.1.4 粘贴SQL语句,在如图814所示的窗口中对选中表的字段进行选择。,返回本节录,8.1.4 粘贴SQL语句,单击此时画板的“Design.Into Variables.

7、”弹出如图815所示画面,返回本节录,8.1.4 粘贴SQL语句,输入程序变量,单击图上“OK”按钮提交返回结果,如图816所示。,返回本节录,8.1.4 粘贴SQL语句,在数据库画板中我们也可以对在编写程序时粘贴所需要的SQL语句,具体过程如下:双击图817中的一个图标例如双击“SELECT”进入如图818所示的选择表窗口,返回本节录,8.1.4 粘贴SQL语句,单击“Open”按钮进入图819所示窗口,返回本节录,8.1.4 粘贴SQL语句,单击工具栏上的“Return”按钮进入图820,我们可以看到SQL语句。,返回本节录,8.1.4 粘贴SQL语句,可以使用“Ctrl+L”得到如图82

8、1所示结果。,返回本节录,本节完,8.2 游标的使用,8.2.1 游标的含义及作用8.2.2 游标的使用过程8.2.3 声明游标(DECLARE语句)8.2.4 打开游标(OPEN语句)8.2.5 提取数据(FETCH语句)8.2.6 关闭游标(CLOSE语句)8.2.7 使用Where子句,返回章目录,8.2.1 游标的含义及作用,选取多行数据时必须定义游标。所谓游标可以理解成一个返回结果集合的指针,使用该指针可以对返回的结果逐条处理。事实上,DataWindow可以替代游标进行从后台数据库查询多条记录的复杂操作,但是,同DataWindow和DataStore相比,游标也有其自身的优点,比

9、如系统资源占用少,操作灵活,可根据需要定义变量类型,如全局、实例、局部类型和访问类型(如私有或公共)等,返回本节录,8.2.2 游标的使用过程,游标典型的使用过程一般为:(1)用DECLARE说明游标;(2)用OPEN语句打开游标;(3)使用FETCH语句读取一行数据;(4)处理数据;(5)判断是否已经读完所有数据,未读完时重复执行35步;(6)使用CLOSE语句关闭游标。总之使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标。下面分别介绍DECLARE、OPEN、FETCH、CLOSE语句。,返回本节录,8.2.3 声明游标(DECLARE语句),像使用其他类型的变量一样,使用

10、一个游标之前,首先应当声明它。游标的声明包括两个部分:游标的名称和这个游标所用到的SQL语句。使用游标前需要用DECLARE语句说明游标。其语法格式为:DECLARE CursorName CURSOR FOR Select StatementUSING TransactionObject;其中,CursorName是游标的名称,可以使用任何有效的标识符来表示;SelectStatement是任何有效的SELECT语句;TransactionObject是事务对象名,缺省时使用SQLCA。,返回本节录,8.2.4 打开游标(OPEN语句),游标声明后在其他操作之前,必须打开它,打开已经说明的游

11、标并执行相应的SELECT语句。其语法格式为:OPEN CursorName;其中CursorName是已经用DECLARE语句说明的游标名,返回本节录,8.2.5 提取数据(FETCH语句),当使用OPEN语句打开游标并在数据库中执行查询后,我们还不能立即利用查询结果集中的数据,必须用FETCH语句来读取数据。FETCH语句是游标使用的核心。一条FETCH语句一次可以将一条记录放入程序员指定的变量中。在DataWindow和DataStore中,执行了Retrieve()函数以后,查询的所有结果全部可以得到;而使用游标,我们只能逐条记录得到查询结果。已经声明并打开一个游标后,我们就可以将数据

12、放入任意的变量中。在FETCH语句中可以指定游标的名称和目标变量的名称,返回本节录,8.2.5 提取数据(FETCH语句),FETCH语句从游标中读取当前记录并把它保存到指定的变量中。当数据库支持下述用法时,还可以使用FETCH FIRST、FETCH PRIOR、FETCH LAST。FETCH语句的语法格式为:FETCH CursorName INTO HostVariableList;其中,CursorName是OPEN语句打开的游标名;HostVariableList是与SELECT语句中选择字段相对应的主变量列表。,返回本节录,8.2.6 关闭游标(CLOSE语句),CLOSE语句关

13、闭先前打开的游标。其语法格式为:CLOSE CursorName;其中CursorName是先前打开游标的名称。关闭游标后,就不能再使用FETCH语句从游标中读取数据了。下面是关闭游标的示例:CLOSE xhxm;注意:在游标操作的最后,不要忘记关闭游标,要养成良好的编程习惯,以使系统释放游标占用的资源。,返回本节录,8.2.7 使用Where子句,DECLARE语句的作用只是定义一个游标,在OPEN语句中这个游标才会真正地被执行。了解了这些,我们就可以很方便地实现这样的功能在DECLARE的WHERE子句中加入变量作参数,如下所示:Dec fenshu.定义分数变量fenshu=dec(dd

14、lb1.text)DECLARE xhxm CURSOR FOR.声明游标SELECT xh,xm FROM chengjibiao WHERE shuxue=:fenshu;OPEN xhxm;.打开游标 tring xh,xm.定义学号、姓名变量DO WHILE SQLCA.SQLCode=0FETCH xhxm INTO:xh,:xm;.读取数据,返回本节录,8.2.7 使用Where子句,LOOP CLOSE xhxm;.关闭游标同其他变量一样,我们也可以定义游标的访问类型:全局、共享、实例或局部,游标变量的命名规则同其他变量一样。如果连接的数据库管理系统支持存储过程,那么在Power

15、Script中就可以使用定义在数据库中的存储过程。,返回本节录,8.2.7 使用Where子句,使用存储过程的方法与游标十分类似:首先用DECLARE语句说明存储过程(其语法请参看联机帮助),然后用EXECUTE语句执行已说明的过程,再使用FETCH语句读取各条记录,最后用CLOSE语句关闭存储过程。在PowerScript中使用存储过程前,应该首先在数据库中定义所需的存储过程。使用存储过程能够提高应用程序的执行效率。应该注意到,并非所有的数据库管理系统都支持存储过程。注意 打开游标或存储过程后,如果要使用COMMIT或ROLLBACK语句,必须十分小心,因为这两个语句将关闭游标或存储过程。,

16、本节完,返回本节录,8.3 SQL语句和游标编程实例,例说明 本例将演示如何创建一个日用品管理系统登录窗口。通过对用户名和密码的验证进入系统。当密码输入错误时,提示有三次机会,当第三次还没有输入正确时,启动此系统将失败,其界面如图822所示。,返回章目录,8.3 SQL语句和游标编程实例,设计思路 本例中用户名下拉列表框使用游标从数据库中提取数据,用户名下拉列表框中的内容可以根据数据库内容的改变而变化;密码的验证是通过SQL语句对数据库中的用户名和密码的比较,得出用户是否有权登录此系统。,返回本节录,8.3 SQL语句和游标编程实例,实现过程 1.连接数据库,创建表“PassWord”。主要字

17、段有用户名、密码,如图823所示。下面的操作中所提取的数据将从该表中得到。2.在工作区中创建窗口名称为:w Login系统登录打开的密码验证窗口。3.为登录窗口添加如图822所示的控件:日用品管理系统静态文本(st1),用户名(st2),密码(st3),下拉列表(ddlb1),密码输入单行文本(sle1),确定按钮(cb1),取消按钮(cb2)。将各控件按图822所示布置。4.代码的编写。,返回本节录,8.3 SQL语句和游标编程实例,(1)为窗口(w Login)定义变量(Instance Variables):Integer Enter number.记录登录次数变量(2)为窗口(w Lo

18、gin)的OPEN事件编写脚本:String Name Enter Number=0.记录登录次数变量sle1.Text=ddlb1.SetFocus().下面代码使用游标提取数据库中的数据添加到下拉列表框中DECLARE C1CURSOR FOR SELECT用户名FROM PassWord;OPEN C1;FETCH C1INTO:Name;Do While SQLCa.SQLCode=0 ddlb1.AddItem(Name)FETCH C1INTO:Name;Loop CLOSE C1;.下列代码将单行文本与按钮1设为不可用If sle1.Enabled=TRUE Then sle1.

19、Enabled=FALSE End if If cb1.Enabled=TRUE Then cb1.Enabled=FALSE End if,返回本节录,8.3 SQL语句和游标编程实例,(3)为下拉列表(ddlb1)的SelectionChanged事件添加代码:sle1.Enabled=TRUE cb1.Enabled=TRUE(4)选择所需要的用户名及输入密码之后就进入密码验证阶段(确定按钮的单击事件代码):Integer number.从数据库PassWord中验证用户名,密码是否正确,正确时number不为零SELECT count()INTO:number FROM PassWor

20、d Where用户名=:ddlb1.Text and密码=:sle1.Text USING SQLCA;If SQLCA.SQLCode100Then If SQLCA.SQLCode=-1Then MessageBox(系统错误,登录失败!n错误代码为:+String(SQLCA.SQLDBCode)+n错误信息为:+SQLCA.SQLErrText+n请与系统员联系!,StopSign!),返回本节录,8.3 SQL语句和游标编程实例,.当系统登录失败时将弹出如图824所示的对话框 Halt End if End ifIf number=0Then MessageBox(提示信息,口令非法

21、,您还有+String(3-enter number)+次重输机会!,Exclamation!),返回本节录,8.3 SQL语句和游标编程实例,.当您输入的口令有误时将弹出图825所示对话框,返回本节录,8.3 SQL语句和游标编程实例,Enter number=Enter number+1 If Enter number2ThenMessageBox(提示信息,非法用户,您无权登录本系统!,StopSign!).当您三次输入的口令都不正确时将弹出如图826所示对话框 Close(Parent)Return End ifReturn Else cb2.Enabled=TRUE MessageBox(登录信息,登录信息正确,欢迎使用本系统!)Open(w main)Close(parent)End if,本节完,返回本节录,小 结,本章主要介绍了PowerScript语言支持的标准嵌入式SQL语句的语法,并列举了大量的实例帮助读者理解。应在熟练运用SQL语句的基础上,提高编写SQL语句的质量,以提高整个应用程序的性能。SQL语句用法比较灵活,如创建表、删除表等。本章介绍了游标的使用,列举了游标使用的例子,在学习过程中可以参考,但游标的编程比较复杂,要能够熟练运用游标必须多做一些练习。,返回章目录,本节完,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号