机房——存储过程的应用

   日期:2020-06-02     浏览:128    评论:0    
核心提示:存储过程是什么?是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中。一次编译,永久有效使用存储过程有什么好处?重复使用,减少开发人员工作量存储过程只需要在创建时进行编译,以后每次调用此存储过程都不需要在进行编译,而一般的SQL语句每执行一次就编译一次,所以使用存储过程可以提高数据库执行速度在机房中的应用是怎样的呢?小伙伴们,你们在敲机房时有没有过这样的疑惑?比如,很多窗体中都会用到查询student_Info表中cardno字段的SQL语句:txtSQL=sele数据库

目录

存储过程是什么?

使用存储过程有什么好处?

在机房中的应用是怎样应用的呢?

总结

存储过程是什么?

是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中。一次编译,永久有效

 

使用存储过程有什么好处?

重复使用,减少开发人员工作量

存储过程只需要在创建时进行编译,以后每次调用此存储过程都不需要在进行编译,而一般的SQL语句每执行一次就编译一次,所以使用存储过程可以提高数据库执行速度

 

在机房中的应用是怎样应用的呢?

小伙伴们,你们在敲机房时有没有过这样的疑惑?比如,很多窗体中都会用到查询student_Info表中cardno字段的SQL语句:

txtSQL="select * from student_Info where cardno= '" & txtcard.Text & "'"

每查询一次这样的SQL语句,都会很占用我们的内存,那有没有什么办法既能减少占用的内存又能减少这样的工作量呢?存储过程可以

实例应用,如下

第一步,在Microsoft SQL Server Management Studio 18中创建存储过程

create proc proc_student1
@cardno varchar(10)
as
    select * from student_Info where cardno=@cardno

第二步,在VB6代码中调用

实例1.在充值窗体中:当点击确定时,需要判断输入的卡号是否在student_Info表中存在

                              

 '调用存储过程proc_student1,查询卡号
stxtSQL = "exec proc_student1 @cardno = '" & txtcard.Text & "'"
Set srst = ExecuteSQL(stxtSQL, smsgText)
    
    '判断是否存在此卡号
    If srst.EOF Then                                  
        MsgBox "此卡号不存在或已经不再使用!", 0 + 48, "温馨提示"
        txtcard.Text = ""
        txtcard.SetFocus
        Exit Sub
    Else
        
        '更新student_Info表
    end if

 

实例2,在注册窗体中的应用:当点击存盘按钮,判断输入的卡号是否在student_Info表中存在

             

’调用存储过程,查询卡号
txtSQL = "exec proc_student1 @cardno = '" & txtcard.Text & "'"
Set rst = ExecuteSQL(txtSQL, msgText)
    
    ’判断是否有重复卡号
    If rst.EOF = False Then
        MsgBox "卡号已存在,请重新输入卡号!", 0 + 48, "温馨提示"
        txtcard.Text = ""
        txtcard.SetFocus
        Exit Sub
    Else

看,在SQL Server中创建了一个存储过程,这么多窗体都可以调用它,是不是很方便呢?

 

那如果同时查询多个条件使用存储过程可不可以呢?答案绝对是可以的

实例:

在机房结账时,我们需要选择下拉框中的操作员或管理员对他们进行结账,在查询表时也就要查询相应操作员、管理员的用户id,并且没有结账的

        

 

在VB中是怎么样的呢?

 '购卡
txtSQL = "select * from student_Info where UserID = '" & comboLavel.Text & "' and Ischeck = '" & "未结账" & "'"
Set rst = ExecuteSQL(txtSQL, msgText)

如果是使用存储过程是怎样的呢?

第一步:在SQL Server中编写创建语句

ALTER proc p_recharge
@userid int,
@status varchar(10),
as
	select * from student_Info where UserID=@userid and status=@status

第二步:在VB中调用

txtSQL="exec p_recharge @userid= '" & comboLavel.Text & "' ,@status = '" & 未结账" "'"
set rst=ExecuteSQL(txtSQL, msgText)

 

总结

存储过程好似一块砖,哪儿需要就往哪儿搬,既方便用还不占地。

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服