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

时间:2022-05-17 01:24:17
  1. <html>  
  2. <head>  
  3. <title>获取ACCESS数据库表名_www.zzvips.com</title>  
  4. </head>  
  5. <body style="text-align:left;margin-left:50px;font-family:'arial';font-size:12px">  
  6. <form style="padding:5px;margin:5px;margin-left:0px" name="get" action="" method="post">  
  7. 数据库路径:<input type="text" name="path" value="" size="50" />  
  8. <input type="hidden" name="ari" value="1" />  
  9. <input type="submit" value="查看" />  
  10. </form>  
  11. <hr>  
  12. <%  
  13. if request.form("ari")="1" and request.form("path")<>"" then  
  14. dim conn,connstr,i,sql,rs  
  15. on error resume next  
  16. Connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ="+server.mappath(request.form("path"))  
  17. Set Conn=Server.CreateObject("ADODB.Connection")  
  18. conn.Open connstr  
  19. If Err Then  
  20. err.Clear  
  21. Set Conn = Nothing  
  22. Response.Write "数据库连接出错,请检查连接字串。"  
  23. Response.End  
  24. End If  
  25. %>  
  26. <font color=red><%=conn.connectionstring%></font><hr>  
  27. <%  
  28. j=0  
  29. dim tablecount  
  30. tablecount=0  
  31. Set shm = conn.OpenSchema(20)  
  32. shm.MoveFirst  
  33. Do While Not shm.EOF  
  34. If shm("TABLE_TYPE") = "TABLE" Then  
  35. If Left(shm("table_name"), 1) <> "~" Then '这里过滤掉隐藏表  
  36. j=j+1  
  37. call GetFileds(shm("table_name"))  
  38. End If  
  39. End If  
  40. shm.MoveNext  
  41. Loop  
  42. response.write "共有 "&j&" 个数据表!"  
  43. else  
  44. response.write "<h3>请输入数据库相对路径查看具体内容!</h3>"  
  45. end if  
  46. %>  
  47. </body>  
  48. </html>  
  49. <%  
  50. Function GetFileds(TableName)  
  51. Set rs = server.createobject("adodb.recordset")  
  52. Dim SQL  
  53. SQL = "select * from " & TableName  
  54. rs.Open SQL, conn, 1, 1  
  55. Dim Cont  
  56. Cont = rs.Fields.Count  
  57. response.write "<div style=""margin-bottom:10px;padding:5px;border:1px #dddddd solid;background:#eeeeee"">"&vbcrlf  
  58. response.write "表 <font color=red><b>"&TableName&"</b></font> 中含有"&Cont&"个字段,具体如下:<br>"&vbcrlf  
  59. For i = 0 To Cont - 1  
  60. dim filtype  
  61. select case rs.fields(i).type  
  62. case 3  
  63. filtype="自动编号(数字)"  
  64. case 202  
  65. filtype="字符"  
  66. case 203  
  67. filtype="备注"  
  68. case 125  
  69. filtype="日期"  
  70. case 11  
  71. filtype="真/假(是/否)"  
  72. end select  
  73. response.write " <font color=red>"&i&"</font>--<font color=green><b>"&rs.fields(i).name&"</b></font>--"&filtype&";<br />"&vbcrlf  
  74. Next  
  75. response.write "</div>"&vbcrlf  
  76. rs.Close  
  77. set rs=nothing  
  78. End Function  
  79. %>