仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 448|回复: 8
打印 上一主题 下一主题

[学习教程] ASP教程之asp挪用mssql存储历程之完整示例

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。标  题:SQLSERVER数据库开辟之存储历程的使用
作  者:种植者
日  期:2005-12-27
说  明:因为团体才能无限,文章中不免会呈现毛病或漏掉的中央,敬请体谅!同时接待你指出,以便我能实时修正,以避免误导下一个看官。最初但愿本文能给你带来必定的匡助。


  大概有很多伴侣利用SQLSERVER做开辟也已有段日子,但还没有大概很少在项目中利用存储历程,也许有些伴侣以为基本没有需要利用存储历程等等。实在当你一个项目做完到了保护阶段时,就会发明存储历程给我们带来了优点了,修正便利,不克不及往改我们的使用程序,只必要改存储历程的内容,并且还可使我们的程序速率失掉进步。

SQLSERVER联机丛书中的界说:
  存储历程是保留起来的能够承受和前往用户供应的参数的Transact-SQL语句的汇合。
  能够创立一个历程供永世利用,或在一个会话中一时利用(部分一时历程),或在一切会话中一时利用(全局一时历程)。
  也能够创立在MicrosoftSQLServer启动时主动运转的存储历程。
  要利用存储历程,起首我们必须熟习一些基础的T-SQL语句,由于存储历程是因为一组T-SQL语句组成的,而且,我们必要懂得一些关于函数、历程的观点,由于我们必要在使用程序中挪用存储历程,就像我们挪用使用程序的函数一样,不外挪用的办法有些分歧。

  上面我们来看一下存储历程的创建和利用办法。

1、创立存储历程

  和数据表一样,在利用之前我们必要创立存储历程,它的简明语法是:

以下是援用片断:
CREATEPROC存储历程称号
[参数列表(多个以“,”分开)]
AS
SQL语句
例:

以下是援用片断:
CREATEPROCupGetUserName
@intUserIdINT,
@ostrUserNameNVARCHAR(20)OUTPUT--要输入的参数
AS
BEGIN
--将uName的值赋给@ostrUserName变量,即要输入的参数
SELECT@ostrUserName=uNameFROMuUserWHEREuId=@intUserId
END
  个中CREATEPROC语句(完全语句为CREATEPROCEDURE)的意义就是告知SQLSERVER,如今必要创建一个存储历程,upGetUserName就是存储历程称号,@intUserId和@ostrUserName分离是该存储历程的两个参数,注重,在SQLSERVER中,一切用户界说的变量都以“@”开首,OUTPUT关头字暗示这个参数是用来输入的,AS以后就是存储历程内容了。只需将以上代码在“查询剖析器”里实行一次,SQLSERVER就会在以后数据库中创立一个名为“upGetUserName”的存储历程。你能够翻开“企业办理器”,选择以后操纵的数据库,然后在右边的树型列表当选择“存储历程”,此时就能够在右侧的列表中看到你方才创立的存储历程了(假如没有,革新一下便可)。

2、存储历程的挪用

  之前我们已创立了一个名为“upGetUserName”的存储历程,从字面了解该存储历程的功效是用来获得某一个用户的称号。存储历程创建好了,接上去就是要在使用程序里挪用了,上面看一下在ASP程序里的挪用。

以下是援用片断:

DimadoComm
’//创立一个工具,我们用来挪用存储历程
SetadoComm=CreateObject("ADODB.Command")
WithadoComm
’//设置毗连,设adoConn为已毗连的ADODB.Connection工具
.ActiveConnection=adoConn
’//范例为存储历程,adCmdStoredProc=4
.CommandType=4
’//存储历程称号
.CommandText="upGetUserName"
’//设置用户编号
.Parameters.Item("@intUserId").Value=1
’//实行存储历程
.Execute

’//获得从存储历程前往的用户称号
Response.Write"用户名:"&.Parameters.Item("@ostrUserName").Value
EndWith
’//开释工具
SetadoComm=Nothing
  经由过程以上两步,我们已能够创立和利用复杂的存储历程了。上面我们来看一个略微庞大点的存储历程,以进一步懂得存储历程的使用。

3、存储历程的实践使用

  用户登录在ASP项目中常常会利用到,信任良多伴侣也都做过相似的体系,但利用存储历程来做考证伴侣大概未几,那末我们就以它来做例子,写一个复杂的用户登录考证的存储历程。

以下是援用片断:

CREATEPROCupUserLogin
@strLoginNameNVARCHAR(20),
@strLoginPwdNVARCHAR(20),
@blnReturnBITOUTPUT
AS
--界说一个一时用来保留暗码的变量
DECLARE@strPwdNVARCHAR(20)
BEGIN
--从表中查询以后用户的暗码,赋值给@strPwd变量,上面要对他举行对照
SELECT@strPwd=uLoginPwdFROMuUserWHEREuLoginName=@strLoginName

IF@strLoginPwd=@strPwd
BEGIN
SET@blnReturn=1
--更新用户最初登录工夫
UPDATEuUserSETuLastLogin=GETDATE()WHEREuLoginName=@strLoginName
END
ELSE
SET@blnReturn=0
END
  用户登录的存储历程创建好了,如今在程序里试一下吧。注重,在一个地区内假如有多条语句时,必须利用BEGIN...END关头字。

以下是援用片断:
DimadoComm
’//创立一个工具,我们用来挪用存储历程
SetadoComm=CreateObject("ADODB.Command")
WithadoComm
’//设置毗连,设adoConn为已毗连的ADODB.Connection工具
.ActiveConnection=adoConn
’//范例为存储历程,adCmdStoredProc=4
.CommandType=4
’//存储历程称号
.CommandText="upUserLogin"
’//设置登录称号
.Parameters.Item("@strLoginName").Value="admin"
’//设置登录暗码
.Parameters.Item("@strLoginPwd").Value="123456"
’//实行存储历程
.Execute

’//判别是不是登录乐成
If.Parameters.Item("@blnReturn").Value=1Then
Response.Write"祝贺你,登录乐成!"
Else
Response.Write"不是吧,仿佛错了哦。。。"
EndIf
EndWith
’//开释工具
SetadoComm=Nothing
  经由过程以上的步骤,复杂用户登录考证历程也做完了,如今只需把它整合到程序中就能够完成复杂的用户登录考证了,关于其他细节就由你本人来处置了。
  下面先容的两个存储历程都是只前往一个值的,上面我们来看一个前往一个纪录集的存储历程。

以下是援用片断:
CREATEPROCupGetUserInfos
@intUserGroupINT
AS
BEGIN
--从数据库中抽取切合前提的数据
SELECTuName,uGroup,uLastLoginFROMuUserWHEREuGroup=@intUserGroup
--拔出一列算计
UNION
SELECT’算计人数:’,COUNT(uGroup),NULLFROMuUserWHEREuGroup=@intUserGroup
END
  如今我们来看一下ASP程序的挪用。

以下是援用片断:
DimadoComm
DimadoRt
’//创立一个工具,我们用来挪用存储历程
SetadoComm=CreateObject("ADODB.Command")
SetadoRs=CreateObject("ADODB.Recordset")
WithadoComm
’//设置毗连,设adoConn为已毗连的ADODB.Connection工具
.ActiveConnection=adoConn
’//范例为存储历程,adCmdStoredProc=4
.CommandType=4
’//存储历程称号
.CommandText="upGetUserInfos"
’//设置用户组
.Parameters.Item("@intUserGroup").Value=1
’//实行存储历程,和以上几个例子分歧,这里利用RecordSet的Open办法
adoRs.OpenadoComm
’//显现第一个值
Response.writeadoRs.Fields(0).Value
EndWith
’//开释工具
SetadoRs=Nothing
SetadoComm=Nothing  怎样,是否是也很复杂呢,不外存储历程的用途不单单只要这些,他另有更壮大的功效,好比利用游标、一时表来从多个表,乃至是多个数据库中挪用数据,然后前往给用户,这些你能够在利用过程当中渐渐的往开掘。

  好了,存储历程使用就先先容到这里,假如你对本文有任何疑问,接待跟贴提出,我将全力赐与解答。下次我将给人人先容触发器的使用。减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。
小妖女 该用户已被删除
沙发
发表于 2015-1-18 21:05:45 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-24 14:25:57 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
山那边是海 该用户已被删除
地板
发表于 2015-2-1 17:02:11 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-7 11:16:53 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
简单生活 该用户已被删除
6#
发表于 2015-2-21 19:49:43 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
柔情似水 该用户已被删除
7#
发表于 2015-3-6 21:21:35 | 只看该作者
那么,ASP.Net有哪些改进呢?
若相依 该用户已被删除
8#
发表于 2015-3-13 21:56:20 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
小女巫 该用户已被删除
9#
发表于 2015-3-20 19:52:27 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表