ASP中文本文件与数据库文件的数据交换 (1)
ASP中文本文件与数据库文件的数据交换
网络数据库的应用是WWW上一个很重要的组成部分,可以这样说,假如缺少了数据库,网络也就失去了灵魂。大家可以想象一下,假如没有象YAHOO,SOHU等搜索引擎的话,那么在网上寻找一个目标变得多么困难,大家在茫茫网海里变得不知所往,动辄迷失方向。其实,这些搜索引擎是网络数据库的最典型的应用,在ASP(Active Server Pages)技术里对数据库的直接操作是比较多的,下面讲述一种由文本文件向数据库文件传递数据的方法。
这个文本文体是由终端采集传送到服务器的一个固定目录下,由服务器去读取数据并存放在本机数据库里,转换完后删除掉这个文本文件。这样终端负责采集数据,并按给定的格式上传到服务器的指定目录下,服务器端的数据库对终端来讲是完全不透明的,保障了服务器的安全,对现在的网络数据库应用来讲或许有点帮助。
Txttolib.asp
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;meta http-equiv=%26quot;refresh%26quot; content=%26quot;30;url=deltext.asp%26quot;%26gt;
%26lt;meta http-equiv=%26quot;Content-Type%26quot;
content=%26quot;text/html; charset=gb_2312-80%26quot;%26gt;
%26lt;meta name=%26quot;GENERATOR%26quot; content=%26quot;Microsoft FrontPage Express 2.0%26quot;%26gt;
%26lt;title%26gt;[把文本文件转换成数据库文件]%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;body bgcolor=%26quot;#FFFFFF%26quot;%26gt;
%26lt;align=%26quot;center%26quot;%26gt;
%26lt;p align=%26quot;center%26quot;%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;正在处理数据,请稍候!
%26lt;br%26gt;
%26lt;/font%26gt;%26lt;font color=%26quot;#000000%26quot;%26gt;%26lt;align=%26quot;center%26quot;%26gt;%26lt;%
str=server.mappath(%26quot;/%26quot;) ‘取得服务器的根目录
Set fso = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)
Set f = fso.GetFolder(str %26amp; %26quot;\thetext%26quot;)
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name ‘得到此路径下的所有文件名
k=k+1
next
%%26gt;%26lt;% ii=1%%26gt;%26lt;%
set fs = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)%%26gt;%26lt;%
while ii%26lt;k
response.write file(ii) %26amp; %26quot;%26lt;br%26gt;%26quot;
set textinstance=fs.opentextfile(str %26amp; %26quot;\thetext\%26quot; %26amp; file(ii),1,false,false)‘打开文件来读数据
while textinstance.atendofstream%26lt;%26gt; true ‘假如文件没有结束
visitornum=textinstance.readline ‘读进一行数据
j=0
cd=len(visitornum)
for i=1 to cd
if mid(visitornum,i,1)=%26quot;,%26quot; then ‘数据与数据之间以“,”隔开
j=j+1
else
select case j‘分别取得各数据值
case 0
me1=me1+mid(visitornum,i,1)
case 1
me2=me2+mid(visitornum,i,1)
case 2
me3=me3+mid(visitornum,i,1)
case 3
me4=me4+mid(visitornum,i,1)
case 4
me5=me5+mid(visitornum,i,1)
case 5
me6=me6+mid(visitornum,i,1)
end select
end if
next
response.write me1 %26amp; %26quot; %26quot; %26amp; me2 %26amp; %26quot; %26quot; %26amp; me3 %26amp; %26quot; %26quot; %26amp; me4 %26amp; %26quot; %26quot; %26amp; me5 %26amp; %26quot; %26quot; %26amp; me6 %26amp; %26quot; %26quot; %26amp; %26quot;%26lt;br%26gt;%26quot;
set cn=server.createobject(%26quot;adodb.connection%26quot;)
cn.open %26quot;water%26quot;,%26quot;%26quot;,%26quot;%26quot;
set rs=server.createobject(%26quot;adodb.recordset%26quot;)
sql=%26quot;select * from watertable%26quot;
rs.open sql,cn,3,3‘打开数据库进行追加操作
if rs.eof=true then
on error resume next
'rs.movelast
rs.movefirst
on error resume next
end if
rs.addnew‘增加一条记录
rs(%26quot;wvalue%26quot;)=me1
rs(%26quot;wdate%26quot;)=me2
rs(%26quot;wtime%26quot;)=me3
rs(%26quot;zxz%26quot;)=me4
rs(%26quot;jdh%26quot;)=me5
rs(%26quot;czh%26quot;)=me6
rs.update‘更新数据
rs.close
me1=%26quot;%26quot;
me2=%26quot;%26quot;
me3=%26quot;%26quot;
me4=%26quot;%26quot;
me5=%26quot;%26quot;
me6=%26quot;%26quot;
wend
ii=ii+1
wend%%26gt;%26lt;align=%26quot;center%26quot;%26gt;%26lt;/font%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;数据处理完毕!%26lt;/font%26gt;
%26lt;/p%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
deltext.asp
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;meta http-equiv=%26quot;refresh%26quot; content=%26quot;30;url=txttolib.asp%26quot;%26gt;
%26lt;meta http-equiv=%26quot;Content-Type%26quot;
content=%26quot;text/html; charset=gb_2312-80%26quot;%26gt;
%26lt;meta name=%26quot;GENERATOR%26quot; content=%26quot;Microsoft FrontPage Express 2.0%26quot;%26gt;
%26lt;title%26gt;[删除文件]%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;body bgcolor=%26quot;#FFFFFF%26quot;%26gt;
%26lt;p align=%26quot;center%26quot;%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;正在删除文件,请稍候!%26lt;br%26gt;
%26lt;/font%26gt;%26lt;font color=%26quot;#000000%26quot;%26gt;%26lt;%
dim file(50)‘定义最大文件数
str=server.mappath(%26quot;/%26quot;)
Set fso = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)
Set f = fso.GetFolder(str %26amp; %26quot;\thetext\%26quot;)
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name
response.write file(k) %26amp; %26quot;%26lt;br%26gt;%26quot;
k=k+1
next
%%26gt;%26lt;% i=1
while i%26lt;k
Set fso = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)
fso.DeleteFile(str %26amp; %26quot;\thetext\%26quot; %26amp; file(i))
i=i+1
wend
%%26gt;%26lt;/font%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;文件删除完毕!%26lt;/font%26gt;%26lt;/p%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
这两个小程序在NT4上作者都调试通过。但有几点要认清,一个是文本文件大小的规划(文本文件的数量多少也是如此),假如数据量大,那么在转换时的时间大小要调整;二是转换文本文件到数据库文件时的程序调试一定要严谨,假如程序有误,在数据转换过程中没有全部转换,而后又删除了这个文本文件,则会有所损失。所以这两点一定要注重,不能马虎。
网络数据库的应用是WWW上一个很重要的组成部分,可以这样说,假如缺少了数据库,网络也就失去了灵魂。大家可以想象一下,假如没有象YAHOO,SOHU等搜索引擎的话,那么在网上寻找一个目标变得多么困难,大家在茫茫网海里变得不知所往,动辄迷失方向。其实,这些搜索引擎是网络数据库的最典型的应用,在ASP(Active Server Pages)技术里对数据库的直接操作是比较多的,下面讲述一种由文本文件向数据库文件传递数据的方法。
这个文本文体是由终端采集传送到服务器的一个固定目录下,由服务器去读取数据并存放在本机数据库里,转换完后删除掉这个文本文件。这样终端负责采集数据,并按给定的格式上传到服务器的指定目录下,服务器端的数据库对终端来讲是完全不透明的,保障了服务器的安全,对现在的网络数据库应用来讲或许有点帮助。
Txttolib.asp
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;meta http-equiv=%26quot;refresh%26quot; content=%26quot;30;url=deltext.asp%26quot;%26gt;
%26lt;meta http-equiv=%26quot;Content-Type%26quot;
content=%26quot;text/html; charset=gb_2312-80%26quot;%26gt;
%26lt;meta name=%26quot;GENERATOR%26quot; content=%26quot;Microsoft FrontPage Express 2.0%26quot;%26gt;
%26lt;title%26gt;[把文本文件转换成数据库文件]%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;body bgcolor=%26quot;#FFFFFF%26quot;%26gt;
%26lt;align=%26quot;center%26quot;%26gt;
%26lt;p align=%26quot;center%26quot;%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;正在处理数据,请稍候!
%26lt;br%26gt;
%26lt;/font%26gt;%26lt;font color=%26quot;#000000%26quot;%26gt;%26lt;align=%26quot;center%26quot;%26gt;%26lt;%
str=server.mappath(%26quot;/%26quot;) ‘取得服务器的根目录
Set fso = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)
Set f = fso.GetFolder(str %26amp; %26quot;\thetext%26quot;)
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name ‘得到此路径下的所有文件名
k=k+1
next
%%26gt;%26lt;% ii=1%%26gt;%26lt;%
set fs = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)%%26gt;%26lt;%
while ii%26lt;k
response.write file(ii) %26amp; %26quot;%26lt;br%26gt;%26quot;
set textinstance=fs.opentextfile(str %26amp; %26quot;\thetext\%26quot; %26amp; file(ii),1,false,false)‘打开文件来读数据
while textinstance.atendofstream%26lt;%26gt; true ‘假如文件没有结束
visitornum=textinstance.readline ‘读进一行数据
j=0
cd=len(visitornum)
for i=1 to cd
if mid(visitornum,i,1)=%26quot;,%26quot; then ‘数据与数据之间以“,”隔开
j=j+1
else
select case j‘分别取得各数据值
case 0
me1=me1+mid(visitornum,i,1)
case 1
me2=me2+mid(visitornum,i,1)
case 2
me3=me3+mid(visitornum,i,1)
case 3
me4=me4+mid(visitornum,i,1)
case 4
me5=me5+mid(visitornum,i,1)
case 5
me6=me6+mid(visitornum,i,1)
end select
end if
next
response.write me1 %26amp; %26quot; %26quot; %26amp; me2 %26amp; %26quot; %26quot; %26amp; me3 %26amp; %26quot; %26quot; %26amp; me4 %26amp; %26quot; %26quot; %26amp; me5 %26amp; %26quot; %26quot; %26amp; me6 %26amp; %26quot; %26quot; %26amp; %26quot;%26lt;br%26gt;%26quot;
set cn=server.createobject(%26quot;adodb.connection%26quot;)
cn.open %26quot;water%26quot;,%26quot;%26quot;,%26quot;%26quot;
set rs=server.createobject(%26quot;adodb.recordset%26quot;)
sql=%26quot;select * from watertable%26quot;
rs.open sql,cn,3,3‘打开数据库进行追加操作
if rs.eof=true then
on error resume next
'rs.movelast
rs.movefirst
on error resume next
end if
rs.addnew‘增加一条记录
rs(%26quot;wvalue%26quot;)=me1
rs(%26quot;wdate%26quot;)=me2
rs(%26quot;wtime%26quot;)=me3
rs(%26quot;zxz%26quot;)=me4
rs(%26quot;jdh%26quot;)=me5
rs(%26quot;czh%26quot;)=me6
rs.update‘更新数据
rs.close
me1=%26quot;%26quot;
me2=%26quot;%26quot;
me3=%26quot;%26quot;
me4=%26quot;%26quot;
me5=%26quot;%26quot;
me6=%26quot;%26quot;
wend
ii=ii+1
wend%%26gt;%26lt;align=%26quot;center%26quot;%26gt;%26lt;/font%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;数据处理完毕!%26lt;/font%26gt;
%26lt;/p%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
deltext.asp
%26lt;html%26gt;
%26lt;head%26gt;
%26lt;meta http-equiv=%26quot;refresh%26quot; content=%26quot;30;url=txttolib.asp%26quot;%26gt;
%26lt;meta http-equiv=%26quot;Content-Type%26quot;
content=%26quot;text/html; charset=gb_2312-80%26quot;%26gt;
%26lt;meta name=%26quot;GENERATOR%26quot; content=%26quot;Microsoft FrontPage Express 2.0%26quot;%26gt;
%26lt;title%26gt;[删除文件]%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;body bgcolor=%26quot;#FFFFFF%26quot;%26gt;
%26lt;p align=%26quot;center%26quot;%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;正在删除文件,请稍候!%26lt;br%26gt;
%26lt;/font%26gt;%26lt;font color=%26quot;#000000%26quot;%26gt;%26lt;%
dim file(50)‘定义最大文件数
str=server.mappath(%26quot;/%26quot;)
Set fso = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)
Set f = fso.GetFolder(str %26amp; %26quot;\thetext\%26quot;)
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name
response.write file(k) %26amp; %26quot;%26lt;br%26gt;%26quot;
k=k+1
next
%%26gt;%26lt;% i=1
while i%26lt;k
Set fso = CreateObject(%26quot;Scripting.FileSystemObject%26quot;)
fso.DeleteFile(str %26amp; %26quot;\thetext\%26quot; %26amp; file(i))
i=i+1
wend
%%26gt;%26lt;/font%26gt;%26lt;font color=%26quot;#FF0000%26quot;%26gt;文件删除完毕!%26lt;/font%26gt;%26lt;/p%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
这两个小程序在NT4上作者都调试通过。但有几点要认清,一个是文本文件大小的规划(文本文件的数量多少也是如此),假如数据量大,那么在转换时的时间大小要调整;二是转换文本文件到数据库文件时的程序调试一定要严谨,假如程序有误,在数据转换过程中没有全部转换,而后又删除了这个文本文件,则会有所损失。所以这两点一定要注重,不能马虎。





