首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

ASP 經典:使用 ADOX 取得資料表欄位屬性(型別、長度)

     編輯:關於SqlServer

核心代碼片段

Dim cat, col
Set cat = Server.CreateObject("ADOX.Catalog")
Set col = Server.CreateObject("ADOX.Column")

cat.ActiveConnection = conn   ' 已開啟的 ADO Connection 物件
Set col = cat.Tables("TableName").Columns("ColumnName")

' 取得欄位資料型別 (對應 DataTypeEnum 常數)
Dim lType
lType = col.Type

' 取得欄位定義長度
Dim lSize
lSize = col.DefinedSize

關鍵說明

  • ADOX.Catalog:提供資料庫結構的目錄視圖,需引用 `Microsoft ADO Ext. for DDL and Security` (msadox.dll)。
  • Column.Type:回傳整數常數(如 202 = adVarWChar, 3 = adInteger, 135 = adDBTimeStamp),可參考 `DataTypeEnum` 列舉對照。
  • Column.DefinedSize:回傳欄位定義的最大長度(字元型為字元數,數值型為位元組數)。
  • 適用場景:動態建立表單驗證、產生資料字典文件、跨資料庫結構比對等需在執行期讀取結構描述的 ASP 應用。

完整範例:列出指定資料表所有欄位屬性

Sub ListTableColumns(ByVal conn, ByVal tableName)
    Dim cat, tbl, col
    Set cat = Server.CreateObject("ADOX.Catalog")
    cat.ActiveConnection = conn
    Set tbl = cat.Tables(tableName)
    
    Response.Write ""
    For Each col In tbl.Columns
        Response.Write ""
        Response.Write ""
        Response.Write "" ' 可轉換為可讀名稱
        Response.Write ""
        Response.Write "" ' adColNullable = 1
        Response.Write ""
    Next
    Response.Write "
欄位名型別長度允許Null
" & col.Name & "" & col.Type & "" & col.DefinedSize & "" & IIf(col.Attributes And 1, "否", "是") & "
" End Sub
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved