奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 数据库 >> Oracle >> Oracle大文本在ASP中存取问题的解决
数据库
Access
SQL Server
MySQL
DB2
Oracle
Sybase
  • Linux下安装支持ssl连

  • 在同一台机运行多个My

  • 我的MYSQL安装笔记拿出

  • 写了个简单的数据库自

  • Oracle 10g中新型层次

  • ORACLE回滚段管理(下

  • ORACLE回滚段管理(上

  • Oracle XQuery查询、构

  • Oracle大文本在ASP中存取问题的解决
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-23

    在我开发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
    %>   
    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.