这次是关于ADODB.Stream的。
3J\NkaSR ^iaeY
jI 虽然它是Micro$oft的宠儿,但是俺想Stream的概念最早却是来自Unix的,MS-DOS 3.00才出现了不用FCB访问文件的流式访问。所以俺认为在Unix和Linux上,也应该有相当的东东。
[V#"7O vl >.R6\>N% 问题是这样的:
!
;Mh5*- 4SG22$7 W set ado=server.createobject("adodb.stream") '创建stream对象
4fDo
}~ s="Test String: this is an unicode string or in terms of Micro$oft a lpwstring"
!U02>X ado.mode=3 '可读写的stream
P\ yt!S2 ado.type=1 'Binary type
)B d`N^k+ ado.open '打开stream对象
cQ4TYr;? ,v"/3Ff{, ado.write leftb(s, 110)
Dl862$_Q '就是上面这一句总出错, W3schools.com的文档说明此类Stream要求一个Binary的buffer。 而leftB(string,length) 或rightB、MidB函数返回的正是一个byte array,没有B的对应函数返回的为字符串。
wu*WA;FnA vS~y~ uU%6 错误如下:
3t(8uG<rL V/j]UK0$ 0x800A0BB9 应用程序使用的参数其类型错误、超出可接受
X,- '
v[z 的范围或者与其他参数冲突。
Q37VhScs 0Sz&Og
uv
bdata=ado.read
NJYx.TL ado.close
;OYwZ set ado=nothing
-KRHcr \ qZ!1>`B 百思不得其解啊! 在VB6中同样的代码只有将write的buffer显式声明为一个byte array (dim bdata(x to y) as byte)才可以写。可是在ASP中所有变量都是variant类型的,无法声明为字节数组啊!
Fa(
}:Ug ?FRR"; 哪位XDJM对ASP熟悉啊?
S"|sD|xOb ?e|'I" 幺妹呢? 俺又回到了旧社会,快来解放俺啊!!!!!