利用SQL Server存储过程开发应用程序

时间:2022-09-19 09:12:25

利用SQL Server存储过程开发应用程序

(河北省河北钢铁集团邯钢公司,河北 邯郸 056015)

摘要:在数据库管理工作中,人工操作数据库需要输入大量的SQL语句,增加了劳动强度,还很容易发生失误。利用sql server存储过程开发数据汇总程序,然后利用asp程序调用存储过程,将以往繁琐的工作,简化为需要输入存储过程名和相关参数即可,操作过程迅速而且准确。通过asp程序和存储过程的综合应用,可以快速开发界面友好,操作简便,更新灵活的应用程序

关键词:存储过程;数据库;asp;调用;数据汇总

中图分类号:TP3文献标识码:A 文章编号:1009-3044(2009)28-7860-02

Use SQL Server Stored Procedure to Develop Application

YANG Yong, YANG Kai

(HBIS Handan Iron and Steel Group Co.,LTD., handan 056015,china)

Abstract:In the database management work, the manual operation database needs to import large numbers of SQL statements, that increases labor intensity and prone to mistakes. It can simplify the complex work of the past by use SQL Server stored procedure to develop data summary application and use asp programs to call stored procedures. through the comprehensive application of asp programs and stored procedures,which can quickly develop Interface-friendly, easy to operate, Flexible Update applications.

Key words: stored procedure; Database; asp; call; Data Summary

存储过程是SQL Server数据库中的一项重要技术。利用存储过程,可以有效的提高程序的运行性能,并且将一系列的数据操作流程封装在数据库的存储过程中,可以提高整个软件系统的可维护性和提高工作效率,当数据操作流程改变的时候,不需要修改客户端应用程序以及重新部署他们到客户端,需要做的仅仅是修改存储过程。通过asp程序调用存储过程,可以快速开发界面友好,操作简便,更新灵活的应用程序。在信息化社会中,企业要面对海量的信息,在实践过程中,已经建立了很多大型的数据库,数据的存储已经不是问题,如何在海量的信息中进行数据的汇总分析,为生产经营提供技术支持,这就需要提供一个软件环境,使用户能方便、快速地建立、维护、检索、存取和处理数据库中的信息。利用存储过程的种种优点,通过asp程序调用存储过程,可以快速开发界面友好,操作简便,更新灵活的数据汇总程序。

1 系统研究意义

在实际工作中,人工操作数据库需要输入大量的SQL语句,增加了劳动强度.同时人工操作数据库很容易发生失误。另外,可操作性差,换一位工作人员后,如果对SQL语言掌握不熟练,工作就不能及时完成。以168话费数据导入计费数据库为例,168数据是网通公司每月都要定期发给我公司的外部话费数据,需要导入计费详单表中,人工操作的话,首先要编辑原始话单表,再手工导入库中,然后再编辑临时表,最后导入计费详单表中,操作比较繁琐,这个期间如果发生人为失误,可能对整个详单表造成误操作,后果将是非常严重的。而通过存储过程调用仅仅需要输入存储过程名和相关参数即可,操作过程迅速而且准确。

2 解决办法

编写SQL存储过程,将完成某一工作的一系列的SQL语句封装在存储过程中,同时在存储过程中加入判断语句,对数据库操作过程中的可能出现误操作的情况进行自动修正,减少出现失误的可能。工作需要的时候可以在SQL查询分析器直接调用或者在编写的计算机程序中调用存储过程。

3 实施步骤

由于工作中涉及的存储过程很多,这里不再一一赘述,仅以168数据导入为例。

1)将SQL语句按功能分为三类,首先是经常用到的删除表的语句,其次是将接收的excel表格式的话单数据导入数据库临时表的预导入语句,然后是临时表数据导入每月话单表的主导入语句。

2)编写删除表的外部存储过程Pub_Sp_DelTable,以供预导入存储过程和主存储过程调用。

CREATE Procedure Pub_Sp_DelTable

@vcTable varchar(50)

As

