vbs adox提取数据库表名和列名的类

时间:2022-08-28 16:39:53
  1. <!--#include virtual="/include/conn.inc"-->  
  2. <%  
  3. '*********************************  
  4. '* classname: ADOXDBOPR  
  5. '* 制作人: 刘晓逸  
  6. '* 作用: 用adox进行数据库的操作  
  7. '* 版本: 1.0  
  8. '*www.zzvips.com 服务器之家 
  9. '**********************************  
  10. Class ADOXDBOPR  
  11.  
  12. dim objADOX  
  13.  
  14. Private Sub Class_Initialize   
  15. Set objADOX=Server.CreateObject("ADOX.Catalog")  
  16. end sub  
  17.  
  18. Public Property let Connection(objCONN)  
  19. objADOX.ActiveConnection=objCONN  
  20. End Property  
  21.  
  22. public function arrTName  
  23. dim arrTNames()  
  24. dim i : i=1  
  25. for each objtab in objADOX.tables  
  26.   if objtab.type="TABLE" then  
  27.    redim Preserve arrTNames(i)  
  28.    arrTNames(i-1)=objtab.name  
  29.    i=i+1  
  30.   end if  
  31. next  
  32. arrTName=arrTNames  
  33. end function   
  34.  
  35. public function arrfinfo(szTName)  
  36. dim arrf()  
  37. Set objTAdox=objADOX.tables.item(szTName)  
  38. for i=0 to objTAdox.columns.count-1  
  39.   Set dicInfo=Server.CreateObject("Scripting.Dictionary")  
  40.   redim preserve arrf(i+1)  
  41.   dicInfo.add "name",objTAdox.columns.Item(i).name  
  42.   dicInfo.add "type",type_int2str(objTAdox.columns.Item(i).type)  
  43.   Set arrf(i)=dicInfo  
  44.   Set dicInfo=nothing  
  45. next   
  46. arrfinfo=arrf  
  47. end function  
  48.  
  49. public sub del_table(szTName)  
  50. objADOX.tables.delete szTName  
  51. End Sub  
  52.  
  53. public sub add_table(szTName)  
  54. Set obj_tab=Server.CreateObject("ADOX.Table")  
  55. obj_tab.Name=szTName  
  56. Set obj_tab.ParentCatalog=objADOX  
  57. objADOX.tables.Append obj_tab  
  58. Set obj_tab=nothing  
  59. End Sub  
  60.  
  61. public sub delColumns(arrColumns,szTName)  
  62. Set obj_tab=objADOX.tables.item(szTName)  
  63. if isarray(arrColumns) then  
  64.   for i=0 to ubound(arrColumns)  
  65.    obj_tab.columns.delete arrColumns(i)  
  66.   next  
  67. else  
  68.   obj_tab.columns.delete arrColumns  
  69. end if  
  70. end sub  
  71.  
  72. public sub add_columns(arrColumns,szTName)  
  73. Set objTab=objADOX.tables.item(szTName)  
  74. for i=0 to ubound(arrColumns)  
  75.   objTab.columns.append arrColumns(i,0),arrColumns(i,1),arrColumns(i,2)  
  76. next  
  77. end sub  
  78.  
  79. function type_int2str(int_value)  
  80. select case int_value  
  81.   case 3:  
  82.   type_int2str="数字"  
  83.   case 202:  
  84.   type_int2str="文本"  
  85.   case else:  
  86.   type_int2str=int_value  
  87. end select  
  88. end function  
  89.  
  90. Private Sub Class_Terminate  
  91. Set objADOX=nothing  
  92. End Sub  
  93.  
  94. End class  
  95. %>