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

huanle20050429

huanle20050429

2016-01-29 18:30

Oracle大文本在ASP中存取问题的解决,Oracle大文本在ASP中存取问题的解决
     在我开发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"<bOracle大字段在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

%

 
展开更多 50%)
分享

猜你喜欢

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

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

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

Web开发
3.2 Oracle大文本在ASP中存取问题的解决

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在Oracle网络结构中解决连接问题

编程语言 网络编程
在Oracle网络结构中解决连接问题

JavaScript在ASP中实现掩码文本框

Web开发
JavaScript在ASP中实现掩码文本框

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

oracle中解决汉字无法显示、输入问题

SQLServer
oracle中解决汉字无法显示、输入问题

Delphi中对Oracle存取RTF文档(1)

Delphi
Delphi中对Oracle存取RTF文档(1)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Photoshop抠图教程:调整灰度方式抠透明塑料膜

Photoshop抠图教程:调整灰度方式抠透明塑料膜

Photoshop CS4教程:打造喜庆迎春炮竹贺新年

Photoshop CS4教程:打造喜庆迎春炮竹贺新年
下拉加载更多内容 ↓