Declare @vcSql varchar(500)

Set @vcSql = ' if exists (select * from sysobjects where id = object_id(''[dbo].['+@vcTable+']'')) drop table [dbo].['+@vcTable+']'

Exec(@vcSql)

GO

3)编写预导入存储过程,将excel表格式的话单数据导入数据库中的临时表read168,导入过程中对话单数据进行判断,如果话单中包含非本局数据或者包含非168数据,存储过程将退出执行并且报错,工作人员需要对话单数据进行核查更改后从新执行预导入存储过程。

CREATE PROCEDURE read168

AS

execPub_Sp_DelTable168_read

select*into168_readfrom OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=excel表路径',工作表名)

“执行判断语句”

GO

4)编写主导入存储过程,将临时表中的数据导入每月的详细话单表中,导入过程中检查当月详细话单是否存在,当月收费信息是否向用户公布,同时对临时表中的数据进行检测,查看临时表中的话单是否包含非本局数据或者包含非168数据,以上判断条件均通过后,即表示临时表中168数据正确可用,再将临时表中的数据导入到详细话单中,至此,168数据导入过程完成。

CREATE PROCEDUREinsert168@period VARCHAR(50)

AS

DECLARE @vcSql1 VARCHAR(8000)

“执行判断语句”

begin

SET @vcSql1 = 'INSERT INTO '+'bill'+@period +' select [vcCaller], [vcCalled], [vcTrunk], [vcTrunkOut], [vcTrunkIn], [dtBegin], [dtEnd], [vcDelayTime], [vcCallType], [vcCalledHead], [vcCalledAddr], [nTimesBase], [nTimesSpec], [mServeFee], [mAddFee], [mBaseFee], [mSpecFee], [mTotal] from 168_read'

EXEC(@vcSql2)

print '168数据导入成功'

end

GO

5)编写存储过程的asp调用程序infere.asp。ASP程序工作原理如下:ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。 当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作。

conn=server.CreateObject("adodb.connection")

set cmd=server.CreateObject("mand")

strconn="dsn=数据库名;uid=账号;pwd=密码"

conn.Open strconn

set cmd.ActiveConnection=conn

conn.Execute "insert168 @period "

conn.close

set conn = nothing

response.write “数据导入完毕”

%>

我们可以通过在IE浏览器中打开页面infere.asp完成存储过程的调用,非常方便快捷。 至此,利用asp程序调用存储过程开发应用程序的过程分析完毕。在实际工作中,方法是不变的,但是在开发过程中一定要切合实际,灵活应用,举一反三,才能开发出适用的程序。

4 结束语

我们正处在知识经济的新时代,市场竞争日趋激烈,我们应推进企业信息化建设来不断增强自身实力和竞争力,企业才能更加充满活力,从而使企业的现代化建设获得持续的发展。利用asp程序调用SQL存储过程快速开发符合工作实际的应用程序不失为信息化建设的一条捷径。

参考文献:

[1] (美)Stephen Walther.Active Server Pages 2.0揭密[M].北京:希望电子出版社,2000.

[2] 梁肇新.编程高手箴言[M].北京:电子工业出版社,2003.

[3] (美)Roger S.Pressman.软件工程 实践者的研究方法[M].北京:机械工业出版社,1999.

[4] (美)迈克格希. Microsoft SQL Server 7.0 使用详解[M].北京:机械工业出版社,1999.

[5] Rob Hawthorne. SQL Server2000数据库开发从零开始[M].北京:人民邮电出版社, 2001.

[6] 李春葆,曾慧. SQL Server 2000应用系统开发教程》[M].北京:清华大学出版社, 2008.

[7] 陆永祯,段慧坤,周芸. SQL Server 2000数据库管理和程序开发一周通[M].北京:中国铁道出版社,2005.

[8] (美)Matthew Shepker. SQL Server 7 24学时教程[M].北京:机械工业出版社,2000.

上一篇:职业核心能力培养在教学中的实践 下一篇:范畴语法在自然语义分析中的应用