深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

asp实现数据记录的备份及恢复-----抛砖引玉


March 25,2004
保存数据记录到文件中:
set fs=server.CreateObject("Scripting.FileSystemObject")
FilePath=server.MapPath("backup.txt")
OldFilePath=server.MapPath("oldbackup.txt")
fs.DeleteFile OldFilePath,true
fs.MoveFile FilePath,OldFilePath
set f=fs.OpenTextFile(FilePath,8,true)
f.writeline rs.RecordCount
f.writeline rs.Fields.count
for i=1 to rs.RecordCount  
  'f.writeline i
  for j=0 to rs.Fields.count-1
    tt=rs.Fields(j)
    if Len(rs.Fields(j)) then '对非空记录
      tt=cstr(tt)
      tt=replace(tt,chr(13)&chr(10),chr(35)&chr(35)) '替换记录中的换行符
    end if
    f.writeline rs.fields(j).name&"="&tt
  next
  rs.movenext
next

以下是恢复数据记录到库中:
其中用到的函数:
function rsname(str) '取字段名称
  str=cstr(str)
  tt=instr(1,str,"=")
  rsname=left(str,tt-1)
end function
function rsvalue(str) '取字段值
  str=cstr(str)
  tt=instr(1,str,"=")
  rsvalue=replace(mid(str,tt+1),chr(35)&chr(35),chr(13)&chr(10)) '恢复回车符
end function
function DelPoint(sql)          '去掉sql中最后一个","
   l=len(sql)                           
   l=l-1
   sql=Left(sql,l)
   delpoint=sql
end function
<%
sum=f.readline
sum=cint(sum) '总记录数
fields=f.readline
fields=cint(fields)'列数
dim str()

for n=1 to sum
  for m=0 to fields-1
    redim preserve str(m)
    str(m)=f.readline
  next
  sql1="insert into gajjsj ("
  sql2=" values ("
  for m=0 to fields-1
    sql1=sql1&rsname(str(m))&","
    sql2=sql2&rsvalue(str(m))&","
  next
  sql1=Delpoint(sql1)&") "
  sql2=Delpoint(sql2)&")"
  sql=sql1&sql2
  Response.Write "第"&n&"条记录:"&"<br>sql:"&sql&"<br><br>"
  conn.Execute (sql)  '自定义函数执行sql
  redim str(1)
next
%>
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved