- 热门文章:
- · 找到了,解密SQL2000的存储过程
- · 把数据库查询信息直接生成网页嵌入EXCEL表的格式,并可导出成EXCEL文件
- · 通过MS SQL 数据库SA帐号增加新用户至administrators组
- · 用ASP实现Access数据库查询
- · SQL Server数据库模糊查询的ASP实现
- · 利用ASP技术开发基于WWW的数据库检索程序
- · 如何在ASP中连接MySQL数据库
- · 使用ASP实现基于WEB的数据库资料系统
- · 显式地释放你的ADO对象
- · ASP怎样实现通过传真机把传真直接保存进数据库?!
- · Access2000数据库80万记录通用快速分页类
- · SQL注入天书之ASP注入漏洞全接触(3)
数据库导出xml、htm、csv、sql
<!--#include file=@#../conn.asp@#-->
<%
@#数据库导出记录代码
@#作者海娃,haiwa#blueidea.com,http://www.51windows.Net
@#用法:
@#ExportDB.asp?sql=select语句&tablename=表名(可选)&filetype=导出格式(xml,htm,csv,sql)&pid=自动编号字段名(仅当导出sql类型时有用)
dim tablename,filetype,fieldPid
sql = request("sql")
tablename = request("tablename")
filetype = lcase(request("filetype"))
fieldPid = request("pid")
if fieldPid = "" then
fieldPid = "id"
end if
fieldPid = lcase(fieldPid)
if lcase(left(sql,6))<>"select" then
Response.write "sql语句必须为select * from [table] where ......."
Response.end
end if
if tablename = "" then
tablename = "数据导出结果"
end if
function HTMLEncode(fString)
if not isnull(fString) then
fString = Server.HTMLEncode(fString)
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
fString = Replace(fString, CHR(9), " ")
HTMLEncode = fString
end if
end function
function Myreplace(str)
if not isnull(str) then
fString = Replace(fString,"""", """""")
Myreplace = str
else
Myreplace = ""
end if
end function
function Myreplace2(str)
if not isnull(str) then
fString = Replace(fString,"@#", "@#@#")
Myreplace2 = str
else
Myreplace2 = ""
end if
end function
dim def_export_sep,def_export_val
def_export_sep = ","
def_export_val = """"
Set rs = Conn.Execute(sql)
@#导出XML文件
if filetype="xml" then
Response.contenttype="text/xml"
Response.Charset = "gb2312"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".xml"
Response.write "<?xml version=""1.0"" encoding=""gb2312""?>" & vbnewline
Response.write "<root>"
strLine=""
dim thefield(50)
i = 0
For each x in rs.fields
thefield(i)=x.name
i=i+1
Next
While rs.EOF =false
strLine= vbnewline&chr(9)&"<row>"
k=0
For each x in rs.fields
strLine= strLine & vbnewline&chr(9)&chr(9)&"<"&thefield(k)&">"
if instr(x.value,"<")>0 or instr(x.value,">")>0 or instr(x.value,"&")>0 or len(x.value)>255 then
strLine= strLine &"<![CDATA["& x.value &"]]>"
else
strLine= strLine & x.value
end if
strLine= strLine &"</"&thefield(k)&">"
k=k+1
Next
rs.MoveNext
Response.write strLine &vbnewline& chr(9)&"</row>"
Wend
Response.write vbnewline&"</root>"
@#导出sql文件
elseif filetype="sql" then
Response.contenttype="text/sql"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".sql"
strLine=""
dim sql_insert
For each x in rs.fields
if lcase(x.name)<>fieldPid then @#如果是自动编号
strLine= strLine & def_export_val & x.name & def_export_val & def_export_sep
end if
Next
strLine = replace(left(strLine,len(strLine)-1),"""","")
strLine = "insert into ["&tablename&"] (" & strLine & ") values "
sql_insert = strLine
@#Response.write strLine & vbnewline
@#response.end
While rs.EOF =false
strLine= ""
def_export_val = "@#"
For each x in rs.fields
if lcase(x.name)<>fieldPid then
@#2004-8-11更新 Null值时无法导出的bug。
x_value = x.value
if isnull(x_value) or len(x_value) = 0 then
x_value = ""
else
x_value = replace(x_value,"@#","@#@#")
end if
strLine= strLine & def_export_val & x_value & def_export_val & def_export_sep
end if
Next
rs.MoveNext
strLine = left(strLine,len(strLine)-1)
Response.write sql_insert & "("& strLine &")*" & vbnewline
Wend
elseif filetype="csv" then
Response.contenttype="text/csv"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".csv"
strLine=""
For each x in rs.fields
strLine= strLine & def_export_val & x.name & def_export_val & def_export_sep
Next
Response.write strLine & vbnewline
While rs.EOF =false
strLine= ""
For each x in rs.fields
strLine= strLine & def_export_val & Myreplace(x.value) & def_export_val & def_export_sep
Next
rs.MoveNext
Response.write strLine & vbnewline
Wend
else
if filetype="htm" then@#弹出下载html的对话框
Response.contenttype="application/ms-download"
Response.AddHeader "Content-Disposition", "attachment;filename="&tablename&".htm"
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="51windows,海娃,haiwa">
<META NAME="Description" CONTENT="Power by 51windows.Net">
<title>导出数据 - www.51windows.Net</title>
<style>
<!--
body,input,select { font-family: Tahoma; font-size: 8pt }
th { font-family: Tahoma; font-size: 8pt;padding:3px;color:#FFFFFF;background-color:#999999;}
td { font-family: Tahoma; font-size: 8pt;padding:3px;background-color:#EFEFEF;}
-->
</style>
</head>
<BODY style="overflow:auto;" topmargin=2 bgcolor=buttonface>
<form method="post" name=myform>
SQL:<input type="text" name="sql" value="<% = sql%>">
表名:<input type="text" name="tablename" value="<% = tablename %>" size="8">
导出格式:<select size="1" name="filetype">
<option value="">请选择</option>
<option <%if filetype = "htm" then Response.write "selected "%>value="htm">htm</option>
<option <%if filetype = "xml" then Response.write "selected "%>value="xml">xml</option>
<option <%if filetype = "csv" then Response.write "selected "%>value="csv">csv</option>
<option <%if filetype = "sql" then Response.write "selected "%>value="sql">sql</option>
</select>
自动编号字段名:<input type="text" name="pid" value="<% = fieldPid%>" size="8"><input type="submit" value="确定">
</form>
<div align="center">
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<%
i=0
For each x in rs.fields
strLine= strLine &chr(9)&chr(9)&"<th align=""center"">"& x.name &"</th>"& vbnewline
Next
Response.write strLine&chr(9)&"</tr>"& vbnewline & vbnewline
While rs.EOF =false
i=i+1
Response.write chr(9)&"<tr>"& vbnewline
strLine= ""
For each x in rs.fields
strLine= strLine &chr(9)&chr(9)&"<td>"& HTMLEncode(x.value) &"</td>"& vbnewline
Next
rs.MoveNext
Response.write strLine
Response.write chr(9)&"</tr>"& vbnewline & vbnewline
Wend
Response.write "</table>"& vbnewline
if filetype<>"htm" and filetype<>"xls" and filetype<>"sql" then
Response.write "<p style=@#line-height:160%;@#>"&i&"条记录 <a href=@#?tablename="& tablename &"&pid="& fieldPid &"&filetype=htm&sql="&server.urlencode(sql)&"@#>导出HTML</a>"
Response.write "|<a href=@#?tablename="& tablename &"&pid="& fieldPid &"&filetype=csv&sql="&server.urlencode(sql)&"@#>导出EXCEL</a>"
Response.write "|<a href=@#?tablename="& tablename &"&pid="& fieldPid &"&filetype=xml&sql="&server.urlencode(sql)&"@#>导出XML</a>"
Response.write "|<a href=@#?tablename="& tablename &"&pid="& fieldPid &"&filetype=sql&sql="&server.urlencode(sql)&"@#>导出SQL</a>"& vbnewline
end if
Response.write "<p>Power by <A HREF=""http://www.51windows.Net"" target=""_blank"">51windows.Net</A>"& vbnewline
Response.write "</div>"& vbnewline
Response.write "</BODY>"& vbnewline
Response.write "</HTML>"& vbnewline
end if
rs.close
conn.close
Set rs=nothing
Set conn=nothing
%>
- · SQL注入天书之ASP注入漏洞全接触(2)
- · SQL注入天书之ASP注入漏洞全接触(1)
- · 编写通用的ASP防SQL注入攻击程序
- · Web程序中网页间数据传递方法小结
- · 一个功能齐全的DataGrid分页例子
- · DataList里套DataGrid,DataBind嘛搞?
- · ASP和SQL结合处理时间小解
- · DataGrid输出到Excel并进行格式化处理
- · Directory类创建文件夹、删除文件夹。
- · Repeater显示数据的例子,带分页
- · 删除Access数词库中的空记录
- · ASP上两个防止SQL注入式攻击Function
- · DataGrid 分页问题 -- 无法响应 PageIndexChanged 事件
- · ADO三大对象的属性、方法、事件及常数
- · Asp数据库访问代码自动产生工具-ASPRunner(适用初学者和为了提高开发效率的Developer)
- · Connection 对象
- · 如何在ado中使用connection 对象什么是connection对象?
- · 数据验证之特殊字符处理
- · 如何让DataGrid自动生成序号
- · 几个小时后,我学数据库,找到一些代码
- · DataGrid自定义分页存储过程
- · Asp 单页查询数据库!
- · 用WEB(ASP)方式实现SQL SERVER 数据库的备份和恢复
- · Asp备份与恢复SQL Server数据库
- · XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子
- · datagrid编辑、修改、删除、翻页例子
- · DataGrid脚眉显示合计
- · datagrid编辑、修改、删除、翻页例子
- · 把dataset作为一个xml文件传给客户端
- · OLEDB Resource(Session) Pooling (在Ado开发中使用连接池)
- · DataReader使用
- · asp + oracle 分页方法 (不用存储过程)
- · 关于DropDownList绑定数据的一点认识
- · 在ASP中处理数据库的NULL记录
- · 求解在SQL中使用了where列所遇到的问题
- · asp + sqlserver 分页方法(不用存储过程)
- · 用的ASP防SQL注入攻击程序
- · MySQL数据库基础教程
