网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

有返回值SQLSERVER存储过程的一个调用方法

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员鉴于大家对十分关注,论文会员在此为大家搜集整理了“有返回值SQLSERVER存储过程的一个调用方法”一文,供大家参考学习


    有返回值SQLServer存储过程的一个调用方法
    有效地调用有返回值的SQLServer存储过程,可以提高PowerBuilder程序运行效率,同时也加强了系统的易维护性及扩展性。通过实例,给出了调用有返回值的SQLServer存储过程中的方法、步骤和获取一个最大ID值的处理方法。
     关键词PowerBuilderSQLServer存储过程返回值中图法分类号TP311.11
    很多PowerBuilder(下简称PB)用户也许还没有调用过SQLServer存储过程,或认为没有这个必要。但有效地
    使用存储过程,不仅能大大提高您的程序运行效率,同时也加强了系统的易维护性及扩展性。例如:历史数据的转
    存、报表数据统计、提供与其他系统的接口、大业务量的处理模块等等,另外,可以让后台高手通过存储过程方式来帮你实现相关功能模块,而完全不依赖任何前端开发工具就能完成相应的工作,充分发挥后台高手的作用。PB用户在调用存储过程时往往希望取得相应的返回值,但很多程序员不知如何调用有返回值的SQLServer存储过程,有的通过额外的中间临时表、文本文件等方式来与存储过程进行沟通。通过下面例子,不但了解调用有返回值的SQLServer存储过程实现方法及步骤,同时也得到一个简单而很实用的获取最大ID处理方案。1调用有返回值的SQLServer存储过程的方法、步骤在程序中调用有返回值的SQLServer存储过程要注意的几个问题:(1)PBScrip说明存储时要保持外部定义参数名与存储过程内部定义的参数名一致,否则将得不到返回值。(2)不要在有数据修改的存储过程中进行事务处理工作,若处理不妥会造成数据库“死锁”现象,要把事务提交及回滚工作提到前端工具进行处理。(3)存储过程的返回值出口用SELECT带出返回值,而不是SET。下面是调用有返回值的SQLServer存储过程的方法和步骤实例。1.1后台定义第一步:定义以下表结构CREATETABLEdbo.maxidtable(F1VARCHAR(40)NULL,/*功能名称*/F2INTNULL/*最大ID*/)GO第二步:定义存储过程CREATEPROCEDUREdbo.Spgetmaxid@lsfunnameVARCHAR(40),/*功能名称*/@llstepnINT,/*取值步长*/@llmaxidINTOUTPUT/*返回最大ID(变参)*/AS--------------功能说明:获取最大ID-------------select@llmaxid=f2frommaxidtablewheref1=@lsfunnameIF@@rowcount=0BEGINinsertintomaxidtable(F1,F2)values(@lsfunname,@llstepn)if@@ERROR<>0GOTOLOOPFAILEDset@llmaxid=0ENDELSEBEGINUPDATEmaxidtableSETF2=F2+@llstepnwheref1=@lsfunnameif@@ERROR<>0GOTOLOOPFAILEDEND--SUCCE(END)SELECT@llmaxid=@llmaxid+@llstepn/*
    返回值出口*/RETURN0
    LOOPFAILED:SELECT@llmaxid=NULL/*返回值出口*/return-11.2前端工具调用//PBscrip:STRINGlsfunname//功能名称LONGllmaxid//返回的最大IDCONSTANTintllstepn=1//增加步长lsfunname='最大就诊ID'DECLARESpgetmaxiduserPROCEDUREFORdbo.Spgetmaxid@lsfunname=:lsfunname,//注意:@funname、stepn、maxid与sp内部定义一致@llstepn=1@llmaxid=:llmaxidOUTPUTusingsqlca;//注:outputExecutespgetmaxiduser;FetchspgetmaxiduserInto:llmaxid;//取返回值Closespgetmaxiduser;ifisnull(llmaxid)thenrollbackusingsqlca;messagebox("出错","取'"+funname+"'出错!",stopsign!)elsecommitusingsqlca;//insertinto….endif如果需要调到多个返回值,可先在SQL存储过程中定义多个OUTPUT参数,并在返回值出口加上多个返回值(例如:select@para1=1,@para2=2,…,@paran=n),然后在PBScrip中调整取值语句即可(例如:FetchspgetmaxidInto:rt1,:rt2,…,:rtn)。2结语通过调用SQLServer存储过程的方式来获取返回值是获取返回值一个十分有效的解决方案,上面PB的实例来说明如何调用有返回值的存储过程,其他不属PB的程序员可参照上面的方法,也可达到同样的效果。
    
  • 上一篇资讯: 服务器脚本-SQL语法
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师