首页 > 编程 > ASP > 正文

ASP获取ACCESS数据库表名及结构的代码

2024-05-04 11:09:14
字体:
来源:转载
供稿:网友
此方法可获得ACCESS数据的表名及其结构,数据类型等... 程序过滤了几个ACCESS数据库的几个隐藏表(可能是导致ACCESS数据库删除数据还会变大的原因)
 
 
 

<html> 
<head> 
<title>获取ACCESS数据库表名_www.vevb.com</title> 
</head> 
<body style="text-align:left;margin-left:50px;font-family:'arial';font-size:12px"> 
<form style="padding:5px;margin:5px;margin-left:0px" name="get" action="" method="post"> 
数据库路径:<input type="text" name="path" value="" size="50" /> 
<input type="hidden" name="ari" value="1" /> 
<input type="submit" value="查看" /> 
</form> 
<hr> 
<% 
if request.form("ari")="1" and request.form("path")<>"" then 
dim conn,connstr,i,sql,rs 
on error resume next 
Connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ="+server.mappath(request.form("path")) 
Set Conn=Server.CreateObject("ADODB.Connection") 
conn.Open connstr 
If Err Then 
err.Clear 
Set Conn = Nothing 
Response.Write "数据库连接出错,请检查连接字串。" 
Response.End 
End If 
%> 
<font color=red><%=conn.connectionstring%></font><hr> 
<% 
j=0 
dim tablecount 
tablecount=0 
Set shm = conn.OpenSchema(20) 
shm.MoveFirst 
Do While Not shm.EOF 
If shm("TABLE_TYPE") = "TABLE" Then 
If Left(shm("table_name"), 1) <> "~" Then '这里过滤掉隐藏表 
j=j+1 
call GetFileds(shm("table_name")) 
End If 
End If 
shm.MoveNext 
Loop 
response.write "共有 "&j&" 个数据表!" 
else 
response.write "<h3>请输入数据库相对路径查看具体内容!</h3>" 
end if 
%> 
</body> 
</html> 
<% 
Function GetFileds(TableName) 
Set rs = server.createobject("adodb.recordset") 
Dim SQL 
SQL = "select * from " & TableName 
rs.Open SQL, conn, 1, 1 
Dim Cont 
Cont = rs.Fields.Count 
response.write "<div style=""margin-bottom:10px;padding:5px;border:1px #dddddd solid;background:#eeeeee"">"&vbcrlf 
response.write "表 <font color=red><b>"&TableName&"</b></font> 中含有"&Cont&"个字段,具体如下:<br>"&vbcrlf 
For i = 0 To Cont - 1 
dim filtype 
select case rs.fields(i).type 
case 3 
filtype="自动编号(数字)" 
case 202 
filtype="字符" 
case 203 
filtype="备注" 
case 125 
filtype="日期" 
case 11 
filtype="真/假(是/否)" 
end select 
response.write " <font color=red>"&i&"</font>--<font color=green><b>"&rs.fields(i).name&"</b></font>--"&filtype&";<br />"&vbcrlf 
Next 
response.write "</div>"&vbcrlf 
rs.Close 
set rs=nothing 
End Function 
%>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表