当前位置:文档之家› 08 第08章 VB子程序和函数过程

08 第08章 VB子程序和函数过程

VB6.0函数

Abs 函数返回数的绝对值。 And 运算符执行两个表达式的逻辑连接。 Array 函数返回含一数组的变体。 Asc 函数返回字符串首字母的ANSI 字符代码。 赋值运算符(=) 给变量或属性赋值。 Atn 函数返回数的反正切值。 调用语句将控制移交Sub 或Function 过程。 CBool 函数返回已被转换为Boolean 子类型的变体的表达式。 CByte 函数返回已被转换为字节子类型的变体的表达式。 CCur 函数返回已被转换为货币子类型的变体的表达式。 CDate 函数返回已被转换为日期子类型的变体的表达式。 CDbl 函数返回已被转换为双精度子类型的变体的表达式。 Chr 函数返回指定ANSI 字符码的字符。 CInt 函数返回已被转换为整数子类型的变体的表达式。 Class 对象提供对已创建的类的事件的访问。 Class 语句声明类名 Clear 方法清除Err 对象的所有属性设置。 CLng 函数返回已被转换为Long 子类型的变体的表达式。 颜色常数颜色常数列表。 比较常数用于比较运算的常数列表。 连接运算符(&) 强制两个表达式的字符串连接。 Const 语句声明用于字母值的常数。 Cos 函数返回角度的余弦值。 CreateObject 函数创建并返回对“自动”对象的引用。 CSng 函数返回已被转换为单精度子类型的变体的表达式。 CStr 函数返回已被转换为字符串子类型的变体的表达式。 日期和时间常数在日期和时间运算中用来定义星期几和其他常数的常数列表。日期格式常数用于日期和时间格式的常数列表。 Date 函数返回当前系统日期。 DateAdd 函数返回加上了指定的时间间隔的日期。 DateDiff 函数返回两个日期之间的间隔。 DatePart 函数返回给定日期的指定部分。 DateSerial 函数返回指定年月日的日期子类型的变体。 DateValue 函数返回日期子类型的变体。 Day 函数返回日期,取值范围为1 至31。 Description 属性返回或者设置说明某个错误的字符串。 Dictionary 对象存储数据键、项目对的对象。 Dim 语句声明变量并分配存储空间。 除法运算符(/) 两数相除并以浮点数格式返回商。 Do...Loop 语句当条件为True 或者当条件变为True 时,重复一语句块。Empty 表示尚未初始化的变量值。 Eqv 运算符使两个表达式相等。 Erase 语句重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象含有关于运行时错误的信息。

实验6+过程_函数和程序...

实验6过程、函数和程序包 姓名:学号: 专业:班级: 同组人:无实验日期:2013/7/21 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 6.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 注:测试时,文件名请用全名(即包含路径,如:@c:\aa) 给出运行结果:

6.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果

select * from Exam_Table; 给出执行的最后结果: 2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果:

第10章 存储过程、函数和包

第10章存储过程、函数和包 存储过程(PROCEDURE)、函数(FUNCTION)和包(PAKAGE)是以编译的形式存储在数据库中的数据库的对象,并成为数据库的一部分,可作为数据库的对象通过名字被调用和访问。 存储过程通常是实现一定功能的模块;函数通常用于计算,并返回计算结果;包分为包头和包体;用于捆绑存放相关的存储过程和函数,起到对模块归类打包的作用。 存储过程、函数和包是数据库应用程序开发的重要方法,三者既有区别,也有联系。 ?存储过程和存储函数。 ?过程的参数和调用。 ?包和包的应用。 10.1 存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的。 10.1.1 认识存储过程和函数 和PL/SQL程序相比,存储过程有很多优点,具体归纳如下: ·存储过程和函数以命名的数据库对象形式存储于数据库当中。存储在数据库中的优点是很明显的,因为代码不保存在本地,用户可以在任何客户机上登录到数据库,并调用或修改代码。 ·存储过程和函数可由数据库提供安全保证,要想使用存储过程和函数,需要有存储过程和函数的所有者的授权,只有被授权的用户或创建者本身才能执行存储过程或调用函数。 ·存储过程和函数的信息是写入数据字典的,所以存储过程可以看作是一个公用模块,用户编写的PL/SQL程序或其他存储过程都可以调用它(但存储过程和函数不能调用PL/SQL 程序)。一个重复使用的功能,可以设计成为存储过程,比如:显示一张工资统计表,可以设计成为存储过程;一个经常调用的计算,可以设计成为存储函数;根据雇员编号返回雇员的姓名,可以设计成存储函数。 ·像其他高级语言的过程和函数一样,可以传递参数给存储过程或函数,参数的传递也有多种方式。存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有一定的数据类型,像其他的标准函数一样,我们可以通过对函数名的调用返回函数值。 存储过程和函数需要进行编译,以排除语法错误,只有编译通过才能调用。

