使用FSO把文本信息导入数据库(2)

文章来原于网络

二).用 TextStream 进行文件操作
    在建立或打开了文件之后,就可利用对象 TextStream 提供的方法进行文件的实际操作了.
    1.用于写操作的方法有:
  ⑴ Write(string)
    将由string指定的字符串写入到文件中.
  ⑵ WriteLine(string)
    在文件中写入由string指定的字符串,并写入一个换行字符.
    参数string可以省略,此时将在文件中插入一个空行.
  ⑶ WriteBlankLines(NumOfLines)
    在文件中插入若干空行,行数由 NumOfLines 指定.
    2.用于读操作的方法和属性方法有:
  ⑴ AtEndOfLine
    该属性是一个Boolean值,表示文件指针是否已指向当前行的行尾.
  ⑵ AtEndOfStream
    该属性是一个Boolean值,表示文件指针是否已指向文件尾.
  ⑶ Column
    该属性是一个整数值,表示文件指针在当前行中的位置.
  ⑷ Line
    该属性是一个整数值,表示文件指针所在行的行号.
  ⑸ Read(NumOfCharacters)
    该方法从文件当前位置开始,读入由NumOfCharacters数目指定的若干字符,返回一个
    字符串.
  ⑹ ReadLine
    该方法从文件当前位置开始,读入当前行的内容直到行尾,返回一个字符串.
  ⑺ ReadAll
    该方法从当前位置开始,读入整个文件的内容直到文件结束,返回一个字符串.
  ⑻ Skip(NumOfCharacters)
    该方法从文件当前位置开始,跳过由NumOfCharacters数目指定的若干字符.
  ⑼ SKipLine
    该方法从文件当前位置开始,跳过当前行的内容.
    3.用于关闭文件的方法有:
  ⑴ Close
    关闭已经建立或打开的文件.
  
  (三)、下面就以一个实例来说明如何使用FSO来读取文本文件和如何保存到数据库:
  
  1、 先创建一个读取文件路径的页面:file.htm
  
  …
  
  <FORM METHOD=POST ACTION="upFile.asp" >
  
   <div align="center"> <br>
  
   <br>
  
   <br>
  
   <br>
  
   <input type="file" name="path" size="40">
  
   <INPUT TYPE="submit" name="dr" value="导入信息">
  
   </div>
  
  </FORM>
  
  …
  
  2、 编写把获取到的文本值保存到数据库代码:upFile.asp
  
  <%@Language="VBScript"%>
  
  <%Response.Buffer=true%>
  
  <!--#include file="adovbs.inc"-->
  
  <%
  
  strConn="DSN=DataSourceName"
  
  set Conn=Server.CreateObject("ADODB.Connection")
  
  Conn.open strConn
  
  set ObjComm=Server.CreateObject("ADODB.Command")
  
  ObjComm.CommandText="sp_AddMsg" ‘调用存储过程
  
  ObjComm.CommandType=adCmdStoredProc
  
  Set ObjComm.ActiveConnection=Conn
  
  ''''''''''创建输入输出参数'''''''''''''''''
  
  Set ObjParamECom=ObjComm.CreateParameter("WC_ECompanyName",adVarchar,adParamInput,100)
  
   ObjComm.Parameters.Append ObjParamECom
  
   '@in_ECompanyName Varchar(50), --公司英文名称
  
  Set ObjParamAddr=ObjComm.CreateParameter("WC_Address",adVarchar,adParamInput,200)
  
   ObjComm.Parameters.Append ObjParamAddr
  
   '@in_Address Varchar(50), --公司地址
  
  Set ObjParamCity=ObjComm.CreateParameter("WC_City",adVarchar,adParamInput,100)
  
   ObjComm.Parameters.Append ObjParamCity
  
  '@in_City Varchar(50), --城市
  
  …
  
  ''''''''''创建参数完毕''''''''''''''''''''
  
  %>
  
  <%
  
  dim AllText,strLine1,strLine2,strLine3
  
  dim strpath,fileurl
  
  fileurl=""
  
  strpath=Trim(Request.form("path"))
  
  fileurl=strpath
  
  SET FSO=CreateObject("Scripting.FileSystemObject")
  
  SET ATextStream=FSO.OpenTextFile(fileurl,1,false,TristateFalse)
  
  '''''''''提取数据''''''''''''''''''''''''''''
  
  DO WHILE NOT ATextStream.AtEndOfStream
  
  ''''''初始化变量''''''''''''''''
  
  strLine1=""
  
  strLine2=""
  
  strLine3=""
  
  …
  
  '''''''''''''''''''''''''''''''
  
   ATextStream.SkipLine
  
   ATextStream.Skip(11)
  
   strLine1=Trim(ATextStream.ReadLine)
  
   ATextStream.Skip(11)
  
   strLine2=Trim(ATextStream.ReadLine)
  
   ATextStream.Skip(5)
  
   strLine3=Trim(ATextStream.ReadLine)
  
   …
  
  'End if
  
  ''''''''''将变量加入参数集'''''''''''''
  
  ObjParamECom.value=strLine1
  
  ObjParamCCom.value=strLine2
  
  ObjParamAddr.value=strLine3
  
  …
  
  ''''''''''操作结束''''''''''''''''''''
  
  ObjComm.Execute() '运行命令
  
  LOOP
  
  response.write "<br>"+"导入库成功!<a href=dolist.html>[继续导入]</a><br>"
  
  set Conn=nothing
  
  set FSO=nothing
  
  set ATextStream=nothing
  
  %>
  
  附:存储过程sp_AddMsg代码
  
  CREATE PROCEDURE dbo.sp_AddMsg --导入国外企业信息
  
  (
  
   @in_CompanyName Varchar(100), --公司名称
  
   @in_Address Varchar(200), --公司地址
  
   @in_City Varchar(100), --公司所在城市
  
   …
  
  )
  
  AS
  
  SET NOCOUNT ON
  
   BEGIN TRAN
  
   INSERT INTO Tb_WCLibrary(
  
   WC_CompanyName,
  
   WC_CCompanyName,
  
   WC_Address,
  
   …
  
   )
  
   VALUES(
  
   @in_CompanyName,
  
   @in_CCompanyName,
  
   @in_Address,
  
   …
  
   )
  
  IF @@ERROR <> 0
  
  BEGIN
  
  ROLLBACK TRAN
  
  RETURN -1
  
  END
  
  COMMIT TRAN
  
  RETURN 0
  
  SET NOCOUNT OFF
posted @ 2008-06-06 17:35  冷风醉饮  阅读(132)  评论(0)    收藏  举报