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

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

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


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