VB函数与过程

VB函数与过程 教学目的: 1、熟悉VB中函数的含义及函数的分类。 2、掌握VB中用户函数的定义及应用。 3、掌握VB中通用过程的含义及使用方法。 教学重点: 1、VB中函数基本概念的理解。 2、VB中用户函数定义方法。 3、VB中变量的作用范围。 4、VB中通用过程的应用。 课时安排: 理论教学安排6课时,上机练习8课时 一、VB通用过程 1、重复使用的程序段独立定义为过程。 2、过程的分类 (1)事件过程(例如click,dblclick,……) (2)通用过程(由用户定义,可供VB过程来调用;用户定义的过程称为“子过程”)3、通用调用流程: 程序过程: (1)调用过程可以事件过程或者用户定义过程。调用过程按顺序执行时,遇到CALL命令则转向指定的子过程。 (2)子过程按顺序执行,遇到子过程的结束语句时,返回到调用过程的断点后一条语句(CALL的下一条语句)。

(3)调用过程接着执行,遇CALL命令重复(2);否则执行到程序结束。 4、VB中的通用过程: (1)SUB(过程)------无返值 (2)FUNCTION(函数)-------有返值 二、SUB过程 上机练习: P165例7.1 Private Sub Form_Load() Show Call sub1(30) Call sub2 Call sub2 Call sub2 Call sub2 Call sub2 Call sub2 Call sub1(30) End Sub Private Sub sub1(n) Print String(n, "*") 'string函数用来重复出现n次"*" End Sub Private Sub sub2() Print "*"; T ab(30); "*" End Sub 1、Sub过程的定义 Private|public|static sub 过程名(形式参数列表) 过程语句块(可以含有Exit sub) End sub (1)Private表示过程只在当前模块有效,public则表示在整个程序范围都有效。 (2)Static表示过程的局部变量静态分配空间(局部变量保持到整个程序结束才释放,而动态变量则是过程退出就释放变量。) 2、Sub过程的建立 (1)窗体中打开代码窗口(.frm),选择通用过程,直接编写sub过程。 (2)在标准模块(.bas)中来创建sub过程。 第一步,在“工程”菜单或工程面板的快捷菜单中选择“添加模块”。 第二步,在“工具”菜单中选择“添加过程”,弹出“过程对话框”,输入过程名,录入过程代码;也可以直接在通用代码框中录入过程。 注意:在标准模块书写通用过程时,单独保存.bas的模块文件。如果过程中使用窗体等对象,不能省缺对象名。 3、Sub过程的调用 Call 过程名(实参数表) 过程名实参表 上机练习:

VB中sub过程与function函数的区别

function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有 function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。 Sub 过程与Function 过程的区别: 1.Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型”定义函数返回值类型。 2.Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。 3.调用过程:调用Sub 过程与Function 过程不同。调用Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。 4.调用Sub 过程有两种方法: 以下两个语句都调用了名为MyProc 的Sub 过程。 Call MyProc (FirstArgument, SecondArgument) MyProc FirstArgument, SecondArgument 注意当使用Call 语法时,参数必须在括号内。若省略Call 关键字,则也必须省略参数两边的括号。 在VB中,子过程与函数过程只有一处区别(要学好VB一定要记住),区别就是:子过程没有返回值,函数过程有返回值。 子过程用于编写一些代码的集合,函数过程用于建立函数。我兴个例吧。 例如,我要做多处要做如下事件,我只要编写一个子过程,在其它事件下,我只要把子过程的名称写下就行了。 Private Sub ABC(A As Integer, B As Integer, C As Integer) A = 1 B = 1 C = 1 End Sub Private Sub Command1_Click() ABC '按扭一就调用了该子过程了,而不用再写子过程的代码。 End Sub Private Sub Command2_Click() ABC '按扭二就调用了该子过程了,而不用再写子过程的代码。 End Sub

