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

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 87 ::
收藏到网摘: 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