您当前的位置: 首页 > 网站编程 > ASP教程 > Oracle大文本在ASP中存取问题的解决

Oracle大文本在ASP中存取问题的解决

作者:xiaoxiao 来源:未知 发布时间: 2013-11-25 21:19 点击:
在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解决了大文本数据在ORACLE下存取问题。 一、运行环境: 1、Microsoft Windows 2000 Server + IIS 5.0 2、Oracle8i中文标准版 二、建立数据表: CREATE TABLE S

Oracle大文本在ASP中存取问题的解决

  在我开发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
  
  %>

分享到:
本文"Oracle大文本在ASP中存取问题的解决"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4