过程_函数和程序包

过程、函数和和序包 姓名:学号:专业:班级:同组人:实验日期: 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 9.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 给出运行结果:

9.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果 select * from Exam_Table; 给出执行的最后结果:

2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp1(v_in in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp1('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果: (2)-- in out类型参数 create or replace procedure mp(name_in in varchar2, name_out out varchar2, name_in_out in out varchar2) is begin dbms_output.put_line(name_in); name_out:= '返回的参数name_out是' || name_in; name_in_out := 'name_in_out是' || name_in || name_in_out; end; variable name_out varchar2(100); variable name_in_out varchar2(20); exec mp('11',:name_out,:name_in_out);

VB系统函数

VB系统函数 Abs 函数返回数的绝对值。 And 运算符执行两个表达式的逻辑连接。 Array 函数返回含一数组的变体。 Asc 函数返回字符串首字母的ANSI 字符代码。 赋值运算符(=) 给变量或属性赋值。 Atn 函数返回数的反正切值。 调用语句将控制移交Sub 或Function 过程。 CBool 函数返回已被转换为Boolean 子类型的变体的表达式。 CByte 函数返回已被转换为字节子类型的变体的表达式。 CCur 函数返回已被转换为货币子类型的变体的表达式。 CDate 函数返回已被转换为日期子类型的变体的表达式。 CDbl 函数返回已被转换为双精度子类型的变体的表达式。 Chr 函数返回指定ANSI 字符码的字符。 CInt 函数返回已被转换为整数子类型的变体的表达式。 Class 对象提供对已创建的类的事件的访问。 Class 语句声明类名 Clear 方法清除Err 对象的所有属性设置。 CLng 函数返回已被转换为Long 子类型的变体的表达式。 颜色常数颜色常数列表。 比较常数用于比较运算的常数列表。 连接运算符(&) 强制两个表达式的字符串连接。 Const 语句声明用于字母值的常数。 Cos 函数返回角度的余弦值。 CreateObject 函数创建并返回对“自动”对象的引用。 CSng 函数返回已被转换为单精度子类型的变体的表达式。 CStr 函数返回已被转换为字符串子类型的变体的表达式。 日期和时间常数在日期和时间运算中用来定义星期几和其他常数的常数列表。日期格式常数用于日期和时间格式的常数列表。 Date 函数返回当前系统日期。 DateAdd 函数返回加上了指定的时间间隔的日期。 DateDiff 函数返回两个日期之间的间隔。 DatePart 函数返回给定日期的指定部分。 DateSerial 函数返回指定年月日的日期子类型的变体。 DateValue 函数返回日期子类型的变体。 Day 函数返回日期,取值范围为 1 至31。 Description 属性返回或者设置说明某个错误的字符串。 Dictionary 对象存储数据键、项目对的对象。 Dim 语句声明变量并分配存储空间。 除法运算符(/) 两数相除并以浮点数格式返回商。 Do...Loop 语句当条件为True 或者当条件变为True 时,重复一语句块。

实验5 过程 函数 和程序包

大型数据库技术实验报告实验课程:大型数据库技术(Oracle) 专业 :班级: 姓名:学号:同组人:实验日期: 实验项目实验八过程、函数和和程序包 实验 类型 设计性实验 目的要求?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用?熟悉程序包的使用 (实验内容及步骤) 【实验步骤】 8.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序:成绩

给出运行结果: 8.1.存储过程 1.最简单的存储过程 (1)创建测试表 drop table empl; create table empl( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into empl values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000);

(4)查询执行结果 select * from empl; 给出执行的最后结果: 2.存储过程应用实例:列车购票与退票过程简单模拟 drop table ticket; create table ticket ( trainno varchar2(10), ticketnum varchar2(10), primary key (trainno,ticketnum) ); -- 存储过程声明 create or replace procedure init is begin for i in 1..100 loop insert into ticket values ('1111', to_char(i, '0000')); end loop; for i in 1..100 loop insert into ticket values ('2222', to_char(i, '0000')); end loop; for i in 1..100 loop insert into ticket values ('3333', to_char(i, '0000')); end loop;

王银兵61332111-编写存储过程函数处理数据一(1)

实验十:存储过程、函数和程序包 实验目的: 1.能够正确编写存储过程 2.能够正确定义和使用存储过程参数 3.能够正确调用存储过程 实验要求: 1.按以下步骤完成如下操作,并对出现的现象进行解释 2.将命令和操作过程记录到实验过程记录中 实验步骤和方法: 1.启动本地Oracle服务器 2.以scott用户普通身份连接到PL/SQL developer 3.按要求编写PL/SQL存储过程,并用两种方式调用各个存储过程(在查询中尽量思 考,找到不一样的解题方案) 1)编写给每个员工发放额外补贴500的存储过程。(提示:COMM字段值增加500) 2)创建新增部门的存储过程INSERT_DEPT,部门号、部门名称和部门所在位置 作为参数。(关于参数存储过程的用法:in参数的使用)

1)创建一个通过部门编号返回部门名称的存储函数GET_DEPT_NAME。 2)创建比较两个数大小的函数,返回较大值。

5.按要求编写包: 1)创建管理部门信息的包pacdept,具有从dept表获得指定部门信息,修改部门 名称,添加部门信息的功能(注:各模块应包含异常处理模块)。(可以参考下 一页的案例1)

思考:1、在实验中是否懂得了存储过程以及带参数的存储过程的用法?

【案例1】创建管理雇员信息的包EMPLOYE,具有从EMP表获得雇员信息,修改雇员名称,修改雇员工资和写回EMP表的功能。 步骤1:登录SCOTT账户,输入以下代码,并编译: CREATE OR REPLACE PACKAGE EMPLOYE --包头部分 IS PROCEDURE SHOW_DETAIL; PROCEDURE GET_EMPLOYE(P_EMPNO NUMBER); PROCEDURE SAVE_EMPLOYE; PROCEDURE CHANGE_NAME(P_NEWNAME VARCHAR2); PROCEDURE CHANGE_SAL(P_NEWSAL NUMBER); END EMPLOYE; / CREATE OR REPLACE PACKAGE BODY EMPLOYE --包体部分 IS EMPLOYE EMP%ROWTYPE; -------- 显示雇员信息 -------- PROCEDURE SHOW_DETAIL AS BEGIN DBMS_OUTPUT.PUT_LINE('----- 雇员信息 -----'); DBMS_OUTPUT.PUT_LINE('雇员编号:'||EMPLOYE.EMPNO); DBMS_OUTPUT.PUT_LINE('雇员名称:'||EMPLOYE.ENAME); DBMS_OUTPUT.PUT_LINE('雇员职务:'||EMPLOYE.JOB); DBMS_OUTPUT.PUT_LINE('雇员工资:'||EMPLOYE.SAL); DBMS_OUTPUT.PUT_LINE('部门编号:'||EMPLOYE.DEPTNO); END SHOW_DETAIL; -------- 从EMP表取得一个雇员 --------- PROCEDURE GET_EMPLOYE(P_EMPNO NUMBER) AS BEGIN SELECT * INTO EMPLOYE FROM EMP WHERE EMPNO=P_EMPNO; DBMS_OUTPUT.PUT_LINE('获取雇员'||EMPLOYE.ENAME||'信息成功'); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('获取雇员信息发生错误!'); END GET_EMPLOYE; --------- 保存雇员到EMP表 --------- PROCEDURE SAVE_EMPLOYE AS BEGIN UPDATE EMP SET ENAME=EMPLOYE.ENAME,SAL=EMPLOYE.SAL WHERE EMPNO=EMPLOYE.EMPNO; DBMS_OUTPUT.PUT_LINE('雇员信息保存完成!');

vb函数与表达式练习题

函数与表达式练习题 一、选择题 1、X=-9.8,表达式INT(X)+FIX(-X)的值是( ) A.1 B.17 C.0 D.-1 2. 执行A=9\4后,A的值为( 2 ) A.9/4 B.3 C.2 D.2.25 3.表达式Int(8*sqr(36)*10^(-2)*10+0.5)/10的值是(). (A) .48 (B) .048 (C) .5 (D) .05 4.表达式Val(".123E2CD")的值是(). (A).123 (B) 12.3 (C) 0 (D) .123E2CD 5. 表达式SQR(2^3^2) MOD 7的值为( ) A.0 B.1 C.2 D.3 6.表达式(7\3+1)*(18\5-1)的值是(). (A)8.67 (B)7.8 (C) 6 (D)6.67 7.表达式5^2 Mod 25\2^2的值是(). (A)1 (B)0 (C)6 (D)4 8.表达式25.28 Mod 6.99的值是(). (A)1 (B)5 (C)4 (D)出错 9.下面表达式中,()的运算结果与其他三个不同. (A) Exp(-3.5) (B) Int(-3.5)+0.5 (C) -Abs(-3.5) (D) Sgn(-3.5)-2.5 10.Int(100*Rnd(1))产生的随机整数的闭区间是(). (A) [0,99] (B) [1,100] (C) [0,100] (D) [1,99] 11.产生[10,37]之间的随机整数的Visual Basic表达式是(). (A) Int(Rne(1)*27)+10 (B) Int(Rnd(1)*28)+10 (C) Int(Rnd(1)*27)+11 (D) Int(Rnd(1)*28)+11 12.表达式Int(Rnd(0)+1)+Int(Rnd(1)-1)的值是(). (A) 1 (B) 0 (C) 01 (D) 2 13.表达式Int( - 17.8) +Sgn(17.8)的值是(). (A) 18 (B)-17 (C) -18 (D) -16 14.表达式Int( - 17.8) +Abs(17.8)的值是(). (A) 0 (B) 0.8 (C) - 0.2 (D) 0 34.8 15.表达式Left("how are you",3)的值是(). (A) how (B) are (C) you (D) how are you 16.表达式Right("Biejing",4)的值是(). (A) Bei (B) jing (C) eiji (D) ijin 17.表达式Abs( - 5) +Len("ABCDE")的值是(). (A) 5ABCDE (B) 0 5ABCDE (C) 10 (D) 0 18.表达式Mid("SHANGHAI",6,3)的值是(). (A) SHANGH (B) SHA (C) ANGH (D) HAI 19.函数Len(Str(Val("123.4")))的值为(). (A) 11 (B) 5 (C) 6 (D) 8 20.设A="12345678",则表达式Val(Left(A,4) + Mid(A,4,2))的值为(). (A) 123456 (B) 123445 (C) 8 (D) 6 21.设A="abcdefghijklm",下面()的函数值为"jklm".(多选) (A) Mid(A,10,14) (B) Right(A,4) (C) Mid(A,10,4) (D) Left(A,10,4) 22.函数InStr("VB程序设计教程","程序")的值为(). (A) 1 (B) 2 (C) 3 (D) 4 23.函数Ucase(Mid("Visual basic",8,5))的值为(). (A) Visual (B) basic (C) VISUAL (D) BASIC 24.表达式Str(Len("123")) + Str(77.7)的值为(). (A) 377.7 (B) 3 77.7 (C) 80.7 (D) 12377.7 25.表达式( - 1)*Sgn( - 100 +Int(Rnd*100))的值是(). (A) 0 (B) 1 (C) - 1 (D) 随机函数 26. 15.5\2的结果是__ ___。 (A) 1 (B) 1.5 (C) 7 (D) 8 27. 下列选项中,为字符串常量的是______。 (A) 6/12/2001 (B) "6/12/2001" (C) #6,12,2001# (D) 6,12,2001# 28. 设有如下声明: Dim X As Integer 如果Sgn(X) 的值为-1,则X的值是( ) A) 整数B) 大于0的整数C) 等于0的整数D) 小于0的数 29.在一个语句行内写多条语句时,语句之间应该用()分隔.

