age(图像)字段,采用前面所述的方法无法正确获取其数据。必须首先使用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) & " "
‘每次读取 1024字节
BasicSize = 1024
BeginSize = 0
While BeginSize rsTest(0).ActualSize
LText = rsTest(0).GetChunk(BasicSize)
BeginSize = BeginSize + BasicSize
‘逐段输出到客户端
Response.Write LText
Wend
Response.Write ""
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)。