首页 注册 登录 支付方式 投稿 留言 帮助
动态资讯
工程资料
图片素材
论坛社区
建筑博客
管理中心
专题栏目
最新热门文章
最新推荐文章
相关内容
  • ASP与数据库应用(给初

  • 使用智能优化器提高Or

  • Oracle数据的异地自动

  • ORACLE数据库恢复技术

  • 使用SQLSERVER的扩展存

  • 最简便的备份MySql数据

  • MySQL通用查询程序

  • 当前位置: 中国工程网  动态资讯  软件广告专栏  文章正文
    Oracle大文本在ASP中存取问题的解决         
    Oracle大文本在ASP中存取问题的解决
    作者:未知 文章来源:本站收藏 点击数: 更新时间:2005-4-29
       在我开发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," ","&nbsp;")
    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

    %>

    文章录入:mzstory    责任编辑:mzstory 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)