您的位置:首页技术开发ASP技巧 → Oracle大文本在ASP中存取问题的解决

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

时间:2004/11/7 4:11:00来源:本站整理作者:蓝点我要评论(0)

在我开发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),"
")

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 "数据已经存入数据库中。
"

Response.write "总计占用字符数:" & formatnumber(b,2,-2,-2,-1) & "字
"

Response.write "总计占用字节数:" & formatnumber(a,2,-2,-2,-1) & "Byte
"

Response.write "请调阅……"



'关闭数据连接。

rs.close

set rs=nothing

Set OraSession=nothing

Response.end

End If

%>






Oracle大字段在ASP中存取问题的解决:





















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



%>



相关阅读 Win10预览版怎么升级 Win10预览版升级方法厂商不再预装Win7或8.1系统,驱动人生帮您快速升级Mac移动硬盘安装win8 Mac将win装在移动硬盘使用教程windows10xboxone串流简单教程Windows Hello怎么用 Windows Hello使用设置教程win10怎么关闭自动更新 win10如何关闭自动更新Mac系统如何远程桌面到Windows系统windows update更新有用吗 windows update下载的文件在哪

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案