vb函数与过程习题精选

第三章函数与过程习题 一、选择题 1.如果要声明一个全局性的符号常量,则应将该声明放在( )。 A.过程中 B.窗体模块的通用声明段中 C.标准模块的通用声明段中 D.窗体模块或标准模块的通用声明段中 2.定义过程的语句为: Sub Suba(X As Single,Y As Single) 则正确的调用语句为( )。 A.Suba 10,12 B.Call Suba("A",Sin(1.57)) C.Call Suba X,Y D.Call Suba(1 2,1 0,x) 3.在窗体的通用段声明变量时,不能使用( )关键字。 A.Dim B.Public C.Private D.Static 4.Sub过程与函数过程最主要的区别是( )。 A.后者可以有参数,而前者则不行 B.前者可以用Call语句直接调用,而后者则不行 C.两种过程的参数传递方式不同 D.前者的过程名不能返回值,而后者的过程名则可以返回值 5.要在过程调用后返回两个值,下列过程定义正确的是( )。 A.Sub Proc(ByVal n,ByVal m) B.Sub Proc(n,ByVal m) C.Sub Proc(n,m) D.Sub Proc(ByVal n,m) 6.在程序模块的开头声明Option Explicit,则( )。 A.这个模块里所用到的变量必须声明后才能使用 B.整个工程里所用到的变量必须声明后才能使用 C.这个模块里所用到的变量不需要声明就能使用 D.整个工程里所用到的变量不需要声明就能使用 7.若希望在离开某过程后还能保存该过程中局部变量的值,则应使用( )关键字在该过程中定义局部变量。 A.Dim B.Private C.Public D.Static 8.在一个多窗口程序中,可以在标准模块或某个窗体模块的通用声明处分别用( )语句定义一个在所有窗体模块中都可以引用的变量IntA。 A.Private IntA As Integer,Public IntA As Integer B.Public IntA As Integer,Private IntA As Integer C.Public IntA As Integer,Public IntA As Integer D.Private IntA As Integer,Private IntA As Integer 9.在应用程序中用“Private Function Fun(X As Integer,Y As Integer)”定义了Fun 函数。调用Fun函数的过程中的变量I、J均定义为Integer型,能正确引用Fun函数的是( )。 ①Print Fun I,J ②Call Fun(I,3.65)

包和子程序(考试复习)

第七章包和子程序 1.1目标 1.过程和函数 2.过程和函数在plsql中调用 3.包 1.2知识点 1.过程和函数的作用,语法结构,参数的类型 2.在plsql语句块中调用函数和过程 3.包和包体的作用,语法结构 1.3难点 1.过程和函数的作用,语法结构,参数的类型 2.包和包体的作用,语法结构 1.4讲解内容 前面Plsql是匿名的存储过程,可以批量执行sql操作,并且可以加入条件控制,但是每次执行的plsql脚本不能在服务器端保存,而过程和函数可以将plsql语句块按功能划分,并保存起来,实现代码的复用,简单的讲,过程和函数是对plsql语句块的封装,是有名字的plsql 语句块。 1.4.1过程 过程语法结构: Create or replace procedure存储过程名称as←创建或重定义存储过程名称, Begin 执行过程的语句块… End; ←执行语句块用begin和end包围,相当于程 序中的{},表示语句块的开始和结束

Create or replace procedure存储过程名称(参数1,参数2)as←创建或重定义存储过程名称, Begin 执行过程的语句块… End; 要点: 1.参数默认是输入参数,注明out为输出参数in out为输入输出参数 2.没有参数的过程和函数,在过程名称后面不用带()括号 3.有参数的过程和函数,形式参数的数据类型不需要指定长度 4.局部变量放在as 和begin之间,begin和end之间是plsql语句块 示例: create or replace procedure pro1 as begin dbms_output.put_line('dd'); end; create or replace procedure pro2(v_val1 in out varchar2,v_val2 in out varchar2) as begin dbms_output.put_line('v_val1:'||v_val1); dbms_output.put_line('v_val2:'||v_val2); end; 1.4.2函数 函数的语法结构 和过程类似,区别在于多了一个返回值 Create or replace function函数名称return类型as←创建或重定义函数,必须带return 和返回一个数据的类型 Begin 函数执行的语句块 return返回值←返回值,和创建函数声明中返回类型要一致 End; 示例: create or replace function fun1 return varchar2as begin return'ddd'; end;

vb过程间参数的传递

一、形式参数与实际参数 1 形式参数:就是在定义函数或过程的时候命名的参数。通俗讲就是一个记号。 2 实际参数:就是在执行时,调用函数或过程时,传递给函数或过程的参数。通俗讲就是实际值。 3 参数嘛,就是一个可变量,它随着使用者的不同而发生变化。举个例子,在中学的时候学过sin(x)函数,这里的x就是形式参数,当你需要求1的正弦值时,你会使用sin(1),这里的1就是实际参数。 4 形参和实参间的关系:两者是在调用的时候进行结合的,通常实参会将取值传递给形参,形参去之后进行函数过程运算,然后可能将某些值经过参数或函数符号返回给调用者。 在过程之间传递参数,形式参数和实际参数是很重要的概念。我们通常说形式参数是过程为了运行的需要预先在内存中保留的地址单元,而实际参数就是在调用过程时放入这些内存地址中进行处理的数据。如果形式参数是一个盒子,那么实际参数就是盒子里面装的东西。在参数传递的过程中,形式参数和实际参数的数据类型要一致。 二、参数传递 函数参数的传递方式有两种,一种是按地址传递,一种是按值传递。 按地址传递:调用函数时,不直接把实参的值“告诉”函数,而是把地址“告诉”它,函数根据这个地址来寻找并处理值,如果函数修改了这个值,也就修改了这个地址对应的值。 按值传递:把值复制一份再给函数,这个值只属于函数,函数对这个值的修改不影响原值。 VBScript中,要按地址传递可在形参前加 ByRef,要按值传递得在形参前加 ByVal,如果什么也不加则表示按地址传递。 1)按值传递

如果在声明过程时,形式参数名前面加上关键字“ByVal”,即规定了在调用此过程时该参数是按值传递的。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所做的改动只影响副本而不会影响变量本身。 代码1 ********************************** Private Sub Command1_Click() Dim num1 As Integer num1 = 5 Print num1 Call MySub(num1) Print num1 ' 输出结果为5 Call MySub2(num1) Print num1 ' 输出结果仍为5 End Sub Private Sub MySub(ByVal A As Integer) A = 10 End Sub Private Sub MySub2(ByVal A As String)

2.1VB语言及程序开发环境

2.1.2VB语言及程序开发环境 一、教学目标 1、知识与技能 掌握VB定义的常用的基本数据类型,常量与变量的定义方法,运算符、函数和表达式的描述。熟悉VB程序设计语言的开发环境,能调试简单的VB程序。 2、方法与过程 本节涉及到基础知识较多,所以要一个一个问题解决,从一个简单的求圆的面积的程序入手,从中分析VB程序一般包括的四部分,基本数据类型、常量与变量,运算符、函数和表达式,而且结合练习来加强对这些新知识的巩固。通过介绍VB程序的开发环境中的菜单、常用工具和常用窗口等,再通过上机操作运行一个程序,让学生更容易上手。 3、情感态度和价值观 这一节是学习VB程序的重要的入门课,授课时要注意结合学生的思路,逐个问题解决,不可一蹴而就。 二、重点难点 1、教学重点 (1)VB常用的的基本数据类型,常量与变量,运算符和表达式 (2)VB程序的开发环境 2、教学难点 把本节的内容加以运用 三、教学环境 1、教材处理 教材选自《广东省普通高中信息技术选修一:算法与程序设计》第二章第一节,教材的内容编排合理,导入的方式也很好,而且能结合练习,所以直接使用教材的内容,不作修改。练习的题量可以适当地增加。 2、预备知识 学生已掌握使用计算机解决问题的四个步骤——分析问题、建立模型、设计算法和编写程序。 3、硬件要求 建议本节课在多媒体电脑教室中完成,有广播教学系统或投影仪。 4、所需软件 学生机要安装VB6.0或以上版本。 5、所需课时 2课时

四、教学过程 导入: 以下是一个“求半径为r的圆的面积”的程序,请你注意观察程序的组成结构及其功能,并思考如下的问题: (1)程序有多少行,每一行的作用是什么? (2)如果按语句的作用区分,这个程序包含几个部分? Private sub command1_click() 定义名为command1_click()的事件过程 Const pi as single=3.14 说明程序中pi是常量∏ Dim r as single,s as single 定义半径r和面积s为单精度实型 r=inputbox(“r=”,”请输入半径”)输入r的值 s=pi*r*r 把表达式pi*r*r的值赋给s print “圆的面积s=”;s把s的值输出到当前的窗体上 End sub 过程结束 考察上述程序,我们容易看到:程序共有代码7行,每一行都是VB的一个语句,VB的程序就是由这样的一组语句组成。每一个语句都是按照一定的规则书写的。 总结上述分析,我们可以得到VB程序的一般包括如下部分: (1)数据类型说明部分 (2)数据的输入部分 (3)数据的处理部分 (4)数据的输出部分 一、基本数据类型 描述客观事物的数、字符以及所有能输入到计算机中,并被计算机程序加工处理的集合称为数据。数据既是计算机程序处理的对象,也是运算产生的结果。 为了更好地处理各种数据,VB定义了多种数据的类型。基本数据类型是系统预先定义的数据类型,表2-1中列出了VB定义的常用的基本数据类型。 例如在上述的程序中,既有单精度实型数的数据(如3.14等),也有字符类型的数据,如“输入半径”、“圆的面积S=”。 二、常量与变量 (1)常量

创建过程、函数和包

创建过程、函数和包 目标: 创建和使用子程序 创建和使用程序包 过程:procedure 过程的参数类型有in、out、in out 类型的!! 函数:function 函数的参数类型只有in类型,不能有out、in out 类型的!! 包:package set serveroutput on Rem =================================================================== Rem 1、创建简单的存储过程,如何执行存储过程 Rem =================================================================== CREATE or replace procedure my_proc AS(用is也行) BEGIN DBMS_OUTPUT.PUT_LINE('这是一个简单的存储过程的例子!'); end my_proc;等价于end; / --下面是在PL/SQL中执行存储过程 begin my_proc;

end; / --下面是在SQLPLUS中执行存储过程 execute my_proc;等价于 exec my_proc; Rem =================================================================== Rem 2、创建带参数的存储过程 Rem =================================================================== create table t( n_var number ); CREATE OR REPLACE PROCEDURE insert_into_t(p_parm in number) AS BEGIN DBMS_OUTPUT.PUT_LINE('---------start----------------------'); insert into t values(p_parm); end insert_into_t; / --下面是在SQLPLUS中执行存储过程 execute insert_into_t(p_parm => 100);

实验9过程-函数和程序包

实验9过程、函数和和序包 姓名:学号: 专业:班级: 同组人:实验日期: 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 9.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 给出运行结果: 9.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果 select * from Exam_Table; 给出执行的最后结果:

2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果: (2)-- in out类型参数 create or replace procedure mp(name_in in varchar2, name_out out varchar2, name_in_out in out varchar2) is begin dbms_output.put_line(name_in); name_out := '返回的参数name_out是' || name_in; name_in_out := 'name_in_out是' || name_in || name_in_out; end; 给出运行结果: (3)定义一个返回多个值的存储过程。 create or replace procedure p_test(name out varchar2,age out number,sex out varchar2,sal out number) is begin name:='scott'; age:=26; sex:='男'; sal:=8000; end; declare v_name varchar2(20); v_age number(10); v_sex varchar2(5); v_sal number(10); begin p_test(v_name,v_age,v_sex,v_sal); dbms_output.put_line(v_name);

相关主题
文本预览
相关文档 最新文档