程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> Asp獲取數據庫中表名、字段名、字段類型

Asp獲取數據庫中表名、字段名、字段類型

編輯:ASP技巧

公司網站准備改版,要整理一下數據庫中表的信息,以便改版中創建新表使用。問題是數據庫中表太多,總不能一個字段名一個字段名去寫,再去寫字段類型,這太麻煩了。於是就想使用asp程序把數據庫中表名、字段名、字段類型一次讀出來,然後自己把頁面保存下來,然後再給每個字段加注釋,這樣就省下一堆時間。以下是我的ASP代碼,支持Access和SQL Server兩種數據庫。

vIEw source print? 001 <title>ASP獲取數據庫中表名、字段名、字段類型</title> 002 <style type="text/CSS"> 003 td{ font-size:12px; text-align:center; } 004 </style> 005 <% 006 Function OpenConn() '連接數據庫代碼 007     'On Error Resume Next 008     sqlDatabaseIP = "." '服務器IP,本機直接使用點 009     sqlDatabaseName = "***" '數據庫名 010     sqlUserName = "**" '數據庫賬號 011     sqlUserPass = "***" '密碼 012     strConn="Provider=SQLOLEDB;uid="&sqlUserName&";pwd="&sqlUserPass&";Server="&sqlDatabaseIP&";DATABASE="&sqlDatabaseName&""   013       014     'db="db1.mdb"   'Access數據庫名 015 '   path=server.MapPath(db)    016 '    strConn = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path 017       018     Set Conn = server.CreateObject("ADODB.Connection")  019     If Err  then 020       Err.clear 021       Response.Write("網站訪問繁忙,請稍候再訪問") 022       Response.End() 023     End If 024     Conn.Open strConn 025     set OpenConn=Conn 026 End Function 027   028 Sub CloseConn(Conn) '關閉數據庫代碼 029     On Error Resume Next 030     If IsObject(Conn) then 031         Conn.Close() 032         Set Conn = Nothing 033     End If 034     If Err Then Err.Clear 035 End Sub 036   037 Function AccessTypeName(num) '獲取Access數據庫的字段類型 038     str="" 039     Select Case num 040         Case 3 041             str = "自動編號/數字" 042         Case 6 043             str = "貨幣" 044         Case 7 045             str = "日期/時間" 046         Case 11 047             str = "是/否" 048         Case 202 049             str = "文本" 050         Case 203 051             str = "備注/超鏈接" 052         Case 205 053             str = "OLE對象" 054         End Select 055         AccessTypeName=str 056 End Function 057   058   059 Function SqlTypeName(num) '這是獲取sql數據庫的字段類型 060     str="" 061     Select Case num 062         Case 2 063             str = "smallint" 064         Case 3 065             str = "int" 066         Case 4 067             str = "real" 068         Case 5 069             str = "float" 070         Case 6 071             str = "money/smallmoney" 072         Case 11 073             str = "bit" 074         Case 12 075             str = "sql_variant" 076         Case 17 077             str = "tinyint" 078         Case 20 079             str = "bigint" 080         Case 72 081             str = "uniqueidentifIEr" 082         Case 128 083             str = "binary/timestamp" 084         Case 129 085             str = "char" 086         Case 130 087             str = "nchar" 088         Case 131 089             str = "decimal/numeric" 090         Case 135 091             str = "datetime/smalldatetime" 092         Case 200 093             str = "varchar" 094         Case 201 095             str = "text" 096         Case 202 097             str = "nvarchar" 098         Case 203 099             str = "ntext" 100         Case 204 101             str = "varbinary" 102         Case 205 103             str = "image" 104         End Select 105         SqlTypeName=str 106 End Function 107   108 '功能:ASP獲取數據庫中表名、字段名、字段類型 109 '作者:wangsdong 110 '來源:www.ASPbc.com 111 '原創技術文章,轉載請保留此信息,謝謝 112   113 set Conn=openconn() 114 set rs=server.CreateObject("adodb.recordset") 115 Set rs=Conn.OpenSchema(20) 116 Do Until rs.EOF 117     If rs(3)="TABLE" Then 118     response.write "表名:"&rs(2)&"<br />" 119     Set rs1=server.CreateObject("adodb.recordset") 120     sql="select * from ["&rs(2)&"]" 121     Set rs1=conn.execute(sql) 122     response.write "<table cellpadding=0 cellspacing=0 border=1width=""500"" ><tr><td>字段名</td><td>字段類型</td><td>備注</td></tr>" 123     For i=0 To rs1.fIElds.count-1 124         fieldname=rs1.fIElds(i).name 125         fieldtype=rs1.fIElds(i).type 126         response.write "<tr><td>"&fIEldname&"</td><td>"&AccessTypeName(fIEldtype)&"&nbsp;</td><td>&nbsp;</td></tr>"  'Access數據庫 127         'response.write "<tr><td>"&fIEldname&"</td><td>"&SqlTypeName(fIEldtype)&"&nbsp;</td><td>&nbsp;</td></tr>" 'sql數據庫使用這句 128     Next 129     response.write "</table><br><br>" 130     End If  131     rs.MoveNext 132 Loop 133 Set rs=Nothing 134 Set conn=nothing 135 %>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved