电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > ASP教程 > 正文
几例在ASP存储过程的使用方法
几例在ASP存储过程的使用方法
2005-12-30 19:21:23  文/45IT收集   出处:电脑软硬件应用网   

Set prmTest = cmdTest.CreateParameter("hiredate2",adDBDate,adParamInput,,"1994-02-01")

cmdTest.Parameters.Append prmTest

 

cmdTest.Execute

‘下面三种表达方式意思一样

Response.Write cmdtest("job_lvl") & "<br>"

Response.Write cmdTest.Parameters("job_lvl") & "<br>"

Response.Write cmdTest.Parameters("job_lvl").Value

 

Cnn.close

Set prmTest = Nothing

Set cmdTest = Nothing: Set Cnn = Nothing

%>

(三)使用返回代码参数

用Return语句可以从存储过程返回不同的返回代码,如下面存储过程先取得一个记录集,然后,若有叫Margaret的雇员则返回1,否则返回0。

Create Procedure Returnemploy

AS

select emp_id, fname from employee

If Exists(Select fname From employee Where fname='Margaret')

       Return(1)

Else

       Return(0) 

例wuf73.asp

<% @LANGUAGE = VBScript %>

<!--#include file="AdoSQL7.asp"-->

<!--#include file="adovbs.inc"-->

<% ' wuf73.asp

Dim cmdTest, prmTest, rsTest

Set cmdTest = Server.CreateObject("ADODB.Command")

cmdTest.ActiveConnection = Cnn

cmdTest.CommandText = "Returnemploy"    '存储过程名

cmdTest.CommandType = adCmdStoredProc

 

Set prmTest = cmdTest.CreateParameter("ReturnValue",adInteger,adParamReturnValue)

cmdTest.Parameters.Append prmTest

 

Set rsTest = cmdTest.Execute()

While Not rsTest.EOF

       Response.Write rsTest(0) & " ][ " & rsTest(1) & "<br>"

       rsTest.MoveNext

Wend

rsTest.Close: Set rsTest = Nothing

'返回 cmdtest("ReturnValue") 之前,必须先关闭rsTest, 否则结果错误

 

If cmdtest("ReturnValue") = 1 Then

       Response.Write "有该雇员"

Else

       Response.Write "无该雇员"

End If 

 

Cnn.close

Set prmTest = Nothing

Set cmdTest = Nothing: Set Cnn = Nothing

%>

 

三、如何处理大数据

这里的“大数据”主要是指Text(大文本)和image(图像)字段,采用前面所述的方法无法正确获取其数据。必须首先使用Size = rsTest(0).ActualSize获取字段值的实际长度,然后再使用rsTest(0).GetChunk(Size)取得数据。在实际使用过程中,由于这些字段都比较大,为了节省、合理使用服务器资源,一般均采取分段读取的方法。例wuf74.asp:

<% @LANGUAGE = VBScript %>

<!--#include file="AdoSQL7.asp"-->

<!--#include file="adovbs.inc"-->

<% ' wuf74.asp

Dim StrSQL, rsTest

‘pr_info 是一个文本字段

StrSQL = "Select pr_info,pub_id From pub_info"

Set rsTest = Cnn.Execute(StrSQL)

 

Dim BasicSize, BeginSize, LText

Do While Not rsTest.EOF    

       Response.Write rsTest(1) & "<br>"

       ‘每次读取 1024字节

       BasicSize = 1024

       BeginSize = 0

       While BeginSize < rsTest(0).ActualSize

              LText = rsTest(0).GetChunk(BasicSize)

              BeginSize = BeginSize + BasicSize

              ‘逐段输出到客户端

        Response.Write LText

       Wend

       

       Response.Write "<br><br>"

    rsTest.MoveNext       

Loop

 

Cnn.close

Set rsTest = Nothing: Set Cnn = Nothing

%>

在本例中,每次最多读取1024字节,分多次读完。反之,如果将大数据写至数据库中,方法类似上面,不过不是使用GetChunk方法,而是使用AppendChunk方法:

rsTest(0).AppendChunk Ltext

 

注意:最后介绍一个关于SQL Server数据库的小技巧,如果你遇到过这种情况:数据库的中文数据显示出来均是乱码,请不要惊慌。你只要去我的站点下载sqlsrv32.dll覆盖“C:\Windows\System”下的同名文件就可以了。问题发生的源头是SQL Server驱动程序,典型的情况发生在Windows98第二版(SQL Server驱动程序的版本号为3.70.06.23)或Windows2000中或者安装了MDAC2.5(版本号为3.70.08.20)。

上一页  [1] [2] 

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    三种中文分词算法优劣比较
    ASP教程:删除记录和链接数据库程序解…
    ASP生成html或者txt文件实例
    分享常用7款天气预报代码iframe嵌入…
    ASP错误信息解决:IIS启用父路径的设…
    禁止网页缓存的方法及代码
    推荐如何抓取显示防盗链图片的方法
    为什么浏览不了dreamweaver中ASP文件…
    asp入门教程之讲解ASP脚本执行的顺序
    asp将access数据导出为excel电子表的…
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号