当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > 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)。 |
|||
关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 | |
Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号 |