|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在我开发BS结构程序中,由于常常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解决了大文本数据在ORACLE下存取问题。 一、运行环境: 1、Microsoft Windows 2000 Server + IIS 5.0 2、Oracle8i中文标准版 二、建立数据表: CREATE TABLE SYSTEM.TEST( BLOB LONG, ID NUMBER) / 三、源程序: 1、数据存入程序:test.asp <% \\\'表单提交处理部分 \\\'-------------------------------------------------- If request("ok")=1 then \\\'字符转变函数 function tansstr(sstr) sstr=replace(sstr," "," ") sstr=replace(sstr,chr(13) & chr(10),"<br>") tansstr=sstr end function \\\'提交数据赋值 a=lenb(request("text")) b=len(request("text")) c=tansstr(request("text")) \\\'打开数据库,打开test数据表以Rs为记录集 Set OraSession=CreateObject("OracleInProcServer.XOraSession") Set OraDatabase=OraSession.DbOpenDatabase("autop","system/manager",0) Set rs=OraDatabase.CreateDynaset("select * from test order by id desc",0) \\\'求ID值 if rs.eof then id=1 else id=rs("id")+1 end if \\\'因为受SQL语句长度大小限制所以,以非SQL语句存入数据 \\\'-------------------------------------------------------- \\\'新建记录 rs.DbAddNew \\\'经典就在本句:以RS记录集的Fields对象的DbAppendChunk方式处理大字段存入问题。 rs.Fields("blob").DbAppendChunk(c) \\\'存入ID值 rs("id")=id \\\'刷新记录集 rs.DbUpdate \\\'显示结果部分 \\\'--------------------------------------------------------- Response.write "数据已经存入数据库中。<br>" Response.write "总计占用字符数: <font color=blue>" & formatnumber(b,2,-2,-2,-1) & "</font> 字<br>" Response.write "总计占用字节数: <font color=blue>" & formatnumber(a,2,-2,-2,-1) & "</font> Byte<br>" Response.write "<a href=\\\'view.asp\\\'>请调阅……</a>" \\\'关闭数据连接。 rs.close set rs=nothing Set OraSession=nothing Response.end End If %> <html> <body> <form method="POST" action="test.asp"> <p><font color="#FF0000"><b>Oracle大字段在ASP中存取问题的解决:</b></font></p> <p><textarea rows="13" name="text" cols="104"></textarea></p> <p><input type="submit" value="存入" name="B1"></p> <input type="hidden" name="ok" value="1"> </form> </body> </html> 2、数据调出程序:view.asp <% \\\'连接数据库,以只读方法打开数据表 Set OraSession=CreateObject("OracleInProcServer.XOraSession") Set OraDatabase=OraSession.DbOpenDatabase("autop","system/manager",0) Set Rs=OraDatabase.DbCreateDynaset("select * from test order by id desc",4) \\\'赋初值:定义每次截取字节大小为1024byte,最大可以设为65280byte (64K) Size=65280 I=0 Do \\\'以Rs记录集的Fields对象的DbGetChunk方式在循环中读出数据 Text=Rs.Fields("Blob").DbGetChunk(I*Size,Size) Response.write Text \\\'求出每次取出数据的具体字节数 Text_Size=Lenb(Text) I=I+1 \\\'假如每次取出数据的具体字节数小于欲定义的截取字节大小则说明该条数据已经完毕,退出循环。 Loop until Text_Size<Size \\\'关闭数据连接 Set OraSession=nothing %> 返回类别: 教程 上一教程: 将HTML源代码规范化,转变成XSL代码的ASP工具 下一教程: ASP应用之模板采用 您可以阅读与"ORACLE大文本在ASP中存取问题的解决"相关的教程: · ORACLE920与ASP的连接问题的解决办法 · ASP如何更好的解决用户验证问题 · 解决使用ASP无法连接ORACLE 9I数据库的问题 · 对于ASP编码问题的深入研究与最终解决方案 · 一起特别中文全文检索问题的解决(探索者) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |