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

ASP
ASP语法高亮类代码
ASP实现长文章分页
上一篇,下一篇过程代码
插件下载┊垃圾引用防御补丁(每小时自动换KEY,支持静态页面)
完美解决PJ的Cookies保存时限问题!可选择记录登陆时长!
ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨
用VB生成DLL封装ASP连接数据库的代码
利用ActiveX控件InetCtls.Inet在ASP中实现新闻小偷
验证码识别技术
另类扩展名同样执行ASP
用JAVASCRIPT帮我写个计数器
用ASP读取XML文件的具体方法与示例
很有用的学习ASP常用到的代码
VBScript中变量作用域
可以查询百度排名的asp源码放送了
可以查询google排名的asp源码
用asp实现文件浏览、上传、下载的程序
Ajax+ASP和Flash+ASP数据读取取方法有些相似的实现方法
ASP与数据库,有用的代码(转贴,摘贴)
将首页转成静态html页的asp文件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 223 ::
收藏到网摘: n/a

       在我开发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记录集的Fiel